第一步:
打开你的aspx页面的后台文件(也就是.cs)在里面写如下方法
#region
/// <summary>
/// 验证微信签名
/// </summary>
/// *本方法的目的是将来源于微信服务器的token、timestamp、nonce三个参数进行字典序排序
/// * 再将三个参数字符串拼接成一个字符串进行sha1加密然后与signature进行对比
/// <returns></returns>
private bool CheckSignature()
{
//获取从微信服务器发过来的signature 、timestamp和nonce
string signature = Request.QueryString["signature"].ToString();
string timestamp = Request.QueryString["timestamp"].ToString();
string nonce = Request.QueryString["nonce"].ToString();
//这里的Token来自于自己的变量声明 如public string Token = "tomyang1994";
string[] ArrTmp = { Token, timestamp, nonce };
Array.Sort(ArrTmp); //字典排序
string tmpStr = string.Join("", ArrTmp);
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
tmpStr = tmpStr.ToLower();
if (tmpStr == signature)
{
return true;
}
else
{
return false;
}
}
private void Valid()
{
string echoStr = Request.QueryString["echoStr"].ToString();
if (CheckSignature())
{
if (!string.IsNullOrEmpty(echoStr))
{
//这个是打印出取得的信息,与验证token没有关系
只有CheckSignature()返回的是true,token就
已经验证成功了
Response.Write(echoStr);
Response.End();
}
}
}
#endregion
第二步:
就是在void Page_Load(object sender, EventArgs e)中调用第一步写的Valid()方法。
第三步:
完成上面两步后就进入你的微信开发者账号
基本配置—–>服务器配置
填完点击提交 ,提交成功就OK了。token验证就完成了 ,服务端代码可以注释掉了。
注:asp.net端要发布到IIS上,然后将外网IP或地址填写到服务器配置中的URL里,注意端口是80或者443,将内网转外网建议用花生壳,6元的认证费。