fix(payment): hide classic Waffo Pancake settings (#5085)
This commit is contained in:
@@ -103,6 +103,9 @@ func CreateWaffoPancakeCheckoutSession(ctx context.Context, params *WaffoPancake
|
|||||||
if strings.TrimSpace(params.BuyerIdentity) == "" {
|
if strings.TrimSpace(params.BuyerIdentity) == "" {
|
||||||
return nil, fmt.Errorf("missing buyer identity")
|
return nil, fmt.Errorf("missing buyer identity")
|
||||||
}
|
}
|
||||||
|
if strings.TrimSpace(params.OrderMerchantExternalID) == "" {
|
||||||
|
return nil, fmt.Errorf("missing order merchant external id")
|
||||||
|
}
|
||||||
client, err := newWaffoPancakeClient()
|
client, err := newWaffoPancakeClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("build Waffo Pancake client: %w", err)
|
return nil, fmt.Errorf("build Waffo Pancake client: %w", err)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -40,18 +41,29 @@ func setupWaffoPancakeTestDB(t *testing.T) *gorm.DB {
|
|||||||
return 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) {
|
func TestResolveWaffoPancakeTradeNo_UsesWebhookOrderIDWhenLocalOrderExists(t *testing.T) {
|
||||||
db := setupWaffoPancakeTestDB(t)
|
db := setupWaffoPancakeTestDB(t)
|
||||||
|
|
||||||
topUp := &model.TopUp{
|
topUp := &model.TopUp{
|
||||||
UserId: 1,
|
UserId: 1,
|
||||||
Amount: 10,
|
Amount: 10,
|
||||||
Money: 29,
|
Money: 29,
|
||||||
TradeNo: "ORD_5dXBtmF2HLlHfbPNm0Wcnz",
|
TradeNo: "ORD_5dXBtmF2HLlHfbPNm0Wcnz",
|
||||||
PaymentMethod: model.PaymentMethodWaffoPancake,
|
PaymentMethod: model.PaymentMethodWaffoPancake,
|
||||||
PaymentProvider: model.PaymentProviderWaffoPancake,
|
PaymentProvider: model.PaymentProviderWaffoPancake,
|
||||||
CreateTime: time.Now().Unix(),
|
CreateTime: time.Now().Unix(),
|
||||||
Status: common.TopUpStatusPending,
|
Status: common.TopUpStatusPending,
|
||||||
}
|
}
|
||||||
require.NoError(t, db.Create(topUp).Error)
|
require.NoError(t, db.Create(topUp).Error)
|
||||||
|
|
||||||
@@ -70,14 +82,14 @@ func TestResolveWaffoPancakeTradeNo_RejectsBuyerIdentityMismatch(t *testing.T) {
|
|||||||
db := setupWaffoPancakeTestDB(t)
|
db := setupWaffoPancakeTestDB(t)
|
||||||
|
|
||||||
topUp := &model.TopUp{
|
topUp := &model.TopUp{
|
||||||
UserId: 42,
|
UserId: 42,
|
||||||
Amount: 10,
|
Amount: 10,
|
||||||
Money: 29,
|
Money: 29,
|
||||||
TradeNo: "ORD_identity_mismatch_case",
|
TradeNo: "ORD_identity_mismatch_case",
|
||||||
PaymentMethod: model.PaymentMethodWaffoPancake,
|
PaymentMethod: model.PaymentMethodWaffoPancake,
|
||||||
PaymentProvider: model.PaymentProviderWaffoPancake,
|
PaymentProvider: model.PaymentProviderWaffoPancake,
|
||||||
CreateTime: time.Now().Unix(),
|
CreateTime: time.Now().Unix(),
|
||||||
Status: common.TopUpStatusPending,
|
Status: common.TopUpStatusPending,
|
||||||
}
|
}
|
||||||
require.NoError(t, db.Create(topUp).Error)
|
require.NoError(t, db.Create(topUp).Error)
|
||||||
|
|
||||||
@@ -99,14 +111,14 @@ func TestResolveWaffoPancakeTradeNo_RejectsMissingBuyerIdentity(t *testing.T) {
|
|||||||
db := setupWaffoPancakeTestDB(t)
|
db := setupWaffoPancakeTestDB(t)
|
||||||
|
|
||||||
topUp := &model.TopUp{
|
topUp := &model.TopUp{
|
||||||
UserId: 7,
|
UserId: 7,
|
||||||
Amount: 10,
|
Amount: 10,
|
||||||
Money: 29,
|
Money: 29,
|
||||||
TradeNo: "ORD_missing_identity",
|
TradeNo: "ORD_missing_identity",
|
||||||
PaymentMethod: model.PaymentMethodWaffoPancake,
|
PaymentMethod: model.PaymentMethodWaffoPancake,
|
||||||
PaymentProvider: model.PaymentProviderWaffoPancake,
|
PaymentProvider: model.PaymentProviderWaffoPancake,
|
||||||
CreateTime: time.Now().Unix(),
|
CreateTime: time.Now().Unix(),
|
||||||
Status: common.TopUpStatusPending,
|
Status: common.TopUpStatusPending,
|
||||||
}
|
}
|
||||||
require.NoError(t, db.Create(topUp).Error)
|
require.NoError(t, db.Create(topUp).Error)
|
||||||
|
|
||||||
@@ -136,14 +148,14 @@ func TestResolveWaffoPancakeTradeNo_FailsWhenWebhookOrderIDIsUnknown(t *testing.
|
|||||||
require.NoError(t, db.Create(user).Error)
|
require.NoError(t, db.Create(user).Error)
|
||||||
|
|
||||||
topUp := &model.TopUp{
|
topUp := &model.TopUp{
|
||||||
UserId: user.Id,
|
UserId: user.Id,
|
||||||
Amount: 10,
|
Amount: 10,
|
||||||
Money: 29,
|
Money: 29,
|
||||||
TradeNo: "WAFFO_PANCAKE-42-123456-abc123",
|
TradeNo: "WAFFO_PANCAKE-42-123456-abc123",
|
||||||
PaymentMethod: model.PaymentMethodWaffoPancake,
|
PaymentMethod: model.PaymentMethodWaffoPancake,
|
||||||
PaymentProvider: model.PaymentProviderWaffoPancake,
|
PaymentProvider: model.PaymentProviderWaffoPancake,
|
||||||
CreateTime: time.Now().Unix(),
|
CreateTime: time.Now().Unix(),
|
||||||
Status: common.TopUpStatusPending,
|
Status: common.TopUpStatusPending,
|
||||||
}
|
}
|
||||||
require.NoError(t, db.Create(topUp).Error)
|
require.NoError(t, db.Create(topUp).Error)
|
||||||
|
|
||||||
|
|||||||
@@ -52,9 +52,6 @@ const PaymentSetting = () => {
|
|||||||
StripeMinTopUp: 1,
|
StripeMinTopUp: 1,
|
||||||
StripePromotionCodesEnabled: false,
|
StripePromotionCodesEnabled: false,
|
||||||
|
|
||||||
WaffoPancakeMerchantID: '',
|
|
||||||
WaffoPancakePrivateKey: '',
|
|
||||||
WaffoPancakeReturnURL: '',
|
|
||||||
'payment_setting.compliance_confirmed': false,
|
'payment_setting.compliance_confirmed': false,
|
||||||
'payment_setting.compliance_terms_version': '',
|
'payment_setting.compliance_terms_version': '',
|
||||||
'payment_setting.compliance_confirmed_at': 0,
|
'payment_setting.compliance_confirmed_at': 0,
|
||||||
@@ -165,11 +162,6 @@ const PaymentSetting = () => {
|
|||||||
case 'StripeMinTopUp':
|
case 'StripeMinTopUp':
|
||||||
newInputs[item.key] = parseFloat(item.value);
|
newInputs[item.key] = parseFloat(item.value);
|
||||||
break;
|
break;
|
||||||
case 'WaffoPancakeMerchantID':
|
|
||||||
case 'WaffoPancakePrivateKey':
|
|
||||||
case 'WaffoPancakeReturnURL':
|
|
||||||
newInputs[item.key] = item.value;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
if (item.key.endsWith('Enabled')) {
|
if (item.key.endsWith('Enabled')) {
|
||||||
newInputs[item.key] = toBoolean(item.value);
|
newInputs[item.key] = toBoolean(item.value);
|
||||||
@@ -304,13 +296,6 @@ const PaymentSetting = () => {
|
|||||||
hideSectionTitle
|
hideSectionTitle
|
||||||
/>
|
/>
|
||||||
</Tabs.TabPane>
|
</Tabs.TabPane>
|
||||||
<Tabs.TabPane tab={t('Waffo Pancake 设置')} itemKey='waffo-pancake'>
|
|
||||||
<SettingsPaymentGatewayWaffoPancake
|
|
||||||
options={inputs}
|
|
||||||
refresh={onRefresh}
|
|
||||||
hideSectionTitle
|
|
||||||
/>
|
|
||||||
</Tabs.TabPane>
|
|
||||||
<Tabs.TabPane tab={t('Waffo 设置')} itemKey='waffo'>
|
<Tabs.TabPane tab={t('Waffo 设置')} itemKey='waffo'>
|
||||||
<SettingsPaymentGatewayWaffo
|
<SettingsPaymentGatewayWaffo
|
||||||
options={inputs}
|
options={inputs}
|
||||||
|
|||||||
Reference in New Issue
Block a user