JSAPI 支付 :在iOS9系统下,微信7.0.4,支付时报错ReferenceError:Can't find variable doPay。 (doPay 是我调用支付的方法)。代码如下
我把doPay 方法 放到另外一个js 文件里面,调用doPay 的时候 仍然报错ReferenceError:Can't find variable doPay,但是当我把if 条件判断注释掉,在doPay方法里面直接调onBridgeReady(), 报 ReferenceError:Can't find variable onBridgeReady.
这段代码在安卓手机和iOS 其他系统是没有问题的,可以正常支付,只有在iOS9 报错,请帮我分析一下,是什么问题
var payData;
function onBridgeReady() {
var signType = payData.signType;
if (!signType) {
signType = "MD5";
}
WeixinJSBridge.invoke('getBrandWCPayRequest', {
"appId" : payData.appId, // 公众号名称,由商户传入
"timeStamp" : payData.timeStamp, // 时间戳,自1970年以来的秒数
"nonceStr" : payData.nonceStr, // 随机串
"package" : payData.package,
"signType" : signType, // 微信签名方式:
"paySign" : payData.paySign// 微信签名
}, function(res) {
let tid = payData.tid
if (res.err_msg == "get_brand_wcpay_request:ok") {
window.location.href = 'success.html?tid=' + tid
} else if ((res.err_msg === "get_brand_wcpay_request:cancel")) {
// 用户取消支付
cancelPay(tid)
} else {
alertwf(JSON.stringify(res));
}
});
}
function doPay(resData) {
alert('doPay')
payData = resData;
hide();
if (typeof WeixinJSBridge == "undefined") {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady,
false);
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
} else {
alertwf('not in weixin');
}
return;
} else {
onBridgeReady();
}
}
找到问题了,iOS9不支持ES6,我用的是原生js ,把所有新语法换成老的语法就好了