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:
@@ -96,6 +96,11 @@ func NewPaymentAppFromConfig(wechatConfig *model.WechatConfig, appID string, cac
|
||||
SerialNo: wechatConfig.WxSerialNo,
|
||||
Cache: cache,
|
||||
NotifyURL: wechatConfig.WxNotifyURL,
|
||||
// 禁止 PowerWeChat SDK 在当前目录创建 wechat/ 日志文件夹
|
||||
// 容器内工作目录通常无写权限,会导致 "mkdir wechat: permission denied"
|
||||
Log: payment.Log{
|
||||
Stdout: true,
|
||||
},
|
||||
}
|
||||
|
||||
app, err := payment.NewPayment(userConfig)
|
||||
@@ -111,6 +116,22 @@ func NewPaymentAppFromConfig(wechatConfig *model.WechatConfig, appID string, cac
|
||||
return app, nil
|
||||
}
|
||||
|
||||
// NewPaymentV2ServiceFromConfig 从数据库配置创建微信支付 v2 服务实例
|
||||
// v2 仅需 APIv2Key,不要求证书序列号和 v3 密钥
|
||||
func NewPaymentV2ServiceFromConfig(wechatConfig *model.WechatConfig, appID string, logger *zap.Logger) (*PaymentV2Service, error) {
|
||||
if wechatConfig == nil {
|
||||
return nil, fmt.Errorf("微信配置不能为空")
|
||||
}
|
||||
if appID == "" {
|
||||
return nil, fmt.Errorf("appID 不能为空")
|
||||
}
|
||||
if wechatConfig.WxMchID == "" || wechatConfig.WxAPIV2Key == "" {
|
||||
return nil, fmt.Errorf("微信支付 v2 配置不完整:缺少 wx_mch_id 或 wx_api_v2_key")
|
||||
}
|
||||
|
||||
return NewPaymentV2Service(appID, wechatConfig.WxMchID, wechatConfig.WxAPIV2Key, wechatConfig.WxNotifyURL, logger), nil
|
||||
}
|
||||
|
||||
func writeWechatPemTempFile(pattern, content string) (string, error) {
|
||||
if content == "" {
|
||||
return "", fmt.Errorf("证书内容不能为空")
|
||||
|
||||
Reference in New Issue
Block a user