From 49bc3a1175fd28726bc62596cb321b546ed02e95 Mon Sep 17 00:00:00 2001 From: Seefs <40468931+seefs001@users.noreply.github.com> Date: Sun, 24 May 2026 16:37:43 +0800 Subject: [PATCH] fix(payment): hide classic Waffo Pancake settings (#5085) --- service/waffo_pancake.go | 3 + service/waffo_pancake_test.go | 60 +++++++++++-------- .../components/settings/PaymentSetting.jsx | 15 ----- 3 files changed, 39 insertions(+), 39 deletions(-) diff --git a/service/waffo_pancake.go b/service/waffo_pancake.go index 766a686d..5387eab8 100644 --- a/service/waffo_pancake.go +++ b/service/waffo_pancake.go @@ -103,6 +103,9 @@ func CreateWaffoPancakeCheckoutSession(ctx context.Context, params *WaffoPancake if strings.TrimSpace(params.BuyerIdentity) == "" { return nil, fmt.Errorf("missing buyer identity") } + if strings.TrimSpace(params.OrderMerchantExternalID) == "" { + return nil, fmt.Errorf("missing order merchant external id") + } client, err := newWaffoPancakeClient() if err != nil { return nil, fmt.Errorf("build Waffo Pancake client: %w", err) diff --git a/service/waffo_pancake_test.go b/service/waffo_pancake_test.go index 6f89f045..41c91a15 100644 --- a/service/waffo_pancake_test.go +++ b/service/waffo_pancake_test.go @@ -1,6 +1,7 @@ package service import ( + "context" "fmt" "strings" "testing" @@ -40,18 +41,29 @@ func setupWaffoPancakeTestDB(t *testing.T) *gorm.DB { return db } +func TestCreateWaffoPancakeCheckoutSession_RequiresOrderMerchantExternalID(t *testing.T) { + session, err := CreateWaffoPancakeCheckoutSession(context.Background(), &WaffoPancakeCreateSessionParams{ + ProductID: "PROD_checkout_guard", + BuyerIdentity: WaffoPancakeBuyerIdentityFromUserID(1), + }) + + require.Error(t, err) + require.Nil(t, session) + require.Contains(t, err.Error(), "missing order merchant external id") +} + func TestResolveWaffoPancakeTradeNo_UsesWebhookOrderIDWhenLocalOrderExists(t *testing.T) { db := setupWaffoPancakeTestDB(t) topUp := &model.TopUp{ - UserId: 1, - Amount: 10, - Money: 29, - TradeNo: "ORD_5dXBtmF2HLlHfbPNm0Wcnz", + UserId: 1, + Amount: 10, + Money: 29, + TradeNo: "ORD_5dXBtmF2HLlHfbPNm0Wcnz", PaymentMethod: model.PaymentMethodWaffoPancake, PaymentProvider: model.PaymentProviderWaffoPancake, - CreateTime: time.Now().Unix(), - Status: common.TopUpStatusPending, + CreateTime: time.Now().Unix(), + Status: common.TopUpStatusPending, } require.NoError(t, db.Create(topUp).Error) @@ -70,14 +82,14 @@ func TestResolveWaffoPancakeTradeNo_RejectsBuyerIdentityMismatch(t *testing.T) { db := setupWaffoPancakeTestDB(t) topUp := &model.TopUp{ - UserId: 42, - Amount: 10, - Money: 29, - TradeNo: "ORD_identity_mismatch_case", + UserId: 42, + Amount: 10, + Money: 29, + TradeNo: "ORD_identity_mismatch_case", PaymentMethod: model.PaymentMethodWaffoPancake, PaymentProvider: model.PaymentProviderWaffoPancake, - CreateTime: time.Now().Unix(), - Status: common.TopUpStatusPending, + CreateTime: time.Now().Unix(), + Status: common.TopUpStatusPending, } require.NoError(t, db.Create(topUp).Error) @@ -99,14 +111,14 @@ func TestResolveWaffoPancakeTradeNo_RejectsMissingBuyerIdentity(t *testing.T) { db := setupWaffoPancakeTestDB(t) topUp := &model.TopUp{ - UserId: 7, - Amount: 10, - Money: 29, - TradeNo: "ORD_missing_identity", + UserId: 7, + Amount: 10, + Money: 29, + TradeNo: "ORD_missing_identity", PaymentMethod: model.PaymentMethodWaffoPancake, PaymentProvider: model.PaymentProviderWaffoPancake, - CreateTime: time.Now().Unix(), - Status: common.TopUpStatusPending, + CreateTime: time.Now().Unix(), + Status: common.TopUpStatusPending, } require.NoError(t, db.Create(topUp).Error) @@ -136,14 +148,14 @@ func TestResolveWaffoPancakeTradeNo_FailsWhenWebhookOrderIDIsUnknown(t *testing. require.NoError(t, db.Create(user).Error) topUp := &model.TopUp{ - UserId: user.Id, - Amount: 10, - Money: 29, - TradeNo: "WAFFO_PANCAKE-42-123456-abc123", + UserId: user.Id, + Amount: 10, + Money: 29, + TradeNo: "WAFFO_PANCAKE-42-123456-abc123", PaymentMethod: model.PaymentMethodWaffoPancake, PaymentProvider: model.PaymentProviderWaffoPancake, - CreateTime: time.Now().Unix(), - Status: common.TopUpStatusPending, + CreateTime: time.Now().Unix(), + Status: common.TopUpStatusPending, } require.NoError(t, db.Create(topUp).Error) diff --git a/web/classic/src/components/settings/PaymentSetting.jsx b/web/classic/src/components/settings/PaymentSetting.jsx index d2d35558..88000112 100644 --- a/web/classic/src/components/settings/PaymentSetting.jsx +++ b/web/classic/src/components/settings/PaymentSetting.jsx @@ -52,9 +52,6 @@ const PaymentSetting = () => { StripeMinTopUp: 1, StripePromotionCodesEnabled: false, - WaffoPancakeMerchantID: '', - WaffoPancakePrivateKey: '', - WaffoPancakeReturnURL: '', 'payment_setting.compliance_confirmed': false, 'payment_setting.compliance_terms_version': '', 'payment_setting.compliance_confirmed_at': 0, @@ -165,11 +162,6 @@ const PaymentSetting = () => { case 'StripeMinTopUp': newInputs[item.key] = parseFloat(item.value); break; - case 'WaffoPancakeMerchantID': - case 'WaffoPancakePrivateKey': - case 'WaffoPancakeReturnURL': - newInputs[item.key] = item.value; - break; default: if (item.key.endsWith('Enabled')) { newInputs[item.key] = toBoolean(item.value); @@ -304,13 +296,6 @@ const PaymentSetting = () => { hideSectionTitle /> - - -