From 33dd85fd2fec14c3d1ad9cbf6dbd434bbac2425d Mon Sep 17 00:00:00 2001 From: 18278715334 <18278715334@163.com> Date: Fri, 16 Jan 2026 16:02:18 +0800 Subject: [PATCH] -f --- ...40e2-89d3-34b94792428d_20260116_155211.pdf | Bin 0 -> 67579 bytes app/main/api/etc/main.dev.yaml | 20 ++++++------- app/main/api/etc/merchant/wxpay/pub_key.pem | 9 ++++++ .../api/internal/service/wechatpayService.go | 14 +++++++-- docker-compose.dev.yml | 28 +++++++++--------- 5 files changed, 45 insertions(+), 26 deletions(-) create mode 100644 app/main/api/data/authorization_docs/2026/01/auth_08ed1f48-fc2f-4251-89e5-0a39d9245b13_74df0661-1ce1-40e2-89d3-34b94792428d_20260116_155211.pdf create mode 100644 app/main/api/etc/merchant/wxpay/pub_key.pem diff --git a/app/main/api/data/authorization_docs/2026/01/auth_08ed1f48-fc2f-4251-89e5-0a39d9245b13_74df0661-1ce1-40e2-89d3-34b94792428d_20260116_155211.pdf b/app/main/api/data/authorization_docs/2026/01/auth_08ed1f48-fc2f-4251-89e5-0a39d9245b13_74df0661-1ce1-40e2-89d3-34b94792428d_20260116_155211.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e48988f94532ea14d62043fefd81a90f8cb3016c GIT binary patch literal 67579 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%0DwbHSjS$=ZsOB?0##20E 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 B4 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 literal 0 HcmV?d00001 diff --git a/app/main/api/etc/main.dev.yaml b/app/main/api/etc/main.dev.yaml index 9003bf1..5e03f10 100644 --- a/app/main/api/etc/main.dev.yaml +++ b/app/main/api/etc/main.dev.yaml @@ -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" diff --git a/app/main/api/etc/merchant/wxpay/pub_key.pem b/app/main/api/etc/merchant/wxpay/pub_key.pem new file mode 100644 index 0000000..24aec9c --- /dev/null +++ b/app/main/api/etc/merchant/wxpay/pub_key.pem @@ -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----- diff --git a/app/main/api/internal/service/wechatpayService.go b/app/main/api/internal/service/wechatpayService.go index f9cf584..2ba0b4a 100644 --- a/app/main/api/internal/service/wechatpayService.go +++ b/app/main/api/internal/service/wechatpayService.go @@ -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 diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index d60d63f..959b7a6 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,14 +1,14 @@ services: mysql: image: mysql:8.0.34 - container_name: qnc_mysql + container_name: zac_mysql environment: # 时区上海 - Time zone Shanghai (Change if needed) TZ: Asia/Shanghai # root 密码 - root password MYSQL_ROOT_PASSWORD: yfg87gyuYiy1 - MYSQL_DATABASE: qnc - MYSQL_USER: qnc + MYSQL_DATABASE: zac + MYSQL_USER: zac MYSQL_PASSWORD: 5vg67b3UNHu8 ports: - "21201:3306" @@ -26,11 +26,11 @@ services: --lower_case_table_names=1 restart: always networks: - - qnc_net + - zac_net redis: image: redis:7.4.0 - container_name: qnc_redis + container_name: zac_redis ports: - "21202:6379" environment: @@ -43,39 +43,39 @@ services: privileged: true restart: always networks: - - qnc_net + - zac_net asynqmon: image: hibiken/asynqmon:latest - container_name: qnc_asynqmon + container_name: zac_asynqmon ports: - "21203:8080" environment: - TZ=Asia/Shanghai command: - - "--redis-addr=qnc_redis:6379" + - "--redis-addr=zac_redis:6379" - "--redis-password=3m3WsgyCKWqz" restart: always networks: - - qnc_net + - zac_net depends_on: - redis phpmyadmin: image: phpmyadmin/phpmyadmin - container_name: qnc_phpmyadmin + container_name: zac_phpmyadmin restart: unless-stopped environment: - PMA_HOST: qnc_mysql + PMA_HOST: zac_mysql PMA_PORT: 3306 - PMA_USER: qnc + PMA_USER: zac PMA_PASSWORD: 5vg67b3UNHu8 ports: - "21204:80" depends_on: - mysql networks: - - qnc_net + - zac_net networks: - qnc_net: + zac_net: driver: bridge