[已解决]微信报错config:fail,Error: 系统错误,错误码:63002,invalid signature [20211207 17:50:38][]

来源:csdn博客 分类: 文章浏览史 发布时间:2022-04-11 17:35:11 最后更新:2022-04-11 浏览:109
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2022-04-11 17:35:11

问题

错误码:63002,invalid signature 无效的签名

根据“附录5”检查了签名没有发现问题
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

同时在“微信 JS 接口签名校验工具”效验,签名都是一致的,但是就是不知道为啥一直报错
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign


可能用到的工具

附录5
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html


微信 JS 接口签名校验工具
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign


公众号-全局返回码说明
https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Global_Return_Code.html
​


排查步骤

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),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。


如果以上还是没有解决你的问题;请你重点检查以下几个地方

1.检查wx.config

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

确定参数的“名称”和“大小写”以及“数据格式”都一致

2.检查“签名时的参数”和“wx.config”的参数是否一致

3.检查“签名时的参数”

noncestr=‘’
jsapi_ticket=‘’
timestamp=0
url=‘’

确定参数的“名称”和“大小写”以及“数据格式”都一致

重点是:否按照字段名的ASCII 码从小到大排序

如果还未找到原因,请重新按照文章再“谨慎”的检查一遍

我在处理这个问题的时候也是半天没有找到原因,后来发现问题就是出现在了

“wx.config”的参数上;“大小写”和官方的不一致

php技术微信