diff --git a/pages/package-order/package-order.vue b/pages/package-order/package-order.vue index 2f25433..1db065d 100644 --- a/pages/package-order/package-order.vue +++ b/pages/package-order/package-order.vue @@ -225,7 +225,36 @@ return; } - // H5 和小程序都使用 uni.requestPayment + // #ifdef H5 + if (typeof WeixinJSBridge === 'undefined') { + uni.showToast({ title: '请在微信中打开', icon: 'none' }); + return; + } + + WeixinJSBridge.invoke('getBrandWCPayRequest', { + appId: payConfig.app_id, + timeStamp: payConfig.timestamp, + nonceStr: payConfig.nonce_str, + package: payConfig.package, + signType: payConfig.sign_type, + paySign: payConfig.pay_sign + }, function(res) { + if (res.err_msg === 'get_brand_wcpay_request:ok') { + console.log('支付成功', res); + uni.showToast({ title: '支付成功', icon: 'success' }); + setTimeout(() => { + loadWalletBalance(); + }, 1500); + } else if (res.err_msg === 'get_brand_wcpay_request:cancel') { + uni.showToast({ title: '已取消支付', icon: 'none' }); + } else { + console.error('支付失败', res); + uni.showToast({ title: '支付失败', icon: 'none' }); + } + }); + // #endif + + // #ifndef H5 uni.requestPayment({ timeStamp: payConfig.timestamp, nonceStr: payConfig.nonce_str, @@ -241,7 +270,6 @@ }, fail: (err) => { console.error('支付失败', err); - // 判断是否用户取消 if (err.errMsg && (err.errMsg.includes('cancel') || err.errMsg.includes('用户取消'))) { uni.showToast({ title: '已取消支付', icon: 'none' }); } else { @@ -249,6 +277,7 @@ } } }); + // #endif }; onMounted(() => {