优化结构
This commit is contained in:
@@ -11,12 +11,11 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"kra/internal/biz/system"
|
||||
"net/http"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"kra/internal/biz"
|
||||
|
||||
"github.com/go-pay/crypto/xpem"
|
||||
"github.com/go-pay/crypto/xrsa"
|
||||
"github.com/go-pay/gopay"
|
||||
@@ -121,7 +120,7 @@ func (a *allinpayAdapter) client(c map[string]any) (*allinpay.Client, error) {
|
||||
return client, nil
|
||||
}
|
||||
|
||||
func (a *allinpayAdapter) Create(ctx context.Context, req *biz.PaymentRequest, c map[string]any) (*biz.PaymentResult, error) {
|
||||
func (a *allinpayAdapter) Create(ctx context.Context, req *system.PaymentRequest, c map[string]any) (*system.PaymentResult, error) {
|
||||
if req == nil {
|
||||
return nil, errors.New("通联支付下单请求为空")
|
||||
}
|
||||
@@ -159,7 +158,7 @@ func (a *allinpayAdapter) Create(ctx context.Context, req *biz.PaymentRequest, c
|
||||
if returnedTradeNo := strings.TrimSpace(rsp.Reqsn); returnedTradeNo != "" && returnedTradeNo != strings.TrimSpace(req.TradeNo) {
|
||||
return nil, errors.New("通联支付扫码响应的 reqsn 不匹配")
|
||||
}
|
||||
return &biz.PaymentResult{Provider: biz.PaymentAllinPay, Status: normalizeAllinState(rsp.TrxStatus), TradeNo: req.TradeNo, ProviderTradeNo: strings.TrimSpace(rsp.Trxid), QueryID: queryID, Payload: mustJSON(rsp)}, nil
|
||||
return &system.PaymentResult{Provider: system.PaymentAllinPay, Status: normalizeAllinState(rsp.TrxStatus), TradeNo: req.TradeNo, ProviderTradeNo: strings.TrimSpace(rsp.Trxid), QueryID: queryID, Payload: mustJSON(rsp)}, nil
|
||||
}
|
||||
if method == "native" {
|
||||
if orderType == allinpay.OrderTypeTrxId {
|
||||
@@ -176,7 +175,7 @@ func (a *allinpayAdapter) Create(ctx context.Context, req *biz.PaymentRequest, c
|
||||
if returnedTradeNo := strings.TrimSpace(rsp.ReqSn); returnedTradeNo != "" && returnedTradeNo != strings.TrimSpace(req.TradeNo) {
|
||||
return nil, errors.New("通联支付 Native 响应的 reqsn 不匹配")
|
||||
}
|
||||
return &biz.PaymentResult{Provider: biz.PaymentAllinPay, Status: "created", TradeNo: req.TradeNo, Payload: mustJSON(rsp)}, nil
|
||||
return &system.PaymentResult{Provider: system.PaymentAllinPay, Status: "created", TradeNo: req.TradeNo, Payload: mustJSON(rsp)}, nil
|
||||
}
|
||||
payType := firstAny(req.Extra, "paytype", "pay_type")
|
||||
if payType == "" {
|
||||
@@ -200,7 +199,7 @@ func (a *allinpayAdapter) Create(ctx context.Context, req *biz.PaymentRequest, c
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &biz.PaymentResult{Provider: biz.PaymentAllinPay, Status: "created", TradeNo: req.TradeNo, ProviderTradeNo: strings.TrimSpace(rsp.Trxid), QueryID: queryID, Payload: mustJSON(rsp)}, nil
|
||||
return &system.PaymentResult{Provider: system.PaymentAllinPay, Status: "created", TradeNo: req.TradeNo, ProviderTradeNo: strings.TrimSpace(rsp.Trxid), QueryID: queryID, Payload: mustJSON(rsp)}, nil
|
||||
}
|
||||
|
||||
func allinpayCreateMethod(extra, config map[string]any) (string, error) {
|
||||
@@ -221,7 +220,7 @@ func allinpayCreateMethod(extra, config map[string]any) (string, error) {
|
||||
}
|
||||
}
|
||||
|
||||
func (a *allinpayAdapter) Query(ctx context.Context, tradeNo string, c map[string]any) (*biz.PaymentResult, error) {
|
||||
func (a *allinpayAdapter) Query(ctx context.Context, tradeNo string, c map[string]any) (*system.PaymentResult, error) {
|
||||
orderType, err := allinpayOrderType(c)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -248,7 +247,7 @@ func (a *allinpayAdapter) Query(ctx context.Context, tradeNo string, c map[strin
|
||||
if rsp == nil {
|
||||
return nil, errors.New("通联支付查单响应为空")
|
||||
}
|
||||
result := &biz.PaymentResult{Provider: biz.PaymentAllinPay, Status: normalizeAllinState(rsp.TrxStatus), TradeNo: strings.TrimSpace(rsp.Reqsn), ProviderTradeNo: strings.TrimSpace(rsp.Trxid), Currency: strings.ToUpper(firstAny(c, "currency")), Payload: mustJSON(rsp)}
|
||||
result := &system.PaymentResult{Provider: system.PaymentAllinPay, Status: normalizeAllinState(rsp.TrxStatus), TradeNo: strings.TrimSpace(rsp.Reqsn), ProviderTradeNo: strings.TrimSpace(rsp.Trxid), Currency: strings.ToUpper(firstAny(c, "currency")), Payload: mustJSON(rsp)}
|
||||
if strings.EqualFold(orderType, allinpay.OrderTypeTrxId) {
|
||||
if result.ProviderTradeNo == "" {
|
||||
return nil, errors.New("通联支付查单响应缺少 trxid")
|
||||
@@ -301,7 +300,7 @@ func allinpayCreateQueryID(orderType, transactionID string) (string, error) {
|
||||
return "", nil
|
||||
}
|
||||
|
||||
func (a *allinpayAdapter) Refund(ctx context.Context, req *biz.PaymentRefundRequest, c map[string]any) (*biz.PaymentResult, error) {
|
||||
func (a *allinpayAdapter) Refund(ctx context.Context, req *system.PaymentRefundRequest, c map[string]any) (*system.PaymentResult, error) {
|
||||
if req == nil {
|
||||
return nil, errors.New("通联支付退款请求为空")
|
||||
}
|
||||
@@ -346,7 +345,7 @@ func (a *allinpayAdapter) Refund(ctx context.Context, req *biz.PaymentRefundRequ
|
||||
return allinpayRefundResult(&effective, rsp, firstAny(c, "currency"))
|
||||
}
|
||||
|
||||
func allinpayRefundResult(req *biz.PaymentRefundRequest, rsp *allinpay.RefundRsp, currency string) (*biz.PaymentResult, error) {
|
||||
func allinpayRefundResult(req *system.PaymentRefundRequest, rsp *allinpay.RefundRsp, currency string) (*system.PaymentResult, error) {
|
||||
if rsp == nil {
|
||||
return nil, errors.New("通联支付退款响应为空")
|
||||
}
|
||||
@@ -369,9 +368,9 @@ func allinpayRefundResult(req *biz.PaymentRefundRequest, rsp *allinpay.RefundRsp
|
||||
if refundAmount != req.Amount {
|
||||
return nil, errors.New("通联支付退款响应金额不匹配")
|
||||
}
|
||||
return &biz.PaymentResult{Provider: biz.PaymentAllinPay, Status: normalizeRefundState(rsp.TrxStatus), TradeNo: req.TradeNo, ProviderTradeNo: providerRefundID, Amount: refundAmount, Currency: strings.ToUpper(strings.TrimSpace(currency)), Payload: mustJSON(rsp)}, nil
|
||||
return &system.PaymentResult{Provider: system.PaymentAllinPay, Status: normalizeRefundState(rsp.TrxStatus), TradeNo: req.TradeNo, ProviderTradeNo: providerRefundID, Amount: refundAmount, Currency: strings.ToUpper(strings.TrimSpace(currency)), Payload: mustJSON(rsp)}, nil
|
||||
}
|
||||
|
||||
func (a *allinpayAdapter) Callback(_ context.Context, _ *biz.PaymentCallback, _ map[string]any) (*biz.PaymentResult, error) {
|
||||
func (a *allinpayAdapter) Callback(_ context.Context, _ *system.PaymentCallback, _ map[string]any) (*system.PaymentResult, error) {
|
||||
return nil, errors.New("通联支付回调没有可复用的 GoPay 验签器,请改用主动查单")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user