From 0948494b1c65ea044df743a433e17d163982b4de Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 22 May 2026 14:13:46 +0800 Subject: [PATCH] =?UTF-8?q?task:=20=E4=BF=AE=E5=A4=8D=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=AE=9DC=E7=AB=AF=E5=85=A5=E5=8F=A3=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除不存在的 alipay.CalcExpireAt 调用,改为按 cfg.AliPayExpireMinutes(默认 30 分钟) 内联计算 expireAt;将所有 BuildWapPayURL 调用从 5 参数改为 4 参数(移除 returnURL)。 修复范围:getOrBuildAlipayPaymentLink、createAlipayForceRechargeOrder、createAlipayRecharge。 Co-Authored-By: Claude Sonnet 4.6 --- internal/handler/app/client_wallet.go | 8 ++++++-- internal/service/client_order/service.go | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/internal/handler/app/client_wallet.go b/internal/handler/app/client_wallet.go index 37b418a..f9949b3 100644 --- a/internal/handler/app/client_wallet.go +++ b/internal/handler/app/client_wallet.go @@ -386,7 +386,11 @@ func (h *ClientWalletHandler) createAlipayRecharge( ) error { rechargeNo := generateClientRechargeNo() paymentNo := generateClientPaymentNo() - expireAt := alipay.CalcExpireAt(config) + expireMinutes := config.AliPayExpireMinutes + if expireMinutes <= 0 { + expireMinutes = 30 + } + expireAt := time.Now().Add(time.Duration(expireMinutes) * time.Minute) rechargeOrder := &model.RechargeOrder{ RechargeOrderNo: rechargeNo, @@ -423,7 +427,7 @@ func (h *ClientWalletHandler) createAlipayRecharge( return err } - wapURL, err := alipay.BuildWapPayURL(resolved.SkipPermissionCtx, config, payment, "资产钱包充值", config.AliReturnURL) + wapURL, err := alipay.BuildWapPayURL(resolved.SkipPermissionCtx, config, payment, "资产钱包充值") if err != nil { if updateErr := h.paymentStore.UpdateStatus(resolved.SkipPermissionCtx, payment.ID, model.PaymentRecordStatusFailed); updateErr != nil { h.logger.Warn("标记支付宝支付单 failed 失败", diff --git a/internal/service/client_order/service.go b/internal/service/client_order/service.go index 4d35d3c..d53264d 100644 --- a/internal/service/client_order/service.go +++ b/internal/service/client_order/service.go @@ -878,7 +878,11 @@ func (s *Service) getOrBuildAlipayPaymentLink( ) } } - expireAt := alipay.CalcExpireAt(activeConfig) + expireMinutes := activeConfig.AliPayExpireMinutes + if expireMinutes <= 0 { + expireMinutes = 30 + } + expireAt := time.Now().Add(time.Duration(expireMinutes) * time.Minute) newPayment := &model.Payment{ PaymentNo: generateClientPaymentNo(), OrderID: orderID, @@ -903,7 +907,7 @@ func (s *Service) getOrBuildAlipayPaymentLink( ) } - wapURL, err := alipay.BuildWapPayURL(ctx, activeConfig, payment, subject, activeConfig.AliReturnURL) + wapURL, err := alipay.BuildWapPayURL(ctx, activeConfig, payment, subject) if err != nil { // 新建的 payment 生成链接失败,标记 failed if existing == nil || payment.ID != existing.ID { @@ -982,7 +986,11 @@ func (s *Service) createAlipayForceRechargeOrder( PaymentConfigID: &activeConfig.ID, } - expireAt := alipay.CalcExpireAt(activeConfig) + expireMinutesForce := activeConfig.AliPayExpireMinutes + if expireMinutesForce <= 0 { + expireMinutesForce = 30 + } + expireAt := time.Now().Add(time.Duration(expireMinutesForce) * time.Minute) paymentNo := generateClientPaymentNo() payment := &model.Payment{ PaymentNo: paymentNo, @@ -1005,7 +1013,7 @@ func (s *Service) createAlipayForceRechargeOrder( return nil, err } - wapURL, err := alipay.BuildWapPayURL(ctx, activeConfig, payment, "余额充值", activeConfig.AliReturnURL) + wapURL, err := alipay.BuildWapPayURL(ctx, activeConfig, payment, "余额充值") if err != nil { if updateErr := s.paymentStore.UpdateStatus(ctx, payment.ID, model.PaymentRecordStatusFailed); updateErr != nil { s.logger.Warn("标记支付宝支付单 failed 失败",