收藏
回答

wx.config配置一直提示签名无效,状态码63002,但用工具解析的签名一样?url过长怎么处理

         var data = res.data;
        var timestamp = parseInt(data.timestamp);
        var nonceStr =data.noncestr;
        var signature =data.signature;
        wx.config({
            debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
            appId: 'wxxxxxxx1', // 必填,公众号的唯一标识
            timestamp: data.timestamp, // 必填,生成签名的时间戳
            nonceStr: nonceStr, // 必填,生成签名的随机串
            signature: signature,// 必填,签名
            jsApiList: ["startRecord"
                ,"stopRecord"
                ,"playVoice"
                ,"stopVoice"
                ,"uploadVoice"
                ,"downloadVoice"] // 必填,需要使用的JS接口列表
        });

难道是我的url太长了?参数太多?


我使用了空白页面url不是很长的进行测试,返回结果正确。那我的真实页面链接url应该怎么处理

请官方回答一下!!

公众号已经配置js域名了。一直无效状态

最后一次编辑于  2021-04-25
回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2021-04-25

    你好,辛苦先看看这个

    1. 确认签名算法正确,可用http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。
    2. 确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致。
    3. 确认url是页面完整的url(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)://'部分,以及'?'后面的GET参数部分,但不包括'#'hash后面的部分。
    4. 确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。
    5. 确保一定缓存access_token和jsapi_ticket。
    6. 确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。

    若还有问题测试下:微信打开的页面的url和使用签名工具去验证的url是不是一样的


    2021-04-25
    有用
    回复 2
    • tothemoon
      tothemoon
      发表于移动端
      2021-04-25
      已经测试过了,只要参数少就可以,
      2021-04-25
      回复
    • 如果雨 过后
      如果雨 过后
      2021-09-03
      只要参数少,少什么参数?
      2021-09-03
      回复
登录 后发表内容