This commit is contained in:
2026-01-16 16:02:18 +08:00
parent 71af961cfb
commit 33dd85fd2f
5 changed files with 45 additions and 26 deletions

View File

@@ -2,7 +2,7 @@ Name: main
Host: 0.0.0.0
Port: 8888
Timeout: 0
DataSource: "qnc:5vg67b3UNHu8@tcp(127.0.0.1:21201)/qnc?charset=utf8mb4&parseTime=True&loc=Local"
DataSource: "zac:5vg67b3UNHu8@tcp(127.0.0.1:21201)/zac?charset=utf8mb4&parseTime=True&loc=Local"
CacheRedis:
- Host: "127.0.0.1:21202"
Pass: "3m3WsgyCKWqz" # Redis 密码,如果未设置则留空
@@ -42,15 +42,15 @@ Alipay:
Wxpay:
AppID: "wx442ee1ac1ee75917"
MchID: "1682635136"
MchCertificateSerialNumber: "5369B8AEEBDCF7AF274510252E6A8C0659C30F61"
MchApiv3Key: "e3ea4cf0765f1e71b01bb387dfcdbc9f"
MchPrivateKeyPath: "etc/merchant/apiclient_key.pem"
MchPublicKeyID: "PUB_KEY_ID_0116826351362025060900382267001601"
MchPublicKeyPath: "etc/merchant/pub_key.pem"
MchPlatformRAS: "1FFEC3F62E31885FAB4C91ADCB8D7557E9488781"
NotifyUrl: "https://6m4685017o.goho.co/api/v1/pay/wechat/callback"
RefundNotifyUrl: "https://6m4685017o.goho.co/api/v1/paywechat/refund_callback"
MchID: "1738205312"
MchCertificateSerialNumber: "6BD3F3D86A470C1ED31476EC5EF68DC16E023F43"
MchApiv3Key: "ZtYxWvUsRqPoNmLkJiHgFeDcBap6gQ3K5"
MchPrivateKeyPath: "etc/merchant/wxpay/apiclient_key.pem"
MchPublicKeyID: "PUB_KEY_ID_0117382053122026011600191612000202"
MchPublicKeyPath: "etc/merchant/wxpay/pub_key.pem"
MchPlatformRAS: ""
NotifyUrl: "https://www.zhenaicha.com/api/v1/pay/wechat/callback"
RefundNotifyUrl: "https://www.zhenaicha.com/api/v1/pay/wechat/refund_callback"
Applepay:
ProductionVerifyURL: "https://api.storekit.itunes.apple.com/inApps/v1/transactions/receipt"
SandboxVerifyURL: "https://api.storekit-sandbox.itunes.apple.com/inApps/v1/transactions/receipt"

View File

@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwamIS5KioHheN2FuePF0
WQyoCKbixwybUZCJCb2rgEgp0slmCnpneLhVwejXYTJT6t2W6683Dj70gfs+g5+P
AjxA7UrBIN/IJalNz1m95NSNzg3VnK56p7x+PJpQrfwAOmEdqdxj9IS3wVYMFQnu
oCA2K2hnhKdEbaWI6iZM2wweGLeqhVQlhIJXLQJ4/OWVCyZ/fR+g6atuX0Uz6JGX
yY+0Is0sj56Lw8gtGNjKoFkEFy/p/eB+C0Rg7WCsZICuB1UZuAZEpS0L55qi9f33
s3vdWJHnWj5FKKBLTW1qtUA7uU24uk9aJaKGlWKBUC26QQpTbh2pVEEQa6ZxghDO
1QIDAQAB
-----END PUBLIC KEY-----

View File

@@ -138,10 +138,20 @@ func newWechatPayServiceWithWxPayPubKey(c config.Config, userAuthModel model.Use
// 注册证书下载器,用于下载平台证书(回调验签需要)
// 注意:使用公钥方式时,需要手动注册证书下载器才能下载平台证书
// 由于已配置公钥文件,证书下载改为可选,不阻塞初始化
err = downloader.MgrInstance().RegisterDownloaderWithClient(context.Background(), client, mchID, mchAPIv3Key)
if err != nil {
logx.Errorf("注册证书下载器失败: %v", err)
panic(fmt.Sprintf("初始化失败,服务停止: %v", err))
// 检查是否是404错误可能是配置问题
if apiErr, ok := err.(*core.APIError); ok && apiErr.StatusCode == 404 {
logx.Infof("[警告] 注册证书下载器失败(404): 可能是商户号(%s)、证书序列号或API密钥配置错误或网络问题。错误详情: %v", mchID, err)
logx.Infof("[提示] 如果已正确配置公钥文件(%s),可以继续使用,证书下载失败不影响支付功能", mchPublicKeyPath)
} else {
logx.Infof("[警告] 注册证书下载器失败(非致命错误,将使用配置的公钥进行验签): %v", err)
}
// 不阻塞初始化,因为已经配置了公钥文件,可以直接用于验签
// 如果后续需要下载平台证书,可以在回调处理时重试
} else {
logx.Infof("证书下载器注册成功")
}
// 初始化 notify.Handler