config:invalid signature(ios系统刷新后正常)

注意:需要部署后在真机上调试

像这种签名错误有几种情况

一、安卓手机没有问题,苹果手机刷新后就可以了

二、签名后面跟着的realAuthUrl报错的路径和当前路径一致或者开始不一致,刷新后一致

三、签名后面跟着的realAuthUrl报错路径第一次和刷新后都和当前路劲不一样

 第一种情况:安卓系统没有问题,苹果系统刷新后就可以了

这种情况是因为苹果手机进去的路径是固定的,本质上不会随之改变,从哪个路径进去就是哪个路径,这个时候用当前路径请求就会出现报错

解决方法:在第一次进去的时候将路径保存

if (typeof window.entryUrl === 'undefined' || window.entryUrl === '') {
	window.entryUrl = location.href.split('#')[0]
}

使用时

//判断是否时安卓系统获取路径
let signLink = /(Android)/i.test(navigator.userAgent) ? location.href : window.entryUrl;
//刷新后路径变化使用当前路径
if (encodeURIComponent(signLink) == 'undefined') signLink = location.href

第二种情况:签名后面跟着的realAuthUrl报错的路径和当前路径一致或者开始不一致,刷新后一致 

这种情况我们需要考虑获取的签名是否正确,注:appid不一致也会导致报错

我们可以使用微信提供的校验工具:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign

wx.config({
	debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
	appId: '自己公众号的appid', // 必填,企业号的唯一标识,此处填写企业号corpid
	timestamp: timestamp, // 必填,生成签名的时间戳
	nonceStr: noncestr, // 必填,生成签名的随机串
	signature: signature, // 必填,签名
	jsApiList: [''], // 必填,需要使用的JS接口列表
	openTagList: ['']
}),
wx.ready(() => {
	console.log('ready')
});
wx.error(function(res1) {
	console.log('error', res1, res1.errMsg)
});

第三种情况:签名后面跟着的realAuthUrl报错路径第一次和刷新后都和当前路径不一样

这种情况就简单了,就是当前路径和你请求的的路径不一致,因为它执行时的url和签名时的url保存一致才会通过

我们也可查看官方文档寻找问题:文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#%E9%99%84%E5%BD%951-JS-SDK%E4%BD%BF%E7%94%A8%E6%9D%83%E9%99%90%E7%AD%BE%E5%90%8D%E7%AE%97%E6%B3%95

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值