不废话,上代码可直接复制
butFun() {
// #ifdef H5
renewpay({
renewId:this.select.id,
renewMerchantId:this.select.merchantId,
payType:2,//支付方式:2:微信H5支付
}).then(res => {
if (res.data.code == '0') {
let p = res.data.data;
window.WeixinJSBridge.invoke('getBrandWCPayRequest', {
"appId": p.appId, //公众号ID,由商户传入
"timeStamp": p.timeStamp, //时间戳,自1970年以来的秒数
"nonceStr": p.nonceStr, //随机串
"package": p.package,
"signType": p.signType, //微信签名方式:
"paySign": p.paySign //微信签名
},
function(result) {
uni.hideLoading();
if (result.err_msg == "get_brand_wcpay_request:ok") {
// 使用以上方式判断前端返回,微信团队郑重提示:
//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
uni.showToast({
title: '支付成功'
})
} else if (result.err_msg == "get_brand_wcpay_request:cancel") {
uni.showToast({
title: '用户取消支付',
icon: 'none'
})
//**todo** 写自己的逻辑
} else if (result.err_msg == "get_brand_wcpay_request:fail") {
uni.showToast({
title: '支付失败',
icon: 'none'
})
//**todo** 写自己的逻辑
} else {
// 取消支付
uni.showToast({
title: '取消支付',
icon: 'none'
})
//**todo** 写自己的逻辑
}
});
}
})
// #endif
},
第一步调用后端的提供接口,图中的renewpay拿到微信支付所需要的参数,然后调用微信提供的方法window.WeixinJSBridge.invoke就可以了