十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍了微信公众号服务器验证Token步骤图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
成都创新互联公司长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为咸丰企业提供专业的成都网站制作、网站建设,咸丰网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。服务器验证Token验证分为以下及步骤
一,在微信公众号平台上设置
1.1打开微信公众号平台
1.2打开”开发“中的<基本配置>
1.3点击基本配置页面里的修改配置
url填写:http://外网IP:端口号/wx 。外网IP请到腾讯云购买成功处查询, http的端口号固定使用80,不可填写其他。
Token:自主设置,这个token与公众平台wiki中常提的access_token不是一回事。这个token只用于验证开发者服务器。(注:Token可以随便写 写完记住留着备用)
EncodingAESKey:点击随机生成
二,编写后台程序
我选用的是web,ashx一般处理程序页面
代码源码:
namespace WEF { ////// Token 的摘要说明 /// public class Token : IHttpHandler { public void ProcessRequest(HttpContext context) { ProcesyanzhengsRequest(context);//执行下面方法 } public bool IsReusable { get { return false; } } public void ProcesyanzhengsRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string token = " ";//输入你上面自己编写的Token if (string.IsNullOrEmpty(token)) { return; } //取到Token接收到的值 string echoString = HttpContext.Current.Request.QueryString["echoStr"]; string signature = HttpContext.Current.Request.QueryString["signature"]; string timestamp = HttpContext.Current.Request.QueryString["timestamp"]; string nonce = HttpContext.Current.Request.QueryString["nonce"]; if (CheckSignature(token, signature, timestamp, nonce)) //判断验证是否正确 { if (!string.IsNullOrEmpty(echoString)) 正确返回微信服务器 { HttpContext.Current.Response.Write(echoString); HttpContext.Current.Response.End(); } } } ////// 验证微信签名 /// public static bool CheckSignature(string token, string signature, string timestamp, string nonce) { string[] ArrTmp = { token, timestamp, nonce }; //字典排序 Array.Sort(ArrTmp); //拼接 string tmpStr = string.Join("", ArrTmp); //sha1验证 tmpStr = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); //tmpStr = Membership.CreateUser(tmpStr, "SHA1"); tmpStr = tmpStr.ToLower(); if (tmpStr == signature) //如果计算后得到的数值与传过来的数值相等 { return true; //返回正确 } else { return false; //不相等 返回错误 } } } }