fix: 仅保留 Waffo,并修复调试包年误用永久 Product
调试不再把兼容字段 product_id 覆盖到包年;包年禁止回落永久商品;下单强制走 Waffo。
This commit is contained in:
1 parent
d94da2129c
commit
2b44e8dcb3
5 files changed
+53
-49
No files matched your search
@@ -115,11 +115,14 @@ func (s *OrderService) CreateOrder(req dto.CreateOrderRequest, clientIP, userAge
|
||||
return nil, fmt.Errorf("重复购买拦截: %s", checkResult.Reason)
|
||||
}
|
||||
|
||||
// 4. 选取可用支付渠道(先选网关,写入订单) // Logan.Li
|
||||
// 4. 仅对接 Waffo(禁用其它网关) // Logan.Li
|
||||
var gateway model.PaymentGatewayConfig
|
||||
if err := s.db.Where("enabled = ?", true).Order("priority ASC").First(&gateway).Error; err != nil {
|
||||
return nil, errors.New("暂无可用的支付渠道")
|
||||
if err := s.db.Where("gateway = ? AND enabled = ?", "waffo", true).First(&gateway).Error; err != nil {
|
||||
return nil, errors.New("Waffo 支付未启用,请先在「支付」页配置")
|
||||
}
|
||||
_ = s.db.Model(&model.PaymentGatewayConfig{}).
|
||||
Where("gateway <> ? AND enabled = ?", "waffo", true).
|
||||
Updates(map[string]interface{}{"enabled": false, "priority": 100}).Error
|
||||
|
||||
notes := ""
|
||||
if deviceID := strings.TrimSpace(req.DeviceID); deviceID != "" {
|
||||
@@ -135,7 +138,7 @@ func (s *OrderService) CreateOrder(req dto.CreateOrderRequest, clientIP, userAge
|
||||
Amount: plan.Price,
|
||||
Currency: plan.Currency,
|
||||
Status: "pending",
|
||||
PaymentGateway: gateway.Gateway,
|
||||
PaymentGateway: "waffo",
|
||||
ClientIP: clientIP,
|
||||
UserAgent: userAgent,
|
||||
Notes: notes,
|
||||
@@ -145,23 +148,17 @@ func (s *OrderService) CreateOrder(req dto.CreateOrderRequest, clientIP, userAge
|
||||
}
|
||||
_ = customersvc.AttachProduct(s.db, customer.ID, product.ID)
|
||||
|
||||
// 6. 生成收银台地址 // Logan.Li
|
||||
var checkoutURL string
|
||||
if gateway.Gateway == "waffo" {
|
||||
url, err := payment.BuildCheckoutURL(
|
||||
payment.LoadWaffoConfig(s.db),
|
||||
order.OrderNo,
|
||||
strings.TrimSpace(req.DeviceID),
|
||||
req.CustomerEmail,
|
||||
req.ReturnURL,
|
||||
plan.PlanType,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Waffo 收银台配置错误: %v", err)
|
||||
}
|
||||
checkoutURL = url
|
||||
} else {
|
||||
checkoutURL = fmt.Sprintf("https://checkout.%s.com/?order_no=%s", gateway.Gateway, order.OrderNo)
|
||||
// 6. 生成 Waffo 收银台地址 // Logan.Li
|
||||
checkoutURL, err := payment.BuildCheckoutURL(
|
||||
payment.LoadWaffoConfig(s.db),
|
||||
order.OrderNo,
|
||||
strings.TrimSpace(req.DeviceID),
|
||||
req.CustomerEmail,
|
||||
req.ReturnURL,
|
||||
plan.PlanType,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Waffo 收银台配置错误: %v", err)
|
||||
}
|
||||
|
||||
return &dto.CreateOrderResponse{
|
||||
@@ -170,7 +167,7 @@ func (s *OrderService) CreateOrder(req dto.CreateOrderRequest, clientIP, userAge
|
||||
Amount: plan.Price,
|
||||
Currency: plan.Currency,
|
||||
Status: "pending",
|
||||
Gateway: gateway.Gateway,
|
||||
Gateway: "waffo",
|
||||
ExpiresAt: time.Now().Add(30 * time.Minute).Format("2006-01-02 15:04:05"),
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user