优化结构

This commit is contained in:
Yvan
2026-08-22 15:53:14 +08:00
parent ca52de5db0
commit 491ed21d48
72 changed files with 746 additions and 695 deletions
+11 -11
View File
@@ -11,7 +11,7 @@ import (
"errors"
"fmt"
"io"
"kra/internal/biz/system"
bizpayment "kra/internal/biz/payment"
"net/http"
"strings"
"sync"
@@ -120,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 *system.PaymentRequest, c map[string]any) (*system.PaymentResult, error) {
func (a *allinpayAdapter) Create(ctx context.Context, req *bizpayment.PaymentRequest, c map[string]any) (*bizpayment.PaymentResult, error) {
if req == nil {
return nil, errors.New("通联支付下单请求为空")
}
@@ -158,7 +158,7 @@ func (a *allinpayAdapter) Create(ctx context.Context, req *system.PaymentRequest
if returnedTradeNo := strings.TrimSpace(rsp.Reqsn); returnedTradeNo != "" && returnedTradeNo != strings.TrimSpace(req.TradeNo) {
return nil, errors.New("通联支付扫码响应的 reqsn 不匹配")
}
return &system.PaymentResult{Provider: system.PaymentAllinPay, Status: normalizeAllinState(rsp.TrxStatus), TradeNo: req.TradeNo, ProviderTradeNo: strings.TrimSpace(rsp.Trxid), QueryID: queryID, Payload: mustJSON(rsp)}, nil
return &bizpayment.PaymentResult{Provider: bizpayment.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 {
@@ -175,7 +175,7 @@ func (a *allinpayAdapter) Create(ctx context.Context, req *system.PaymentRequest
if returnedTradeNo := strings.TrimSpace(rsp.ReqSn); returnedTradeNo != "" && returnedTradeNo != strings.TrimSpace(req.TradeNo) {
return nil, errors.New("通联支付 Native 响应的 reqsn 不匹配")
}
return &system.PaymentResult{Provider: system.PaymentAllinPay, Status: "created", TradeNo: req.TradeNo, Payload: mustJSON(rsp)}, nil
return &bizpayment.PaymentResult{Provider: bizpayment.PaymentAllinPay, Status: "created", TradeNo: req.TradeNo, Payload: mustJSON(rsp)}, nil
}
payType := firstAny(req.Extra, "paytype", "pay_type")
if payType == "" {
@@ -199,7 +199,7 @@ func (a *allinpayAdapter) Create(ctx context.Context, req *system.PaymentRequest
if err != nil {
return nil, err
}
return &system.PaymentResult{Provider: system.PaymentAllinPay, Status: "created", TradeNo: req.TradeNo, ProviderTradeNo: strings.TrimSpace(rsp.Trxid), QueryID: queryID, Payload: mustJSON(rsp)}, nil
return &bizpayment.PaymentResult{Provider: bizpayment.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) {
@@ -220,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) (*system.PaymentResult, error) {
func (a *allinpayAdapter) Query(ctx context.Context, tradeNo string, c map[string]any) (*bizpayment.PaymentResult, error) {
orderType, err := allinpayOrderType(c)
if err != nil {
return nil, err
@@ -247,7 +247,7 @@ func (a *allinpayAdapter) Query(ctx context.Context, tradeNo string, c map[strin
if rsp == nil {
return nil, errors.New("通联支付查单响应为空")
}
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)}
result := &bizpayment.PaymentResult{Provider: bizpayment.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")
@@ -300,7 +300,7 @@ func allinpayCreateQueryID(orderType, transactionID string) (string, error) {
return "", nil
}
func (a *allinpayAdapter) Refund(ctx context.Context, req *system.PaymentRefundRequest, c map[string]any) (*system.PaymentResult, error) {
func (a *allinpayAdapter) Refund(ctx context.Context, req *bizpayment.PaymentRefundRequest, c map[string]any) (*bizpayment.PaymentResult, error) {
if req == nil {
return nil, errors.New("通联支付退款请求为空")
}
@@ -345,7 +345,7 @@ func (a *allinpayAdapter) Refund(ctx context.Context, req *system.PaymentRefundR
return allinpayRefundResult(&effective, rsp, firstAny(c, "currency"))
}
func allinpayRefundResult(req *system.PaymentRefundRequest, rsp *allinpay.RefundRsp, currency string) (*system.PaymentResult, error) {
func allinpayRefundResult(req *bizpayment.PaymentRefundRequest, rsp *allinpay.RefundRsp, currency string) (*bizpayment.PaymentResult, error) {
if rsp == nil {
return nil, errors.New("通联支付退款响应为空")
}
@@ -368,9 +368,9 @@ func allinpayRefundResult(req *system.PaymentRefundRequest, rsp *allinpay.Refund
if refundAmount != req.Amount {
return nil, errors.New("通联支付退款响应金额不匹配")
}
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
return &bizpayment.PaymentResult{Provider: bizpayment.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, _ *system.PaymentCallback, _ map[string]any) (*system.PaymentResult, error) {
func (a *allinpayAdapter) Callback(_ context.Context, _ *bizpayment.PaymentCallback, _ map[string]any) (*bizpayment.PaymentResult, error) {
return nil, errors.New("通联支付回调没有可复用的 GoPay 验签器,请改用主动查单")
}