首页 > 服务器 > 管理维护 > 正文

微信公众号服务器验证Token步骤图解

2024-09-10 14:19:58
字体:
来源:转载
供稿:网友

这篇文章主要介绍了微信公众号服务器验证Token步骤图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

服务器验证Token验证分为以下及步骤

一,在微信公众号平台上设置

1.1打开微信公众号平台

1.2打开”开发“中的<基本配置>

1.3点击基本配置页面里的修改配置

1.4输入URL:

url填写:http://外网IP:端口号/wx 。外网IP请到腾讯云购买成功处查询, http的端口号固定使用80,不可填写其他。

Token:自主设置,这个token与公众平台wiki中常提的access_token不是一回事。这个token只用于验证开发者服务器。(注:Token可以随便写 写完记住留着备用)

EncodingAESKey:点击随机生成

现在选择提交肯定是验证token失败,因为还需要完成代码逻辑。改动原先main.py文件,新增handle.py 也可以用wbe文件

二,编写后台程序

我选用的是web,ashx一般处理程序页面

代码源码:

namespace WEF{  /// <summary>  /// Token 的摘要说明  /// </summary>  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();        }      }    }    /// <summary>    /// 验证微信签名    /// </summary>    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; //不相等 返回错误      }    }  }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表