修复支付以及订单相关的问题
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 1s

This commit is contained in:
2026-05-08 10:15:03 +08:00
parent 348cb4e670
commit 7c85a8cf29
6 changed files with 204 additions and 12 deletions

View File

@@ -298,6 +298,7 @@ func (h *ClientWalletHandler) CreateRecharge(c *fiber.Ctx) error {
}
rechargeNo := generateClientRechargeNo()
paymentNo := generateClientPaymentNo()
// 先初始化微信支付实例并创建预支付订单,确认支付通道可用
// 避免先写入充值记录后支付初始化失败,导致产生孤儿记录
@@ -305,7 +306,7 @@ func (h *ClientWalletHandler) CreateRecharge(c *fiber.Ctx) error {
resolved.SkipPermissionCtx,
config,
appID,
rechargeNo,
paymentNo,
"资产钱包充值",
openID,
int(req.Amount),
@@ -334,7 +335,7 @@ func (h *ClientWalletHandler) CreateRecharge(c *fiber.Ctx) error {
}
payment := &model.Payment{
PaymentNo: rechargeNo,
PaymentNo: paymentNo,
OrderID: rechargeOrder.ID,
OrderType: model.PaymentOrderTypeRecharge,
PaymentMethod: model.PaymentByWechat,
@@ -639,6 +640,10 @@ func generateClientRechargeNo() string {
return fmt.Sprintf("%s%s%06d", constants.AssetRechargeOrderPrefix, timestamp, randomNum)
}
func generateClientPaymentNo() string {
return fmt.Sprintf("PAY%d%06d", time.Now().UnixNano()/1e6, rand.Intn(1000000))
}
func buildClientRechargePayConfig(appID string, result *wechat.JSAPIPayResult) dto.ClientRechargePayConfig {
resp := dto.ClientRechargePayConfig{AppID: appID}
if result == nil || result.PayConfig == nil {