diff --git a/frontend/src/views/user/PaymentResultView.vue b/frontend/src/views/user/PaymentResultView.vue
index 8e622ca3..6431ddf6 100644
--- a/frontend/src/views/user/PaymentResultView.vue
+++ b/frontend/src/views/user/PaymentResultView.vue
@@ -37,12 +37,16 @@
{{ order.out_trade_no }}
- {{ t('payment.orders.payAmount') }}
- ¥{{ order.pay_amount.toFixed(2) }}
+ {{ t('payment.orders.baseAmount') }}
+ ¥{{ baseAmount.toFixed(2) }}
{{ t('payment.orders.fee') }} ({{ order.fee_rate }}%)
- {{ t('payment.orders.includedInPayAmount') }}
+ ¥{{ feeAmount.toFixed(2) }}
+
+
+ {{ t('payment.orders.payAmount') }}
+ ¥{{ order.pay_amount.toFixed(2) }}
{{ t('payment.orders.creditedAmount') }}
@@ -112,6 +116,18 @@ const returnInfo = ref(null)
const SUCCESS_STATUSES = new Set(['COMPLETED', 'PAID', 'RECHARGING'])
+/** 充值金额 = pay_amount / (1 + fee_rate/100),fee_rate=0 时等于 pay_amount */
+const baseAmount = computed(() => {
+ if (!order.value || order.value.fee_rate <= 0) return order.value?.pay_amount ?? 0
+ return Math.round((order.value.pay_amount / (1 + order.value.fee_rate / 100)) * 100) / 100
+})
+
+/** 手续费 = pay_amount - baseAmount */
+const feeAmount = computed(() => {
+ if (!order.value || order.value.fee_rate <= 0) return 0
+ return Math.round((order.value.pay_amount - baseAmount.value) * 100) / 100
+})
+
const isSuccess = computed(() => {
// Always prioritize actual order status from backend
if (order.value) {