收藏
回答

出现 realAuthUrl errMsg:config:invalid signature ?


已确保:

1.签名算法正确,已经过微信工具进行校验

2.前后端用于config的所有参数均一致,没有任何差异

3.access_token和jsapi_ticket均已进行7200秒缓存,失效后自动重新获取并缓存

4.公众号已配置js安全域名(https://applet.chinaant.net),并已配置该域名和后台所在服务器的公网IP白名单


目前怀疑原因:

url不正确,但不知道为什么不正确,已参照网上说的方案,前端处理url后进行传递,但仍会出现报错

created() {
  const script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "https://res2.wx.qq.com/open/js/jweixin-1.6.0.js";
  document.body.appendChild(script);

  let url = location.href.split("#")[0];

  this.$message.toast(url);

  setTimeout(async () => {
    let data = await this.$http.quitRequest(this.$app.h5Server + "/jsapi/configJsSdk", {url: encodeURIComponent(url)});
    let config = data.list[0];

    console.log(config)

    wx.config({
      debug: true,
      appId: config.appId, // 必填,公众号的唯一标识
      timestamp: config.timestamp, // 必填,生成签名的时间戳
      nonceStr: config.nonceStr, // 必填,生成签名的随机串
      signature: config.signature,// 必填,签名
      jsApiList: ["openLocation"], // 必填,需要使用的JS接口列表
      openTagList: ["wx-open-launch-weapp"] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
    });

    wx.ready(() => {

    });
    
    wx.error((res) => {
      console.log(res)
    });
  }, 100);
}


回答关注问题邀请回答
收藏

21 个回答

  • 韩焙
    韩焙
    2022-04-24

    您好,请问下您解决了吗?遇到了一摸一样的问题

    2022-04-24
    有用 3
    回复
  • 怦然心动zc
    怦然心动zc
    2023-10-18

    补一个解决方案:https://www.jianshu.com/p/e8eecf1f13c4

    2023-10-18
    有用 1
    回复
  • 陈伟峰
    陈伟峰
    2023-05-08

    这个问题是由于微信获取URL进行签名验证的时候,URL不是最新的。对于SPA应用来说,URL会变,但微信用于签名验证的URL始终是第一次打开SPA的地址。

    搞清楚问题原因,就好解决了。

    就是SPA需要在初始化的时候,把URL记下来,用于生成签名。

    2023-05-08
    有用 1
    回复
  • 哄哄
    哄哄
    2022-07-17

    用react写jssdk注册遇到类似的问题,路由用的browserRouter, 如果在a页面注册成功,然后跳转b页面,在b页面刷新一下,再回到a页面就会提示realAuthUrl errMsg:config:invalid signature。

    问题原因分析:

    http://xxx.com/a 注册成功后,去到b页面刷新后页面地址就会变成http://xxx.com/b

    此时再回来a,react路由显示的页面地址是http://xxx.com/a,但是实际前端地址还是http://xxx.com/b

    故导致realAuthUrl errMsg:config:invalid signature。

    我的解决方案:

    在单页入口,把当前页面的地址设置缓存,当在b页面刷新的时就会把缓存设置为http://xxx.com/b

    此时再回来a页面注册jssdk取缓存中的http://xxx.com/b就会注册成功。

    2022-07-17
    有用 1
    回复
  • 山月
    山月
    2023-12-22

    你们的加密是服务端加密的吗?还是前端自己加密


    2023-12-22
    有用
    回复
  • ruinb0w
    ruinb0w
    2023-09-15

    哪位解决了能给个demo吗? 签名校对过没问题, 怀疑是url但试了好几种还是报错

    2023-09-15
    有用
    回复 1
  • 漠尘
    漠尘
    2023-06-07

    我的是企微的页面,遇到同样的问题,关键我们页面都上线很久了,没做任何改动,有一天突然就不行了,只要页面url上带&,wx.config()就会报invalid signature, 去掉&就可以。

    2023-06-07
    有用
    回复
  • Yanyyy
    Yanyyy
    2023-05-25

    必须刷新一次才能成功

    2023-05-25
    有用
    回复 1
  • 骆驼刺
    骆驼刺
    2023-05-24

    我是静态页面,地址是死的,不存在跳转,测试号上面都是正常的,公众号上面的不行

    2023-05-24
    有用
    回复 1
    • 咖啡加点糖
      咖啡加点糖
      2023-12-06
      解决了吗,我测试号没问题, 发布服务器,用正式号 就出问题
      2023-12-06
      回复
  • H~
    H~
    2023-01-17

    问下有人解决了没

    我也遇到这个问题了

    2023-01-17
    有用
    回复 2
    • 你不是
      你不是
      2023-04-22
      解决了吗
      2023-04-22
      回复
    • ZL
      ZL
      01-09
      路径包含去掉#也不行
      01-09
      回复

正在加载...

登录 后发表内容