This commit is contained in:
Mrx
2026-05-11 16:54:43 +08:00
parent b0313b951e
commit 9e12db0cd4
2 changed files with 26 additions and 9 deletions

View File

@@ -316,14 +316,30 @@ func (w *WechatPayService) CreateWechatOrder(ctx context.Context, amount float64
if getUidErr != nil {
return "", getUidErr
}
userAuthModel, findAuthModelErr := w.userAuthModel.FindOneByUserIdAuthType(ctx, userID, model.UserAuthTypeWxh5OpenID)
if findAuthModelErr != nil {
return "", findAuthModelErr
}
logx.Infof("微信h5支付订单userAuthModel: %+v", userAuthModel)
prepayData, err = w.CreateWechatH5Order(ctx, amount, description, outTradeNo, userAuthModel.AuthKey)
if err != nil {
return "", err
// 微信内 H5优先 wxh5_openid与公众号/网页 AppID 一致);若无则尝试 wxmini_openid走小程序 AppID 下单)
h5Auth, h5Err := w.userAuthModel.FindOneByUserIdAuthType(ctx, userID, model.UserAuthTypeWxh5OpenID)
if h5Err == nil {
logx.Infof("微信h5支付订单userAuthModel(wxh5): %+v", h5Auth)
prepayData, err = w.CreateWechatH5Order(ctx, amount, description, outTradeNo, h5Auth.AuthKey)
if err != nil {
return "", err
}
} else if h5Err == model.ErrNotFound {
miniAuth, miniErr := w.userAuthModel.FindOneByUserIdAuthType(ctx, userID, model.UserAuthTypeWxMiniOpenID)
if miniErr != nil {
return "", miniErr
}
logx.WithContext(ctx).Infof(
"[WechatPay] wxh5 无 wxh5_openid使用 wxmini_openid 下单 out_trade_no=%s user_id=%d",
outTradeNo, userID,
)
logx.Infof("微信h5支付订单userAuthModel(wxmini fallback): %+v", miniAuth)
prepayData, err = w.CreateWechatMiniProgramOrder(ctx, amount, description, outTradeNo, miniAuth.AuthKey)
if err != nil {
return "", err
}
} else {
return "", h5Err
}
case model.PlatformApp:
// 如果是 APP 平台,调用 APP 支付订单创建