From 1336b86fc2725d9d36a0580c694f820e85463102 Mon Sep 17 00:00:00 2001 From: sexygoat <1538832180@qq.com> Date: Wed, 15 Apr 2026 09:34:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=BC=BA=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/my-wallet/my-wallet.vue | 4 +- pages/package-order/package-order.vue | 62 ++++++++++++++++++--------- 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/pages/my-wallet/my-wallet.vue b/pages/my-wallet/my-wallet.vue index 62f13fb..9a80bb1 100644 --- a/pages/my-wallet/my-wallet.vue +++ b/pages/my-wallet/my-wallet.vue @@ -27,7 +27,7 @@ - 充值记录 + 充值订单 钱包流水 @@ -39,7 +39,7 @@ 📋 - 暂无充值记录 + 暂无充值订单 diff --git a/pages/package-order/package-order.vue b/pages/package-order/package-order.vue index 1db065d..e18b18a 100644 --- a/pages/package-order/package-order.vue +++ b/pages/package-order/package-order.vue @@ -141,7 +141,42 @@ [currentPackage.value.package_id] ); - // 检查是否有订单信息 + // 判断是否为强充订单 + if (orderResult.order_type === 'recharge' && orderResult.recharge && orderResult.pay_config) { + // 强充订单:显示提示信息并直接使用返回的 pay_config 支付 + if (!orderResult.pay_config.package) { + uni.hideLoading(); + uni.showToast({ title: '支付参数获取失败', icon: 'none' }); + return; + } + + // 获取强充信息 + const forceRechargeAmount = orderResult.linked_package_info?.force_recharge_amount || 0; + const packageNames = orderResult.linked_package_info?.package_names || []; + + uni.hideLoading(); + showModal.value = false; + + // 提示用户需要强充 + const packageNameStr = packageNames.length > 0 ? packageNames.join('、') : '套餐'; + const message = `购买${packageNameStr}需要先充值 ¥${formatMoney(forceRechargeAmount)},充值成功后将自动购买套餐`; + + uni.showModal({ + title: '需要充值', + content: message, + confirmText: '去充值', + cancelText: '取消', + success: async (res) => { + if (res.confirm) { + // 调起微信支付 + await handleWechatPay(orderResult.pay_config, true); + } + } + }); + return; + } + + // 检查是否有订单信息(非强充订单) if (!orderResult || !orderResult.order) { uni.hideLoading(); showModal.value = false; @@ -151,23 +186,6 @@ const orderId = orderResult.order.order_id; - // 判断是否为强充订单 - if (orderResult.order_type === 'recharge' && orderResult.pay_config) { - // 强充订单:直接使用返回的 pay_config 支付 - if (!orderResult.pay_config.package) { - uni.hideLoading(); - uni.showToast({ title: '支付参数获取失败', icon: 'none' }); - return; - } - - uni.hideLoading(); - showModal.value = false; - - // 调起微信支付 - await handleWechatPay(orderResult.pay_config); - return; - } - // 第二步:获取支付参数 uni.showLoading({ title: '准备支付...', mask: true }); @@ -218,7 +236,7 @@ } }; - const handleWechatPay = async (payConfig) => { + const handleWechatPay = async (payConfig, isForceRecharge = false) => { // 验证参数 if (!payConfig.package || !payConfig.package.startsWith('prepay_id=')) { uni.showToast({ title: '支付参数无效', icon: 'none' }); @@ -241,7 +259,8 @@ }, function(res) { if (res.err_msg === 'get_brand_wcpay_request:ok') { console.log('支付成功', res); - uni.showToast({ title: '支付成功', icon: 'success' }); + const successMsg = isForceRecharge ? '充值成功,套餐将自动购买' : '支付成功'; + uni.showToast({ title: successMsg, icon: 'success', duration: 2000 }); setTimeout(() => { loadWalletBalance(); }, 1500); @@ -263,7 +282,8 @@ paySign: payConfig.pay_sign, success: (res) => { console.log('支付成功', res); - uni.showToast({ title: '支付成功', icon: 'success' }); + const successMsg = isForceRecharge ? '充值成功,套餐将自动购买' : '支付成功'; + uni.showToast({ title: successMsg, icon: 'success', duration: 2000 }); setTimeout(() => { loadWalletBalance(); }, 1500);