vue开发微信的坑

在IOS下使用当前目录进行js-sdk授权失败

微信校验签名的方式是以第一次进入的url,作为真实的url进行验证的,而我们使用当前url进行授权,就出错了

需要区分Andriod和IOS,进行不同授权处理,在程序初始化时保存url真实地址,在需要授权的界面拿到真实的url地址进行授权
解决办法很多,下面是我得解决方案
**
注:Andriod默认使用当前url进行授权即可**

解决方案

在app.vue中的mounted方法中保存当前url,保存到vuex中并写入sessionStore
这样页面刷新保存的url也不是丢失

 mounted() {
    // 校验是否为IOS设备
    if (validIOSDevice()) {
      this.$store.commit("setConfigUrl", location.href)
    }
  }

微信JSAPI支付提示url未注册

跟上述原理是一致的,详情见微信官方文档
https://pay.weixin.qq.com/wik...

支付授权目录校验规则说明

a、如果支付授权目录设置为顶级域名(例如:https://www.weixin.com/ ),那么只校验顶级域名,不校验后缀;

b、如果支付授权目录设置为多级目录,就会进行全匹配,例如设置支付授权目录为https://www.weixin.com/abc/123/,则实际请求页面目录不能为https://www.weixin.com/abc/,也不能为https://www.weixin.com/abc/12...,必须为https://www.weixin.com/abc/123/

你可能感兴趣的:(vue开发微信的坑)