登录https://mp.weixin.qq.com/ 后,在公众平台后台管理页面 – 开发者中心页,点击“修改配置”按钮,填写URL、Token和EncodingAESKey,其中URL是开发者用来接收微信服务器数据的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式,选择兼容模式和安全模式需要提前配置好相关加解密代码,详情请参考消息体签名及加解密部分的文档。

上图说的这个URL就是微信公众平台服务器后台和我们二次开发的网站后台的通信地址,所有微信方向我们二次开发的站网通信都由这个地址来完成,所以这里我建议使用.net 的一般处理程序ashx页面来做这个通信页面。

Token就是这个通信验证的钥匙,必须为英文或数字,长度为3-32字符。

微信公众平台服务器后端会提交 4个参数到我们的ashx页面,我们的ashx就要完成安全验证。安全验证的方式是sha1加密

此外请注意,微信公众号接口只支持80接口。通信方式为Get

OK,我们来说说具体的代码

    Dim Token As String = "arctichome"Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequestDim httpMethod As String = context.Request.HttpMethod.ToUpper()If httpMethod = "GET" Thencontext.Response.ContentType = "text/plain"Dim echoStr As String = context.Request("echoStr")If Not String.IsNullOrEmpty(echoStr) ThenDim signature As String = context.Request.QueryString("signature") ' 微信加密签名Dim timestamp As String = context.Request.QueryString("timestamp") ' 时间戳Dim nonce As String = context.Request.QueryString("nonce") ' 随机数echoStr = context.Request.QueryString("echostr") ' 随机字符串' 微信请求参数非空验证If Not String.IsNullOrEmpty(signature) AndAlso Not String.IsNullOrEmpty(timestamp) AndAlso Not String.IsNullOrEmpty(nonce) AndAlso Not String.IsNullOrEmpty(echoStr) ThenIf CheckSignature(signature, timestamp, nonce, Token) Thencontext.Response.Write(echoStr) '验证通过,响应微信公众平台后台服务器Exit SubEnd IfEnd IfEnd IfEnd IfEnd Sub

Token验证通过后马上就对微信公众平台的后台服务进行响应,对这个响应时间微信方要求是速度是很快的。

那对Sha1加密进程如下:

    Public Function CheckSignature(ByVal signature As String, ByVal timestamp As String, ByVal nonce As String, ByVal WeiXinToken As String) As BooleanDim stringList As New List(Of String)() From {WeiXinToken, timestamp, nonce}' 字典排序stringList.Sort()Return Sha1Encrypt(String.Join("", stringList)) = signatureEnd Function''' <summary>''' 对字符串SHA1加密''' </summary>''' <param name="targetString">源字符串</param>''' <returns>加密后的十六进制字符串</returns>Private Function Sha1Encrypt(ByVal targetString As String) As StringDim byteArray As Byte() = Encoding.[Default].GetBytes(targetString)Dim hashAlgorithm As HashAlgorithm = New SHA1CryptoServiceProvider()byteArray = hashAlgorithm.ComputeHash(byteArray)Dim stringBuilder As New StringBuilder()For Each item As Byte In byteArraystringBuilder.AppendFormat("{0:x2}", item)NextReturn stringBuilder.ToString()End Function

以上就是这个VB.net 对微信公众平台的Token验证过程。

VB.net 微信公众平台开发(一) Token验证相关推荐

  1. ASP.NET MVC4 微信公众平台开发测试一: 验证

    ASP.NET MVC4 微信公众平台开发测试一: 验证 背景,想做一个微信公众号的自动回复系统,于是想动手写一下.记录这些,是一边写程序一边写在这里,也是记录一下自己的思路. 微信公众平台开发时,需 ...

  2. 微信公众平台服务器配置时token验证失败

    这两天一直在弄微信公众号开发,在进行服务器配置时,发现总是返回token验证失败.这个问题困扰了两天,今天终于解决了.现在总结一下. 一般来说服务器配置token验证失败,可能有以下几个方面: 1.服 ...

  3. 2 微信公众号开发 服务器配置 Token验证

    服务器配置的主要难点就是Token验证. 官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432 接入指南 ...

  4. 微信公众平台开发(82) 天气预报

    在这篇教程中,我们将介绍如何在微信公众平台上开发天气预报功能.我们将使用中国天气网的气象数据接口来获取天气信息. 这篇教程将介绍以下内容: 获取中国天气网的气象数据 在微信公众平台中回复天气 一.中国 ...

  5. Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明

    这里所说的高级接口是指面向通过认证的服务号开通的高级功能. 高级功能大致可以分类为: 用户接口 分组接口 客服接口(有别于之前介绍的多客服) 群发接口 多媒体接口 二维码接口 模板消息接口(不是所有账 ...

  6. 微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发

    本文主要讲解如何使用 weinxinFundation 进行二次开发. 步骤如下: 1.创建新的web项目. 在eclipse里新建一个dynamicly web project,比如本文叫weixi ...

  7. 微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置

    关键字:微信公众平台 自定义菜单 扫一扫 发图片 发地理位置 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-menu-new-type.htm ...

  8. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  9. 微信公众平台开发(58)自定义菜单

    微信公众平台开发 微信公众平台开发模式 企业微信公众平台 自定义菜单 开发教程  作者:方倍工作室  地址:http://www.cnblogs.com/txw1958/p/weixin-58-cus ...

最新文章

  1. Google Brain去年干了太多事,Jeff Dean一篇长文都没回顾完
  2. Commonly Hacked Ports
  3. 怎么让wegame适应屏幕大小_iOS的五大设计原则:统一化和适应化原则
  4. 解密昇腾AI处理器--DaVinci架构(总览)
  5. 2019腾讯广告算法大赛方案分享(冠军)
  6. Supervisor 配置文件
  7. HDU2500 做一个正气的杭电人【水题】
  8. JS If...Else
  9. 可视化图布局算法简介
  10. 2020湖南省技能竞赛获奖名单_高光时刻!肇庆市中等职业学校学生专业技能竞赛获奖名单公布~...
  11. gif跟随ProgressBar一起动/pk进度条gif特效
  12. html英文特殊字体代码,字体_中英文字体等(示例代码)
  13. Windows系统重装教程
  14. 计算机鼠标装有,计算机插入鼠标时无法安装设备驱动程序的解决方法
  15. 怎么注销百度云服务器账号,百度网盘怎么注销账号?账号注销方法一览
  16. 硬件设计分享-⑧天线设计
  17. Jacobi迭代法的matlab程序(《数值分析原理》)
  18. 利用代理IP爬取京东网站手机数据
  19. Report中的Drill down
  20. 山东大学为什么火了_山东大学在985高校中处于什么水平?

热门文章

  1. 人参皂苷rg3多少钱?为什么人参皂苷的价格昂贵?原因在此
  2. php 识别图片五星好评,jquery实现五星好评方法
  3. 计算机环境与应用专业就业前景,2018资源环境科学专业就业前景和就业方向分析...
  4. 如何学好linux,linux的学习建议
  5. 分享1个超全面的 Python爬虫 接单实例!
  6. 2023第三届人工智能与机器学习国际学术会议(ICMLAI 2023)
  7. 【修真院java小课堂】ArrayList浅析
  8. 神经网络初认识——BP神经网络(7月18,再次认识)
  9. [论文+辩论PPT+源码等]精品微信小程ssm便捷记账本小程序+后台管理系统|前后分离VUE
  10. java赵莉课后答案_Java程序设计教程(第2版)