收藏
回答

config方法提示invalid signature,确认签名是对的,唯一不同jsApiList?

js-sdk 1.6.0 客户端 ios 7.0.12

同样config方法 调用后台同一个接口 只是jsApiList不一样 updateAppMessageShareData这个invalid signature,chooseWXPay这个ok

请问可能是什么原因呢

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

3 个回答

  • 詹小辉
    詹小辉
    2020-09-10

    同样的问题,解决了吗?

    2020-09-10
    有用 2
    回复 4
    • 詹小辉
      詹小辉
      2020-09-10
      知道原因了,signature签名使用的url与前端url对不上,chooseWXPay这个对url参数不敏感
      2020-09-10
      回复
    • 詹小辉
      詹小辉
      2020-09-10回复詹小辉
      url对不上,可能因为使用了spa的History路由方式,这个jssdk不兼容History.pushState(),改用hash路由或者直接使用a标签跳转到需要授权的页面。
      2020-09-10
      回复
    • 詹小辉
      詹小辉
      2020-09-10回复詹小辉
      看了下jssdk的源码,jssdk验证的url,在History.pushState()路由模式下其实是LandingPage落地页。
      假设:
      通过pushState跳转路由访问http://a.com/b/c,c这个页面的落地页就是http://a.com/b,所以实际需要签名的页面是http://a.com/b,而不是http://a.com/b/c
      还有一种情况,就是直接输入http://a.com/b/c访问,或者在当前页面刷新,那LandingPage就是自身页,需要签名的自然就是http://a.com/b/c
      所以需要同时处理这2种情况,才能保证wx.config不报错。


      已vue为例,可以使用beforeRouteEnter这个路由钩子处理:
      2020-09-10
      1
      回复
    • 张小康
      张小康
      2020-09-24
      大神,我也遇到ios设置分享失败的情况;但和上面情况不太一致,nuxt ssr的项目,进入页面后,oauth授权跳转链接,在新页面中走jssdk校验一直失败;如果不走oauth授权就是好的。仅ios端,android是好的。
      2020-09-24
      回复
  • 灰
    2021-05-08

    调试后应该是url在进入页面后有过重定向或者其他push路由造成的,解决办法是一进页面就将初始页面的url保存下来,签名时用这个url

    2021-05-08
    有用
    回复
  • จุ๊บ
    จุ๊บ
    2020-06-23

    是不是token 不是最新的。同一页面写一个config 就可以了

    2020-06-23
    有用
    回复 2
    • Rainy
      Rainy
      2020-06-23
      应该不会吧,因为我目前wx支付能成功调用,这个分享却不行
      2020-06-23
      回复
    • Rainy
      Rainy
      2020-06-23
      两个config不会直接运行,是需要触发的
      2020-06-23
      回复
登录 后发表内容
问题标签