task: 修复支付宝C端入口构建失败

移除不存在的 alipay.CalcExpireAt 调用,改为按 cfg.AliPayExpireMinutes(默认 30 分钟)
内联计算 expireAt;将所有 BuildWapPayURL 调用从 5 参数改为 4 参数(移除 returnURL)。
修复范围:getOrBuildAlipayPaymentLink、createAlipayForceRechargeOrder、createAlipayRecharge。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-22 14:13:46 +08:00
parent b988f99a95
commit 0948494b1c
2 changed files with 18 additions and 6 deletions

View File

@@ -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 失败",

View File

@@ -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 失败",