优化结构
This commit is contained in:
@@ -82,7 +82,7 @@ func (a *alipayAdapter) Create(ctx context.Context, req *bizpayment.PaymentReque
|
||||
case "10003":
|
||||
status = "pending"
|
||||
default:
|
||||
return nil, fmt.Errorf("支付宝付款码支付失败: %s", firstNonEmptyAlipay(response.SubMsg, response.Msg, response.SubCode, response.Code))
|
||||
return nil, fmt.Errorf("支付宝付款码支付失败: %s", firstNonEmpty(response.SubMsg, response.Msg, response.SubCode, response.Code))
|
||||
}
|
||||
if strings.TrimSpace(response.OutTradeNo) == "" {
|
||||
return nil, errors.New("支付宝付款码支付响应缺少 out_trade_no")
|
||||
@@ -125,7 +125,7 @@ func (a *alipayAdapter) Create(ctx context.Context, req *bizpayment.PaymentReque
|
||||
}
|
||||
return &bizpayment.PaymentResult{
|
||||
Provider: bizpayment.PaymentAlipay, Status: "created", TradeNo: req.TradeNo,
|
||||
Payload: mustMarshalAlipayPayload(map[string]string{"order_string": orderString}),
|
||||
Payload: mustJSON(map[string]string{"order_string": orderString}),
|
||||
}, nil
|
||||
case "alipay.trade.page.pay":
|
||||
payURL, callErr := sdk.client.TradePagePay(ctx, bm)
|
||||
@@ -141,7 +141,7 @@ func (a *alipayAdapter) Create(ctx context.Context, req *bizpayment.PaymentReque
|
||||
}
|
||||
return &bizpayment.PaymentResult{
|
||||
Provider: bizpayment.PaymentAlipay, Status: "created", TradeNo: req.TradeNo,
|
||||
Payload: mustMarshalAlipayPayload(map[string]string{"pay_url": payURL}),
|
||||
Payload: mustJSON(map[string]string{"pay_url": payURL}),
|
||||
}, nil
|
||||
case "alipay.trade.wap.pay":
|
||||
payURL, callErr := sdk.client.TradeWapPay(ctx, bm)
|
||||
@@ -157,7 +157,7 @@ func (a *alipayAdapter) Create(ctx context.Context, req *bizpayment.PaymentReque
|
||||
}
|
||||
return &bizpayment.PaymentResult{
|
||||
Provider: bizpayment.PaymentAlipay, Status: "created", TradeNo: req.TradeNo,
|
||||
Payload: mustMarshalAlipayPayload(map[string]string{"pay_url": payURL}),
|
||||
Payload: mustJSON(map[string]string{"pay_url": payURL}),
|
||||
}, nil
|
||||
default:
|
||||
rsp, callErr := sdk.client.TradeCreate(ctx, bm)
|
||||
@@ -214,7 +214,7 @@ func (a *alipayAdapter) Query(ctx context.Context, tradeNo string, c map[string]
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("解析支付宝订单金额: %w", err)
|
||||
}
|
||||
result.Currency = strings.ToUpper(firstNonEmptyAlipay(response.TransCurrency, response.PayCurrency))
|
||||
result.Currency = strings.ToUpper(firstNonEmpty(response.TransCurrency, response.PayCurrency))
|
||||
if result.Currency == "" {
|
||||
result.Currency = "CNY"
|
||||
}
|
||||
@@ -383,7 +383,7 @@ func (c *alipayClient) payload(fallback any) []byte {
|
||||
if c.response.Len() > 0 {
|
||||
return append([]byte(nil), c.response.Bytes()...)
|
||||
}
|
||||
return mustMarshalAlipayPayload(fallback)
|
||||
return mustJSON(fallback)
|
||||
}
|
||||
|
||||
func (c *alipayClient) rewriteGeneratedURL(value string) (string, error) {
|
||||
@@ -466,20 +466,6 @@ func alipayResponseValues(value any) (map[string]any, error) {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func mustMarshalAlipayPayload(value any) []byte {
|
||||
raw, _ := json.Marshal(value)
|
||||
return raw
|
||||
}
|
||||
|
||||
func firstNonEmptyAlipay(values ...string) string {
|
||||
for _, value := range values {
|
||||
if value = strings.TrimSpace(value); value != "" {
|
||||
return value
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func populateAlipayBreakdown(result *bizpayment.PaymentResult, response map[string]any) error {
|
||||
if result == nil || result.Status != "success" {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user