diff --git a/go.mod b/go.mod index c402488..48ce59d 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,6 @@ require ( github.com/redis/go-redis/v9 v9.8.0 github.com/shopspring/decimal v1.4.0 github.com/smartwalle/alipay/v3 v3.2.25 - github.com/valyala/fasthttp v1.59.0 github.com/wechatpay-apiv3/wechatpay-go v0.2.20 golang.org/x/crypto v0.36.0 gorm.io/driver/postgres v1.5.11 @@ -71,6 +70,7 @@ require ( github.com/spf13/cast v1.7.0 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasthttp v1.59.0 // indirect golang.org/x/mod v0.24.0 // indirect golang.org/x/net v0.37.0 // indirect golang.org/x/sync v0.12.0 // indirect diff --git a/web/handlers/trade.go b/web/handlers/trade.go index 72a3354..dc47401 100644 --- a/web/handlers/trade.go +++ b/web/handlers/trade.go @@ -1,7 +1,6 @@ package handlers import ( - "fmt" "log/slog" "platform/web/auth" "platform/web/core" @@ -121,25 +120,17 @@ func TradeCancelByTask(c *fiber.Ctx) error { return err } - // 解析请求参数 + // 取消交易 req := new(TradeCheckReq) if err := c.BodyParser(req); err != nil { return err } // 检查订单状态 - err = s.Trade.ConfirmTradeCanceled(&s.CheckTradeData{ - TradeNo: req.TradeNo, - Method: req.Method, - }) + err = s.Trade.CancelTrade(req.TradeNo, req.Method, time.Now()) if err != nil { - slog.Debug(fmt.Sprintf("订单无需取消:%s", err.Error())) - } else { - err = s.Trade.CancelTrade(req.TradeNo, req.Method, time.Now()) - if err != nil { - slog.Warn("取消交易失败", "trade_no", req.TradeNo, "method", req.Method, "error", err) - } + return err } - return c.SendStatus(fiber.StatusNoContent) + return nil } diff --git a/web/services/trade.go b/web/services/trade.go index 5f0489c..9efc7a1 100644 --- a/web/services/trade.go +++ b/web/services/trade.go @@ -378,15 +378,12 @@ func (s *tradeService) CancelTrade(tradeNo string, method trade2.Method, now tim } case trade2.MethodSft, trade2.MethodSftAlipay, trade2.MethodSftWeChat: - resp, err := g.SFTPay.OrderClose(&g.OrderCloseReq{ + _, err := g.SFTPay.OrderClose(&g.OrderCloseReq{ MchOrderNo: &tradeNo, }) if err != nil { - return err - } - if resp.State != "TRADE_CLOSE" { - slog.Warn("商福通交易取消失败", "state", resp.State) - return errors.New("交易取消失败") + slog.Debug(fmt.Sprintf("订单无需关闭:%s", err.Error())) + return nil } default: