首页 > 微信 > 详细

微信公众账号 token 验证失败 解决办法

时间:2016-01-07 18:00:00      阅读:439      评论:0      收藏:0      [点我收藏+]

 问题:微信公众账号 开发过程中配置  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

微信公众账号 token 验证失败 解决办法

原文:http://www.cnblogs.com/zsy/p/5110556.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!