f
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -20,4 +20,5 @@ data/*
|
||||
/tmp/
|
||||
|
||||
/app/api
|
||||
**/__debug_bin*.exe
|
||||
**/__debug_bin*.exe
|
||||
**/api.exe
|
||||
@@ -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 支付订单创建
|
||||
|
||||
Reference in New Issue
Block a user