fix: 修复BepUsdt签名问题
- 将Amount字段改为string类型确保签名和请求格式一致 - 使用格式化的金额字符串进行签名和请求 - 增强钱包地址获取逻辑,支持多个字段名 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -28,7 +28,7 @@ func NewPaymentHandler() *PaymentHandler {
|
|||||||
type BepUsdtCreateRequest struct {
|
type BepUsdtCreateRequest struct {
|
||||||
TradeType string `json:"trade_type,omitempty"`
|
TradeType string `json:"trade_type,omitempty"`
|
||||||
OrderID string `json:"order_id"`
|
OrderID string `json:"order_id"`
|
||||||
Amount float64 `json:"amount"`
|
Amount string `json:"amount"`
|
||||||
NotifyURL string `json:"notify_url"`
|
NotifyURL string `json:"notify_url"`
|
||||||
RedirectURL string `json:"redirect_url,omitempty"`
|
RedirectURL string `json:"redirect_url,omitempty"`
|
||||||
Signature string `json:"signature"`
|
Signature string `json:"signature"`
|
||||||
@@ -90,9 +90,12 @@ func (h *PaymentHandler) CreatePayment(c *gin.Context) {
|
|||||||
notifyURL := fmt.Sprintf("%s/api/payment/bepusdt/notify", baseURL)
|
notifyURL := fmt.Sprintf("%s/api/payment/bepusdt/notify", baseURL)
|
||||||
redirectURL := fmt.Sprintf("%s/orders/%d", baseURL, order.ID)
|
redirectURL := fmt.Sprintf("%s/orders/%d", baseURL, order.ID)
|
||||||
|
|
||||||
|
// 格式化amount,确保签名和请求中的格式一致
|
||||||
|
amountStr := strconv.FormatFloat(order.TotalAmount, 'f', 2, 64)
|
||||||
|
|
||||||
params := map[string]string{
|
params := map[string]string{
|
||||||
"order_id": strconv.Itoa(int(order.ID)),
|
"order_id": strconv.Itoa(int(order.ID)),
|
||||||
"amount": fmt.Sprint(order.TotalAmount),
|
"amount": amountStr,
|
||||||
"notify_url": notifyURL,
|
"notify_url": notifyURL,
|
||||||
"redirect_url": redirectURL,
|
"redirect_url": redirectURL,
|
||||||
}
|
}
|
||||||
@@ -108,7 +111,7 @@ func (h *PaymentHandler) CreatePayment(c *gin.Context) {
|
|||||||
reqBody := BepUsdtCreateRequest{
|
reqBody := BepUsdtCreateRequest{
|
||||||
TradeType: tradeType,
|
TradeType: tradeType,
|
||||||
OrderID: strconv.Itoa(int(order.ID)),
|
OrderID: strconv.Itoa(int(order.ID)),
|
||||||
Amount: order.TotalAmount,
|
Amount: amountStr,
|
||||||
NotifyURL: notifyURL,
|
NotifyURL: notifyURL,
|
||||||
RedirectURL: redirectURL,
|
RedirectURL: redirectURL,
|
||||||
Signature: signature,
|
Signature: signature,
|
||||||
|
|||||||
Reference in New Issue
Block a user