微信公众平台C#开发系列(三):公众平台接入
微信公众号开始开发
一、 接入指南
文档地址:
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html#
首先在申请的公众平台测试号的服务器对接地址填写上我们服务器接口地址 用于程序和微信公众平台的接口交互
不清楚公众平台测试号的可以看一下上一篇教程:微信公众平台C#开发系列(二): 微信公众号开发的准备工作
以下示范下 .Net Web项目中如何接收和处理公众平台测试号对接验证请求
1、新建一个控制器名称是 WeiXinController 如图
2、将微信控制器配置成一个可供微信接口访问的网络接口地址(就是你发布线上web的项目的访问地址 这里例子是 ”www.xxx.com/weixin/ask“)
3、进行微信服务接口与公众平台测试号进行绑定
web接口代码部分:
微信公众号绑定开发者服务器是微信会发送一个GET请求携带了一些参数 需按要求给与回复才可绑定成功,以下是接收到验证请求的处理例子
[HttpGet]
[Route("~/weixin")]
public ContentResult Get(string signature, string echostr, string timestamp, string nonce)
{
//微信公众平台提供或自行设置的验证参数
string token = "eee4282bca72d5bbbeeb30402e855804";
///验证签名 (不考虑安全新 跳过验证直接返回echostr 也可成功)
if (string.IsNullOrEmpty(echostr) || !VerifySignature(token, signature, timestamp, nonce))
{
//参数验证失败 返回空拒绝微信平台
return null;
}
else
{
//验证成功 回复微信平台
return Content(echostr);
}
}
/// <summary>
/// 验证微信签名
/// </summary>
bool VerifySignature(string token, string signature, string timestamp, string nonce)
{
string[] ArrTmp = { token, timestamp, nonce };
Array.Sort(ArrTmp);
string tmpStr = string.Join(string.Empty, ArrTmp);
SHA1 sha = SHA1.Create();
byte[] bytResult = sha.ComputeHash(System.Text.Encoding.UTF8.GetBytes(tmpStr));
string errSignature = "";
for (int i = 0; i < bytResult.Length; i++)
{
//16进制转换
errSignature = errSignature + bytResult[i].ToString("X");
}
if (errSignature.ToLower() == signature)
{
return true;
}
else
{
return false;
}
}
公众平台测试号 配置部分:
点击接口配置信息 后面的修改按钮 填写好自己的接口地址 点击保存 提示成功就可以了 如果不成功 检查下接口地址是否可以访问
到这里就完成了交互接口对接工作,可以开始后端功能码代码了,正式的接口配置界面和测试号的有些区别但大同小异