我们当前使用的是 Halo 2.24.2,小程序商城在发起微信支付时持续报错。
报错接口:
POST /apis/uc.api.ecommerce.halo.run/v1alpha1/orders/{orderCode}/initiate-payment
后端日志核心错误如下:
com.wechat.pay.java.core.exception.ServiceException: Wrong HttpStatusCode[404]
httpResponseBody:
{"code":"RESOURCE_NOT_EXISTS","message":"无可用的平台证书,请在商户平台-API安全申请使用微信支付公钥。可查看指引 https://pay.weixin.qq.com/doc/v3/merchant/4012153196"}
调用链路显示 Halo 当前在请求:
GET https://api.mch.weixin.qq.com/v3/certificates?algorithm_type=RSA
堆栈关键类:
com.wechat.pay.java.core.certificate.RSAAutoCertificateProvider
com.wechat.pay.java.core.RSAAutoCertificateConfig$Builder.build
run.halo.app.ecommerce.payment.WechatPayPaymentMethodProvider.computeConfig
run.halo.app.ecommerce.payment.WechatPayPaymentMethodProvider.initiatePayment
当前微信支付商户平台“API安全”页面状态:
商户API证书:已申请
微信支付公钥:已下载/已存在
APIv3密钥:已申请
APIv2密钥:未设置
我们的判断是:
当前商户平台侧已经启用了“微信支付公钥”相关模式,但 Halo 2.24.2 的微信支付实现仍在走“自动下载平台证书(/v3/certificates)”模式,导致无法获取可用的平台证书并报 404。
想确认以下问题:
Halo 2.24.2 的微信支付接入,是否支持“微信支付公钥”模式?
当前版本是否只支持“平台证书自动下载”模式?
如果当前版本不支持,是否有已知修复版本、插件更新版本或兼容方案?
现有 Halo 后台“商户号 / AppID / 商户私钥 / 商户证书序列号 / API V3 密钥”这一套配置,在微信支付公钥模式下是否还需要额外配置?
是否需要切换到新的 WechatPay Java SDK 配置方式,避免继续使用 RSAAutoCertificateProvider?