公众号调用扫一扫生成签名报错:config:fail,Error: 系统错误错误码63002,invalid signature

这个报错官网其实有专门的目录解答 如下
0.png

很多小伙伴 都说全部核查过了 没有问题,还是报错了。

一、首先先说第一种引发的问题 这也是我第一次遇到的问题 ,首先看使用微信jssdk的第一步

snipaste_20210116_085127.png

绑定域名,到底怎么绑定?


snipaste_20210116_085421.png

这里绑定域名 我开始绑定了ajax请求接口的域名 但是 我h5部署的时候并没有部署在绑定该域名的服务器上
假设我的h5部署在服务器A 而我的ajax请求的是服务器B的接口,会产生跨域,当时的办法就是让后端设置允许跨域访问
h5部署到服务器A后 比如访问首页是这样的 http://A域名/index.html 那么你的微信公众号绑定的安全接口域名就应该A域名
而不是B域名 。
一开始在这里搞了好久,然后,排查到该问题的方式就是,config 设置degug模式后 打包h5部署到服务器A中
利用公众号打开http://A域名/index.html 请求后端拿到签名后 校验签名

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

校验后 会弹窗出你的问题所在,如果签名没问题就会显示ok 如果有问题则会显示对应的问题
我第一次显示的是绑定url无效 才发现问题原来在第一步就错了。

二、生成秘钥的url 不能写死

一开始我是参照这边文章 https://blog.csdn.net/qq_37802298/article/details/81945309 给后端参照的
后端直接copy 。
文章里面是写死的url 实际上 url不应该是写死的,应该由前端传给后端

三、access_token有效期问题

我们先看看官方怎么说的 https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

access_token.png

只看第一段话即可

那要怎么做 可参考https://blog.csdn.net/u011062867/article/details/107014917的做法 对比上次生成签名时间,来决定是否重新获取access_token 来生成新的签名

以上就是两个会 触发系统错误码63002的场景 不一定符合所有
另外 如果是在微信开发工具上面是本地调试(就是html文件在本地) 那永远都会报63002的,除非你传给后端的url是写死的http://A域名/index.html, 而不是通过 window.location.href.split('#')[0] 获取传给后端

推荐阅读更多精彩内容