pay() {
if (!this.selIndArr.length) {
Toast({
message: '请先选择要支付的订单!',
duration: 1000,
forbidClick: true
})
return;
}
let orderNumArr = []
for (let i = 0; i < this.selIndArr.length; i++) {
orderNumArr.push(this.list[this.selIndArr[i]].orderId)
}
Toast.loading({
mask: true,
duration: 0,
forbidClick: true,
message: '发起支付中...'
});
let params = {
orderNos: orderNumArr.join()
}
this.$api.payOrder(params).then(res => {
if (res.code == 10000) {
Toast.clear();
let param = res.data.jsRequstParam
this.onBridgeReady(param)
if (typeof WeixinJSBridge == "undefined") {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady(param), false);
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(param));
document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(param));
}
} else {
this.onBridgeReady(param)
}
}
})
},
onBridgeReady(param) {
let that = this;
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId": param.appId,
"timeStamp": param.timeStamp,
"nonceStr": param.nonceStr,
"package": param.pack,
"signType": param.signType,
"paySign": param.paySign
},
function (res) {
console.log('onBridgeReadyRes==', res);
if (res.err_msg == "get_brand_wcpay_request:ok") {
console.log('get_brand_wcpay_request:ok');
that.checkPay(param.outTradeNo, 0)
}
else if (res.err_msg == "get_brand_wcpay_request:cancel") {
Toast('取消支付!');
}
});
},
支付不成功至少包括两种:`:cancel` 及 `:fail`,你仅捕获了一种,建议回调仅对`:ok`做严格判断,其他全部认为失败,就应该万事大吉了。
为了帮助你更快的定位问题,请提供如下信息(有敏感信息可私信提供):
-请求的具体API接口(提供文档地址和请求的URL):
- 问题发生时间【必填】:
- 商户号【 必填】:
- 商户订单号【 必填】:
- 相关报错信息文案:
- 问题截图或视频:
-完整的请求和返回参数以及单号: