微信公眾賬號 token 驗證失敗 解決辦法


 問題:微信公眾賬號 開發過程中配置  token 提示 驗證失敗

如下圖:

點擊修改配置:

填寫相關url與token(自定義):點擊提交,會出現

出現這種情況,主要是對相關參數不熟悉,要了解url與token的關系

url可以訪問:頁面中有Token的定義。url地址如:http://www.***.com/pay/wx_token.aspx

Token:根據說明自定義即可,要與url對應頁面上的Token一致。

示例文件:

using System;
using System.Web.Security;
using System.Web.UI;
using WxPayAPI;

namespace Alipay
{
    public partial class wx_token : Page
    {
        /// <summary>
        /// 要與基本配置中的Token一致
        /// </summary>
        public string Token = "Token";

        protected void Page_Load(object sender, EventArgs e)
        {
            string echoStr = Request.QueryString["echoStr"];
            Log.Debug("Token", "測試輸出: echoStr = " + echoStr);
            if ( CheckSignature() && !string.IsNullOrEmpty(echoStr))
            {
                Response.Write(echoStr);
                Response.End();
            }
        }

        /// <summary>
        /// 驗證微信簽名
        /// </summary>
        /// * 將token、timestamp、nonce三個參數進行字典序排序
        /// * 將三個參數字符串拼接成一個字符串進行sha1加密
        /// * 開發者獲得加密后的字符串可與signature對比,標識該請求來源於微信。
        /// <returns></returns>
        private bool CheckSignature()
        {
            string signature = Request.QueryString["signature"];
            string timestamp = Request.QueryString["timestamp"];
            string nonce = Request.QueryString["nonce"];
            Log.Debug("Token", "測試輸出: signature = " + signature);
            Log.Debug("Token", "測試輸出: timestamp = " + timestamp);
            Log.Debug("Token", "測試輸出: nonce = " + 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;
        }
    }
}

 

示例文件中所用類庫可以從公眾號支付開發文檔頁面下載:https://pay.weixin.qq.com/wiki/doc/api/jsapi_sl.php?chapter=11_1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM