问题:
h5微信支付 ios内在第二个页面的情况下,第一次取消支付过后,再进来相同的页面有概率触发WeixinJSBridge === 'undefined',WeixinJSBridgeReady也不会继续,导致支付收银台起不来。
微信支付源码:
const onBridgeReady = (config, success, fail) => {
WeixinJSBridge.invoke( // eslint-disable-line
'getBrandWCPayRequest', config,
(res) => {
if (res.err_msg === 'get_brand_wcpay_request:ok') {
success(res)
} else {
fail()
}
}
)
}
export const wxRealPay = (config, success, fail) => {
if (typeof WeixinJSBridge === 'undefined') {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', () => onBridgeReady(config, success, fail), false)
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', () => onBridgeReady(config, success, fail))
document.attachEvent('onWeixinJSBridgeReady', () => onBridgeReady(config, success, fail))
}
} else {
onBridgeReady(config, success, fail)
}
}
支付在线上已经用了一段时间,所以正常情况下是没有问题的。感觉WeixinJSBridge、WeixinJSBridgeReady都失效了。
一开始我以为是ios缓存问题,通过这个链接 使用了时间戳、<html manifest="IGNORE.manifest">这两种方法,但是都没什么效果。
现在只能让他原地刷新,希望可以找到更好的方法
找了很久没找到原因,最后还是让他每次一进来就刷新,确实都可以调起支付收银台
有更好的方法,欢迎留下回答