和微信公众平台进行握手
什么是握手
握手的目的是进行地址验证,让微信服务器确认请求来源是”你”本人,从而建立可信的通信连接。
创建项目与准备
创建一个 MVC 项目,然后下载 Senparc.Weixin SDK 组件。
- SDK 官方地址:https://github.com/JeffreySu/WeiXinMPSDK
- 微信官方验证文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319
Senparc 本质上是对微信官方接口进行了二次封装,也可以直接参考北盟网校的微信开发课程。
测试环境要求
要测试接口,需要提前准备好以下条件:
- 一台服务器
- 一个可通过 80 端口访问的域名(不支持非 80 端口,如
www.foxdevelop.com:81是不行的)
本文示例域名:weixin.foxdevelop.com
如果没有域名,可以安装花生壳,将本机映射为公网服务器用于测试。
验证消息来自微信服务器
开发者提交服务器配置后,微信服务器会向填写的 URL 发送 GET 请求,携带以下参数:
| 参数 | 描述 |
|---|---|
| signature | 微信加密签名,由 token、timestamp、nonce 组合生成 |
| timestamp | 时间戳 |
| nonce | 随机数 |
| echostr | 随机字符串 |
开发者需校验 signature 以确认请求来自微信服务器。校验通过后,原样返回 echostr 内容,接入即生效,否则接入失败。
加密/校验流程:
- 将 token、timestamp、nonce 三个参数按字典序排序
- 将三个参数字符串拼接成一个字符串,进行 SHA1 加密
- 将加密后的字符串与 signature 对比,一致则标识请求来源于微信
以上为微信公众平台提供的原生接口逻辑,Senparc 已将其封装为可直接调用的方法:
CheckSignature.Check(signature, timestamp, nonce, Token);Code language: CSS (css)
使用 NuGet 安装 Senparc
在 Visual Studio 中右键项目,选择”管理 NuGet 程序包”,搜索并安装 Senparc.Weixin。
安装过程中会自动处理依赖项,例如本文安装时 Newtonsoft.Json 从 6.0.4 升级至 10.0.1,Senparc.Weixin 4.13.1 安装成功。
提示:实际安装版本号可能因时间不同而变化,以 NuGet 最新稳定版为准。

Previous: 注册微信公众平台和配置对接接口
Next: 把项目部署到 Web 服务器进行测试