refactor(payment): 移除ApplePay支付平台支持并整合到Stripe
Some checks failed
Build docker and publish / build (20.15.1) (push) Has been cancelled

将ApplePay支付方式整合到Stripe平台处理,移除独立的ApplePay平台代码
简化支付逻辑,统一通过Stripe处理所有支付方式
This commit is contained in:
shanshanzhong 2025-12-09 00:58:03 -08:00
parent d95911d6bd
commit a80d6af035
3 changed files with 10 additions and 31 deletions

View File

@ -39,7 +39,7 @@ func PaymentNotifyHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return return
} }
c.String(http.StatusOK, "%s", "success") c.String(http.StatusOK, "%s", "success")
case payment.Stripe, payment.ApplePay: case payment.Stripe:
l := notify.NewStripeNotifyLogic(c.Request.Context(), svcCtx) l := notify.NewStripeNotifyLogic(c.Request.Context(), svcCtx)
if err := l.StripeNotify(c.Request, c.Writer); err != nil { if err := l.StripeNotify(c.Request, c.Writer); err != nil {
result.HttpResult(c, nil, err) result.HttpResult(c, nil, err)

View File

@ -86,18 +86,7 @@ func (l *PurchaseCheckoutLogic) PurchaseCheckout(req *types.CheckoutOrderRequest
case paymentPlatform.Stripe: case paymentPlatform.Stripe:
// Process Stripe payment - creates payment sheet for client-side processing // Process Stripe payment - creates payment sheet for client-side processing
stripePayment, err := l.stripePayment(paymentConfig.Config, orderInfo, "", "") stripePayment, err := l.stripePayment(paymentConfig.Config, orderInfo, "")
if err != nil {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "stripePayment error: %v", err.Error())
}
resp = &types.CheckoutOrderResponse{
Type: "stripe", // Client should use Stripe SDK
Stripe: stripePayment,
}
case paymentPlatform.ApplePay:
// Process Apple Pay payment - uses Stripe with 'card' method
stripePayment, err := l.stripePayment(paymentConfig.Config, orderInfo, "", "card")
if err != nil { if err != nil {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "stripePayment error: %v", err.Error()) return nil, errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "stripePayment error: %v", err.Error())
} }
@ -219,7 +208,7 @@ func (l *PurchaseCheckoutLogic) alipayF2fPayment(pay *payment.Payment, info *ord
// stripePayment processes Stripe payment by creating a payment sheet // stripePayment processes Stripe payment by creating a payment sheet
// It supports various payment methods including WeChat Pay and Alipay through Stripe // It supports various payment methods including WeChat Pay and Alipay through Stripe
func (l *PurchaseCheckoutLogic) stripePayment(config string, info *order.Order, identifier string, forceMethod string) (*types.StripePayment, error) { func (l *PurchaseCheckoutLogic) stripePayment(config string, info *order.Order, identifier string) (*types.StripePayment, error) {
// Parse Stripe configuration from payment settings // Parse Stripe configuration from payment settings
stripeConfig := &payment.StripeConfig{} stripeConfig := &payment.StripeConfig{}
@ -228,10 +217,6 @@ func (l *PurchaseCheckoutLogic) stripePayment(config string, info *order.Order,
return nil, errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "Unmarshal error: %s", err.Error()) return nil, errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "Unmarshal error: %s", err.Error())
} }
if forceMethod != "" {
stripeConfig.Payment = forceMethod
}
// Initialize Stripe client with API credentials // Initialize Stripe client with API credentials
client := stripe.NewClient(stripe.Config{ client := stripe.NewClient(stripe.Config{
SecretKey: stripeConfig.SecretKey, SecretKey: stripeConfig.SecretKey,
@ -253,12 +238,17 @@ func (l *PurchaseCheckoutLogic) stripePayment(config string, info *order.Order,
) )
// Create Stripe payment sheet for client-side processing // Create Stripe payment sheet for client-side processing
// Map apple_pay to card for Stripe API, but keep apple_pay in config/response
paymentMethod := stripeConfig.Payment
if paymentMethod == "apple_pay" {
paymentMethod = "card"
}
ord := &stripe.Order{ ord := &stripe.Order{
OrderNo: info.OrderNo, OrderNo: info.OrderNo,
Subscribe: strconv.FormatInt(info.SubscribeId, 10), Subscribe: strconv.FormatInt(info.SubscribeId, 10),
Amount: convertAmount, Amount: convertAmount,
Currency: "cny", Currency: "cny",
Payment: stripeConfig.Payment, Payment: paymentMethod,
} }
usr := &stripe.User{Email: identifier} usr := &stripe.User{Email: identifier}
l.Infow("stripe request", logger.Field("order", ord), logger.Field("user", usr)) l.Infow("stripe request", logger.Field("order", ord), logger.Field("user", usr))

View File

@ -11,7 +11,6 @@ const (
Balance Balance
CryptoSaaS CryptoSaaS
AppleIAP AppleIAP
ApplePay
UNSUPPORTED Platform = -1 UNSUPPORTED Platform = -1
) )
@ -22,7 +21,6 @@ var platformNames = map[string]Platform{
"EPay": EPay, "EPay": EPay,
"balance": Balance, "balance": Balance,
"AppleIAP": AppleIAP, "AppleIAP": AppleIAP,
"ApplePay": ApplePay,
"unsupported": UNSUPPORTED, "unsupported": UNSUPPORTED,
} }
@ -51,7 +49,7 @@ func GetSupportedPlatforms() []types.PlatformInfo {
"public_key": "Publishable key", "public_key": "Publishable key",
"secret_key": "Secret key", "secret_key": "Secret key",
"webhook_secret": "Webhook secret", "webhook_secret": "Webhook secret",
"payment": "Payment Method, only supported card/alipay/wechat_pay", "payment": "Payment Method, only supported card/alipay/wechat_pay/apple_pay",
}, },
}, },
{ {
@ -94,14 +92,5 @@ func GetSupportedPlatforms() []types.PlatformInfo {
"environment": "Environment: Sandbox/Production", "environment": "Environment: Sandbox/Production",
}, },
}, },
{
Platform: ApplePay.String(),
PlatformUrl: "https://stripe.com",
PlatformFieldDescription: map[string]string{
"public_key": "Publishable key",
"secret_key": "Secret key",
"webhook_secret": "Webhook secret",
},
},
} }
} }