1. 程式人生 > >.net mvc 微信公眾號 驗證微信簽名

.net mvc 微信公眾號 驗證微信簽名

官方文件:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319&token=&lang=zh_CN

#region 驗證Token
        /// <summary>
        /// 驗證微信簽名
        /// </summary>
        /// * 將token、timestamp、nonce三個引數進行字典序排序
        /// * 將三個引數字串拼接成一個字串進行sha1加密
        /// * 開發者獲得加密後的字串可與signature對比,標識該請求來源於微信。
        
/// <returns></returns> private static bool CheckSignature(string Token, string signature, string timestamp, string nonce) { string[] arrTmp = { Token, timestamp, nonce }; Array.Sort(arrTmp); string tmpStr = string.Join("", arrTmp); tmpStr
= FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); if (tmpStr != null) { tmpStr = tmpStr.ToLower(); return tmpStr == signature; } return false; } #endregion

在配置的URL對應的地址中,加入如下方法

 public
ActionResult TestToken() { #region 驗證Token string echoStr = Request.QueryString["echoStr"]; string signature = Request.QueryString["signature"]; string timestamp = Request.QueryString["timestamp"]; string nonce = Request.QueryString["nonce"]; if (AdminUtil.CheckSignature("微信公眾號基本配置中的Token(令牌)", signature, timestamp, nonce) && !string.IsNullOrEmpty(echoStr)) { Response.Write(echoStr); Response.End(); } #endregion return View(); }