收藏
回答

invalid signature报错,有解决过的吗?

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

2 个回答

  • TNT
    TNT
    2021-02-02

    问题在于ios系统对vue-router的history的支持上,由于Vue的spa特点,尽管你打印出来都是你所要的当前页面url,只要你不刷新页面,ios获取到的url永远是你进入这个项目的第一个url,这样的话你请求签名就会变成动态url不一致导致签名失败

    IOS:微信IOS版,每次切换路由,SPA的url是不会变的,发起签名请求的url参数必须是当前页面的url就是最初进入页面时的url

    Android:微信安卓版,每次切换路由,SPA的url是会变的,发起签名请求的url参数必须是当前页面的url(不是最初进入页面时的)

    // vue 中,和data平级beforeRouteEnter (to, from, next) {
      var u = navigator.userAgent;
      var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
      // XXX: 修复iOS版微信HTML5 History兼容性问题
      if (isiOS && to.path !== location.pathname) {
        // 此处不可使用location.replace
        location.assign(to.fullPath)
      } else {
        next()
      }
    }
    
    2021-02-02
    有用
    回复 2
    • 雁南飞
      雁南飞
      2021-02-02
      是怀疑url不对吗?我这边是.net开发的微信公众平台, HttpContext.Current.Request.Url.ToString();这样获取的
      2021-02-02
      回复
    • TNT
      TNT
      2021-02-02回复雁南飞
      .net没搞过。你前端h5是 用的啥框架。
      2021-02-02
      回复
  • kenyada
    kenyada
    2021-02-02

    2021-02-02
    有用
    回复 3
    • 雁南飞
      雁南飞
      2021-02-02
      检查过了,没发现啥问题
      2021-02-02
      回复
    • coolwen
      coolwen
      2021-09-08
      我这边也检查没有问题。 能帮忙具体查下是什么问题导致的吗
      2021-09-08
      回复
    • 好好学习
      好好学习
      2022-02-28
      我这边也是遇到这个问题,按文档能查的都查了, 你们解决了吗?
      2022-02-28
      回复
登录 后发表内容