程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .net 微信Token驗證

.net 微信Token驗證

編輯:關於.NET

首次接受這個項目,看了微信的API,雲裡霧裡,經過幾經測試,理清思路

開發者自個申請,微信API給出四個參數:

下面我解釋下

signature 是微信加密簽名 即:微信服務器將 timetamp nonce  token(你提交的)使用SHA1加密後 會使用GET方式發送給你。

timestamp是騰訊服務器發送的一個時間戳

nonce是騰訊服務器發送的一個隨機數

成功申請的關鍵是在下面,上面的幾個參數只是 微信提供 用戶請求--->你自己的網站 的一個驗證方式。

echostr就是 騰訊服務器發送的一個隨機字符串 這個需要你在自己網站接受後 使用輸出流 Respons.Write(echostr);

記住最好在輸出完畢終止流 Response.End(); 然後就可以成功申請了。

參數描述 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.     } 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved