From c419eb3d4a3cc5016f356d3f380840f064cbd383 Mon Sep 17 00:00:00 2001 From: Admin Date: Tue, 14 Jul 2026 09:17:02 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=80=9A=E8=BF=87=20code=20=E6=88=96=20?= =?UTF-8?q?type=20=E6=9F=A5=E6=89=BE=E6=94=AF=E4=BB=98=E9=80=9A=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/api/handlers/payment.go | 30 +++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/backend/internal/api/handlers/payment.go b/backend/internal/api/handlers/payment.go index 8bfd931..667a99b 100644 --- a/backend/internal/api/handlers/payment.go +++ b/backend/internal/api/handlers/payment.go @@ -73,26 +73,34 @@ func (h *PaymentHandler) CreatePayment(c *gin.Context) { } // 根据订单支付方式获取对应的支付通道 - paymentType := order.PaymentMethod - if paymentType == "" { - paymentType = "bepusdt" // 默认使用 bepusdt + paymentMethod := order.PaymentMethod + if paymentMethod == "" { + paymentMethod = "usdt" // 默认 } - // 如果是 hashpay,调用 HashPay 支付 - if paymentType == "hashpay" { - h.CreateHashPayPayment(c) - return - } - - // BepUsdt 支付流程 + // 先通过 code 查找支付通道 var channels []models.PaymentChannel - utils.DB.Where("is_enabled = ? AND type = ?", true, paymentType).Order("sort_order ASC").Find(&channels) + utils.DB.Where("is_enabled = ? AND code = ?", true, paymentMethod).Order("sort_order ASC").Find(&channels) + + // 如果没找到,尝试通过 type 查找 + if len(channels) == 0 { + utils.DB.Where("is_enabled = ? AND type = ?", true, paymentMethod).Order("sort_order ASC").Find(&channels) + } + if len(channels) == 0 { c.JSON(http.StatusBadRequest, gin.H{"error": "No available payment channel"}) return } channel := channels[0] + + // 如果是 hashpay,调用 HashPay 支付 + if channel.Type == "hashpay" { + h.CreateHashPayPayment(c) + return + } + + // BepUsdt 支付流程 config := parseChannelConfig(channel.Config) apiURL := strings.TrimSuffix(config["bepusdt_api_url"], "/")