From c64eb31719610e44ac6967f598652af306ca2448 Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 30 May 2026 20:52:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=AD=A3=E7=A1=AE=E8=8E=B7=E5=8F=96BepU?= =?UTF-8?q?sdt=E9=92=B1=E5=8C=85=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BepUsdt API返回的钱包地址在token字段中,不是address字段 Co-Authored-By: Claude Opus 4.8 --- backend/internal/api/handlers/payment.go | 30 ++---------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/backend/internal/api/handlers/payment.go b/backend/internal/api/handlers/payment.go index 015850e..e80a56c 100644 --- a/backend/internal/api/handlers/payment.go +++ b/backend/internal/api/handlers/payment.go @@ -157,34 +157,8 @@ func (h *PaymentHandler) CreatePayment(c *gin.Context) { token, _ := data["token"].(string) paymentURL, _ := data["payment_url"].(string) - // 尝试多个可能的字段名获取钱包地址 - var walletAddress string - addressFields := []string{"address", "wallet_address", "to_address", "payment_address", "deposit_address", "receiver_address"} - for _, field := range addressFields { - if addr, ok := data[field].(string); ok && addr != "" { - walletAddress = addr - log.Printf("[BepUsdt] found wallet address in field '%s': %s", field, addr) - break - } - } - - // 如果没有直接获取到钱包地址,尝试从payment_url解析 - if walletAddress == "" && paymentURL != "" { - // payment_url格式可能是: usdt:TRC20地址?amount=xxx 或直接是钱包地址 - if strings.HasPrefix(paymentURL, "usdt:") || strings.HasPrefix(paymentURL, "USDT:") { - parts := strings.SplitN(paymentURL, ":", 2) - if len(parts) > 1 { - // 移除查询参数 - addrPart := strings.SplitN(parts[1], "?", 2)[0] - walletAddress = strings.TrimSpace(addrPart) - log.Printf("[BepUsdt] parsed wallet address from payment_url: %s", walletAddress) - } - } else if len(paymentURL) >= 30 && !strings.Contains(paymentURL, "://") { - // 可能直接就是钱包地址 - walletAddress = paymentURL - log.Printf("[BepUsdt] using payment_url as wallet address: %s", walletAddress) - } - } + // 钱包地址在token字段中 + walletAddress := token log.Printf("[BepUsdt] payment data: trade_id=%s, token=%s, payment_url=%s, wallet_address=%s", tradeID, token, paymentURL, walletAddress)