From 011ca6da930cdca4ab90b72333a49847fbb84555 Mon Sep 17 00:00:00 2001 From: erio Date: Tue, 7 Apr 2026 11:01:32 +0800 Subject: [PATCH] fix(payment): parse money field in EasyPay webhook, cancel button text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - EasyPay VerifyNotification was not parsing the 'money' field, causing Amount=0 in PaymentNotification → amount mismatch error on callback - Cancel button on QR page now shows "取消订单" instead of generic "取消" --- backend/internal/payment/provider/easypay.go | 4 +++- frontend/src/i18n/locales/en.ts | 1 + frontend/src/i18n/locales/zh.ts | 1 + frontend/src/views/user/PaymentQRCodeView.vue | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/internal/payment/provider/easypay.go b/backend/internal/payment/provider/easypay.go index 3204f15a70..bcb62684e4 100644 --- a/backend/internal/payment/provider/easypay.go +++ b/backend/internal/payment/provider/easypay.go @@ -12,6 +12,7 @@ import ( "net/http" "net/url" "sort" + "strconv" "strings" "time" @@ -186,9 +187,10 @@ func (e *EasyPay) VerifyNotification(_ context.Context, rawBody string, _ map[st if params["trade_status"] == "TRADE_SUCCESS" { status = "success" } + amount, _ := strconv.ParseFloat(params["money"], 64) return &payment.PaymentNotification{ TradeNo: params["trade_no"], OrderID: params["out_trade_no"], - Status: status, RawData: rawBody, + Amount: amount, Status: status, RawData: rawBody, }, nil } diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index 9372e9d988..508809ae0c 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -5086,6 +5086,7 @@ export default { expiresIn: 'Expires in', expired: 'Order Expired', waitingPayment: 'Waiting for payment...', + cancelOrder: 'Cancel Order', }, orders: { title: 'My Orders', diff --git a/frontend/src/i18n/locales/zh.ts b/frontend/src/i18n/locales/zh.ts index 74894de7b4..abf19db088 100644 --- a/frontend/src/i18n/locales/zh.ts +++ b/frontend/src/i18n/locales/zh.ts @@ -5283,6 +5283,7 @@ export default { expiresIn: '剩余支付时间', expired: '订单已过期', waitingPayment: '等待支付...', + cancelOrder: '取消订单', }, orders: { title: '我的订单', diff --git a/frontend/src/views/user/PaymentQRCodeView.vue b/frontend/src/views/user/PaymentQRCodeView.vue index d5868884fa..8b9f174357 100644 --- a/frontend/src/views/user/PaymentQRCodeView.vue +++ b/frontend/src/views/user/PaymentQRCodeView.vue @@ -16,7 +16,7 @@