和微信公众平台进行握手

和微信公众平台进行握手

什么是握手

握手的目的是进行地址验证,让微信服务器确认请求来源是”你”本人,从而建立可信的通信连接。

创建项目与准备

创建一个 MVC 项目,然后下载 Senparc.Weixin SDK 组件。

Senparc 本质上是对微信官方接口进行了二次封装,也可以直接参考北盟网校的微信开发课程。

测试环境要求

要测试接口,需要提前准备好以下条件:

  1. 一台服务器
  2. 一个可通过 80 端口访问的域名(不支持非 80 端口,如 www.foxdevelop.com:81 是不行的)

本文示例域名:weixin.foxdevelop.com

如果没有域名,可以安装花生壳,将本机映射为公网服务器用于测试。

验证消息来自微信服务器

开发者提交服务器配置后,微信服务器会向填写的 URL 发送 GET 请求,携带以下参数:

参数描述
signature微信加密签名,由 token、timestamp、nonce 组合生成
timestamp时间戳
nonce随机数
echostr随机字符串

开发者需校验 signature 以确认请求来自微信服务器。校验通过后,原样返回 echostr 内容,接入即生效,否则接入失败。

加密/校验流程:

  1. 将 token、timestamp、nonce 三个参数按字典序排序
  2. 将三个参数字符串拼接成一个字符串,进行 SHA1 加密
  3. 将加密后的字符串与 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 最新稳定版为准。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注