fix: 通过 code 或 type 查找支付通道
This commit is contained in:
@@ -73,26 +73,34 @@ func (h *PaymentHandler) CreatePayment(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 根据订单支付方式获取对应的支付通道
|
// 根据订单支付方式获取对应的支付通道
|
||||||
paymentType := order.PaymentMethod
|
paymentMethod := order.PaymentMethod
|
||||||
if paymentType == "" {
|
if paymentMethod == "" {
|
||||||
paymentType = "bepusdt" // 默认使用 bepusdt
|
paymentMethod = "usdt" // 默认
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果是 hashpay,调用 HashPay 支付
|
// 先通过 code 查找支付通道
|
||||||
if paymentType == "hashpay" {
|
|
||||||
h.CreateHashPayPayment(c)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// BepUsdt 支付流程
|
|
||||||
var channels []models.PaymentChannel
|
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 {
|
if len(channels) == 0 {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "No available payment channel"})
|
c.JSON(http.StatusBadRequest, gin.H{"error": "No available payment channel"})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
channel := channels[0]
|
channel := channels[0]
|
||||||
|
|
||||||
|
// 如果是 hashpay,调用 HashPay 支付
|
||||||
|
if channel.Type == "hashpay" {
|
||||||
|
h.CreateHashPayPayment(c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// BepUsdt 支付流程
|
||||||
config := parseChannelConfig(channel.Config)
|
config := parseChannelConfig(channel.Config)
|
||||||
|
|
||||||
apiURL := strings.TrimSuffix(config["bepusdt_api_url"], "/")
|
apiURL := strings.TrimSuffix(config["bepusdt_api_url"], "/")
|
||||||
|
|||||||
Reference in New Issue
Block a user