From a0b4bd065a4d556381ad5fc7cf6cf1b46d8403d2 Mon Sep 17 00:00:00 2001 From: erio Date: Tue, 7 Apr 2026 21:48:07 +0800 Subject: [PATCH] fix(payment): prioritize actual order status over URL params in result page --- frontend/src/views/user/PaymentResultView.vue | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/frontend/src/views/user/PaymentResultView.vue b/frontend/src/views/user/PaymentResultView.vue index b816235f40..14ed0e2ee9 100644 --- a/frontend/src/views/user/PaymentResultView.vue +++ b/frontend/src/views/user/PaymentResultView.vue @@ -98,14 +98,13 @@ interface ReturnInfo { const returnInfo = ref(null) const isSuccess = computed(() => { - // Internal flow: explicit status=success - if (route.query.status === 'success') return true - // EasyPay return flow: trade_status=TRADE_SUCCESS - if (route.query.trade_status === 'TRADE_SUCCESS') return true - // Order-based check + // Always prioritize actual order status from backend if (order.value) { return order.value.status === 'COMPLETED' || order.value.status === 'PAID' } + // Fallback only when order not loaded + if (route.query.status === 'success') return true + if (route.query.trade_status === 'TRADE_SUCCESS') return true return false })