.net 微信Token验证

首次接受这个项目,看了微信的API,云里雾里,通过几经测试,理清思路服务器

开发者自个申请,微信API给出四个参数:微信

下面我解释下测试

signature 是微信加密签名 即:微信服务器将 timetamp nonce  token(你提交的)使用SHA1加密后 会使用GET方式发送给你。网站

timestamp是腾讯服务器发送的一个时间戳加密

nonce是腾讯服务器发送的一个随机数spa

成功申请的关键是在下面,上面的几个参数只是 微信提供 用户请求--->你本身的网站 的一个验证方式。orm

echostr就是 腾讯服务器发送的一个随机字符串 这个须要你在本身网站接受后 使用输出流 Respons.Write(echostr);排序

记住最好在输出完毕终止流 Response.End(); 而后就能够成功申请了。token

参数 描述
signature 微信加密签名
timestamp 时间戳
nonce 随机数
echostr 随机字符串 
  1.  private void Valid()  
  2.     {  
  3.         string echoStr = Request.QueryString["echoStr"].ToString();  
  4.         if (CheckSignature())  
  5.         {  
  6.             if (!string.IsNullOrEmpty(echoStr))  
  7.             {  
  8.                 Response.Write(echoStr);  
  9.                 Response.End();  
  10.             }  
  11.         }  
  12.     }  
  1.  private bool CheckSignature()  
  2.     {  
  3.         string signature = Request.QueryString["signature"].ToString();  
  4.         string timestamp = Request.QueryString["timestamp"].ToString();  
  5.         string nonce = Request.QueryString["nonce"].ToString();  
  6.         string[] ArrTmp = { Token, timestamp, nonce };  
  7.         Array.Sort(ArrTmp);     //字典排序  
  8.         string tmpStr = string.Join("", ArrTmp);  
  9.         tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");  
  10.         tmpStr = tmpStr.ToLower();  
  11.         if (tmpStr == signature)  
  12.         {  
  13.             return true;  
  14.         }  
  15.         else 
  16.         {  
  17.             return false;  
  18.         }  
  19.     }  
相关文章
相关标签/搜索