fix: 修复强充场景幂等 key 在微信支付失败时未被清除的问题
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m20s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m20s
将 markClientPurchaseCreated 移至 CreateJSAPIPayment 成功之后调用, 确保支付失败时 defer 能可靠地删除幂等 key,避免用户无法重新下单。 原顺序:创建充值单 → markClientPurchaseCreated → CreateJSAPIPayment 修复后:创建充值单 → CreateJSAPIPayment → markClientPurchaseCreated → *created=true Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -366,13 +366,13 @@ func (s *Service) createForceRechargeOrder(
|
||||
return nil, errors.Wrap(errors.CodeDatabaseError, err, "创建充值记录失败")
|
||||
}
|
||||
|
||||
s.markClientPurchaseCreated(ctx, redisKey, recharge.RechargeNo)
|
||||
|
||||
paymentResult, err := paymentProvider.CreateJSAPIPayment(ctx, recharge.RechargeNo, "余额充值", openID, int(recharge.Amount))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 微信支付创建成功后才标记幂等 key,确保支付失败时 defer 能正确清除 key
|
||||
s.markClientPurchaseCreated(ctx, redisKey, recharge.RechargeNo)
|
||||
*created = true
|
||||
|
||||
return &dto.ClientCreateOrderResponse{
|
||||
|
||||
Reference in New Issue
Block a user