优化结构

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
+19 -19
View File
@@ -8,7 +8,7 @@ import (
"encoding/pem"
"errors"
"fmt"
"kra/internal/biz/system"
bizpayment "kra/internal/biz/payment"
"net/http"
"net/url"
"strings"
@@ -20,7 +20,7 @@ import (
type wechatV3Adapter struct{}
func (a *wechatV3Adapter) Create(ctx context.Context, req *system.PaymentRequest, c map[string]any) (*system.PaymentResult, error) {
func (a *wechatV3Adapter) Create(ctx context.Context, req *bizpayment.PaymentRequest, c map[string]any) (*bizpayment.PaymentResult, error) {
if req == nil {
return nil, errors.New("微信支付 v3 下单请求为空")
}
@@ -123,7 +123,7 @@ func normalizeWechatV3TradeType(value string) string {
return strings.NewReplacer(".", "", "-", "_", " ", "_").Replace(strings.ToLower(strings.TrimSpace(value)))
}
func wechatV3CodePayResult(tradeNo string, rsp *gopayWechatV3.CodePayRsp) (*system.PaymentResult, error) {
func wechatV3CodePayResult(tradeNo string, rsp *gopayWechatV3.CodePayRsp) (*bizpayment.PaymentResult, error) {
if rsp == nil {
return nil, errors.New("微信支付 v3 付款码响应为空")
}
@@ -139,8 +139,8 @@ func wechatV3CodePayResult(tradeNo string, rsp *gopayWechatV3.CodePayRsp) (*syst
} else if returnedTradeNo != tradeNo {
return nil, errors.New("微信支付 v3 付款码响应的商户订单号不匹配")
}
result := &system.PaymentResult{
Provider: system.PaymentWechatV3,
result := &bizpayment.PaymentResult{
Provider: bizpayment.PaymentWechatV3,
Status: normalizePaymentStatus(order.TradeState, "pending"),
TradeNo: tradeNo,
ProviderTradeNo: strings.TrimSpace(order.TransactionId),
@@ -179,7 +179,7 @@ func wechatV3CodePayResult(tradeNo string, rsp *gopayWechatV3.CodePayRsp) (*syst
return result, nil
}
func (a *wechatV3Adapter) Query(ctx context.Context, tradeNo string, c map[string]any) (*system.PaymentResult, error) {
func (a *wechatV3Adapter) Query(ctx context.Context, tradeNo string, c map[string]any) (*bizpayment.PaymentResult, error) {
tradeNo = strings.TrimSpace(tradeNo)
if tradeNo == "" {
return nil, errors.New("微信支付 v3 查单缺少 out_trade_no")
@@ -204,8 +204,8 @@ func (a *wechatV3Adapter) Query(ctx context.Context, tradeNo string, c map[strin
order := rsp.Response
payload := wechatV3ResponsePayload(rsp.SignInfo, order)
result := &system.PaymentResult{
Provider: system.PaymentWechatV3,
result := &bizpayment.PaymentResult{
Provider: bizpayment.PaymentWechatV3,
Status: normalizePaymentStatus(order.TradeState, "pending"),
TradeNo: order.OutTradeNo,
ProviderTradeNo: order.TransactionId,
@@ -236,7 +236,7 @@ func (a *wechatV3Adapter) Query(ctx context.Context, tradeNo string, c map[strin
return result, nil
}
func (a *wechatV3Adapter) Refund(ctx context.Context, req *system.PaymentRefundRequest, c map[string]any) (*system.PaymentResult, error) {
func (a *wechatV3Adapter) Refund(ctx context.Context, req *bizpayment.PaymentRefundRequest, c map[string]any) (*bizpayment.PaymentResult, error) {
if req == nil {
return nil, errors.New("微信支付 v3 退款请求为空")
}
@@ -279,8 +279,8 @@ func (a *wechatV3Adapter) Refund(ctx context.Context, req *system.PaymentRefundR
if err != nil {
return nil, err
}
result := &system.PaymentResult{
Provider: system.PaymentWechatV3,
result := &bizpayment.PaymentResult{
Provider: bizpayment.PaymentWechatV3,
Status: normalizeRefundState(refund.Status),
TradeNo: tradeNo,
ProviderTradeNo: refundID,
@@ -336,7 +336,7 @@ func validateWechatV3RefundIdentity(refund *gopayWechatV3.RefundOrderResponse, t
return refundID, nil
}
func (a *wechatV3Adapter) Callback(ctx context.Context, callback *system.PaymentCallback, c map[string]any) (*system.PaymentResult, error) {
func (a *wechatV3Adapter) Callback(ctx context.Context, callback *bizpayment.PaymentCallback, c map[string]any) (*bizpayment.PaymentResult, error) {
if callback == nil {
return nil, errors.New("微信支付 v3 回调为空")
}
@@ -395,8 +395,8 @@ func (a *wechatV3Adapter) Callback(ctx context.Context, callback *system.Payment
return nil, errors.New("微信支付 v3 回调 appid 不匹配")
}
plain, _ := json.Marshal(pay)
return &system.PaymentResult{
Provider: system.PaymentWechatV3,
return &bizpayment.PaymentResult{
Provider: bizpayment.PaymentWechatV3,
Status: status,
TradeNo: pay.OutTradeNo,
ProviderTradeNo: pay.TransactionId,
@@ -490,22 +490,22 @@ func wechatV3PlatformSerial(certificate string) (string, error) {
return strings.ToUpper(cert.SerialNumber.Text(16)), nil
}
func wechatV3CreateResult(tradeNo string, code int, signInfo *gopayWechatV3.SignInfo, response any, errResponse gopayWechatV3.ErrResponse, rawError string) (*system.PaymentResult, error) {
func wechatV3CreateResult(tradeNo string, code int, signInfo *gopayWechatV3.SignInfo, response any, errResponse gopayWechatV3.ErrResponse, rawError string) (*bizpayment.PaymentResult, error) {
if code != gopayWechatV3.Success {
return nil, wechatV3APIError("下单", code, errResponse, rawError)
}
if response == nil {
return nil, errors.New("微信支付 v3 下单响应缺少预支付信息")
}
return &system.PaymentResult{
Provider: system.PaymentWechatV3,
return &bizpayment.PaymentResult{
Provider: bizpayment.PaymentWechatV3,
Status: "created",
TradeNo: tradeNo,
Payload: wechatV3ResponsePayload(signInfo, response),
}, nil
}
func wechatV3PrepayCreateResult(client *gopayWechatV3.ClientV3, appID, tradeType, tradeNo string, rsp *gopayWechatV3.PrepayRsp) (*system.PaymentResult, error) {
func wechatV3PrepayCreateResult(client *gopayWechatV3.ClientV3, appID, tradeType, tradeNo string, rsp *gopayWechatV3.PrepayRsp) (*bizpayment.PaymentResult, error) {
if rsp == nil {
return nil, errors.New("微信支付 v3 下单响应为空")
}
@@ -552,7 +552,7 @@ func wechatV3ResponsePayload(signInfo *gopayWechatV3.SignInfo, response any) []b
return payload
}
func populateWechatV3Breakdown(result *system.PaymentResult, object map[string]any) error {
func populateWechatV3Breakdown(result *bizpayment.PaymentResult, object map[string]any) error {
if result == nil || result.Status != "success" {
return nil
}