cari

Rumah  >  Soal Jawab  >  teks badan

javascript - 微信公众平台, config:invalid signature一直爆这个错误,求教如何解决?


然后哦 用这个校验和输出的是一致的也就是说 签名应该没问题吧 但是为什么手机上会显示无效呢 那个环节又出错了

PHPzPHPz2812 hari yang lalu11340

membalas semua(46)saya akan balas

  • ringa_lee

    ringa_lee2017-04-11 13:15:33

    碰到了同样的问题(并“解决”了):

    问题描述:

    1. 单页面应用(使用pushState更新url),iOS 10或Android 6.0

    2. 同样的web代码和网址,使用安卓访问,能正常调用微信API注册并分享;使用iOS 10则注册失败,返回'invalid signature'

    3. signature生成算法没有问题。(将输入和输出贴到微信提供的验证网页上,都一致)

    调查发现:

    1. 安卓需要使用当前URL进行微信API注册(即当场调用location.href.split('#')[0])

    2. iOS需要使用进入页面的初始URL进行注册,(即在任何pushstate发生前,调用location.href.split('#')[0])

    解决(规避):

    1. 保存进入页面最初的URL,假设为INIT_URL

    2. 根据客户端的不同:
      2.1 安卓:在准备分享前(或发生URL跳转后)使用当前URL进行wx.config, 如果失败,则尝试使用INIT_URL注册

    2.2 iOS:在准备分享前(或发生URL跳转后)使用INIT_URL进行wx.config, 如果失败,则尝试使用当前URL注册

    结论:

    1. 感觉没有找到问题的真相。。。。

    balas
    0
  • ringa_lee

    ringa_lee2017-04-11 13:15:33

    也提供一个解决方法,url和签名多次检查没有错误,开始一直根据文档提示可用location.href.split('#')[0]获取,而且需要encodeURIComponent。不用encodeURIComponent转义,之后请求OK。只能说无语了

    balas
    0
  • PHPz

    PHPz2017-04-11 13:15:33

    引起这个问题的原因是什么呢?我们也遇到了困扰,但是没有找到问题所在。
    希望看到的朋友指点~~

    balas
    0
  • 迷茫

    迷茫2017-04-11 13:15:33

    也是这个问题,蛋都碎了......

    balas
    0
  • PHPz

    PHPz2017-04-11 13:15:33

    楼主,你这个问题解决了吗?我也碰到这个问题了,好纠结啊!

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 13:15:33

    不行,我文件名也放出来了,也是对的,还是一样报错,不知道问题出在哪,太坑了

    balas
    0
  • 怪我咯

    怪我咯2017-04-11 13:15:33

    一次就成功的路过。。

    balas
    0
  • PHP中文网

    PHP中文网2017-04-11 13:15:33

    @docejack 正解,页面当前的url一定要和签名用的url一致

    balas
    0
  • 黄舟

    黄舟2017-04-11 13:15:33

    我的也出现这种问题,但是我的这种问题只出现在ios9以上,安卓的完全正常,ios有时候正常 有时候不正常,不正常的时候我也用签名工具验证了,但还是不行,url我也比对了 都是完全一样的 实在搞不清,求大神指点 跪求 希望大神看到后指点一下 万分感谢

    balas
    0
  • 黄舟

    黄舟2017-04-11 13:15:33

    这两天也是被这个问题折磨了很久,各位如果有问题的不妨看看你们的config里的timestamp的类型,从后台拿到的是String需要转成数值类型.

    balas
    0
  • Batalbalas