fix: 修复微信支付容器内 mkdir 权限错误,新增 wechat_v2 支付渠道
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m11s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m11s
- NewPaymentAppFromConfig 加 Log.Stdout=true,禁止 PowerWeChat SDK 在容器 工作目录创建 wechat/ 日志文件夹(Permission denied 根因) - 新增 ProviderTypeWechatV2 = wechat_v2 常量,与 wechat(v3) 独立区分 - 新增 PaymentV2Service:直连统一下单 v2 接口,XML + MD5 签名 - newPaymentProvider 按 ProviderType 分支路由到对应版本
This commit is contained in:
@@ -44,6 +44,20 @@ func (w *wechatPaymentProvider) CreateJSAPIPayment(ctx context.Context, orderNo,
|
||||
return extractPaymentResult(result.PayConfig), nil
|
||||
}
|
||||
|
||||
// wechatV2PaymentProvider 微信支付 v2 适配器。
|
||||
type wechatV2PaymentProvider struct {
|
||||
paymentService *wechat.PaymentV2Service
|
||||
}
|
||||
|
||||
// CreateJSAPIPayment 创建微信 v2 JSAPI 预下单。
|
||||
func (w *wechatV2PaymentProvider) CreateJSAPIPayment(ctx context.Context, orderNo, description, openID string, amount int) (*PaymentResult, error) {
|
||||
result, err := w.paymentService.CreateJSAPIOrder(ctx, orderNo, description, openID, amount)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return extractPaymentResult(result.PayConfig), nil
|
||||
}
|
||||
|
||||
// fuiouPaymentProvider 富友支付适配器。
|
||||
type fuiouPaymentProvider struct {
|
||||
client *fuiou.Client
|
||||
@@ -92,6 +106,12 @@ func (s *Service) newPaymentProvider(config *model.WechatConfig, appID, appType
|
||||
return nil, errors.Wrap(errors.CodeFuiouPayFailed, err, "创建富友客户端失败")
|
||||
}
|
||||
return &fuiouPaymentProvider{client: client, appID: appID, tradeType: tradeType}, nil
|
||||
case model.ProviderTypeWechatV2:
|
||||
svc, err := wechat.NewPaymentV2ServiceFromConfig(config, appID, s.logger)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(errors.CodeWechatPayFailed, err, "创建微信支付 v2 应用失败")
|
||||
}
|
||||
return &wechatV2PaymentProvider{paymentService: svc}, nil
|
||||
default:
|
||||
cache := wechat.NewRedisCache(s.redis)
|
||||
paymentApp, err := wechat.NewPaymentAppFromConfig(config, appID, cache, s.logger)
|
||||
|
||||
Reference in New Issue
Block a user