wechatpay-apiv3/wechatpay-java

希望可以动态更新配置,比如商户的api秘钥和证书修改了,不重启可以修改对应的配置

Closed this issue · 6 comments

您的功能请求与问题有关吗? 请描述您遇到的问题

微信配置是放在数据库的,多商户情况下,用户修改配置后,希望不重启服务能更新支付配置
image

描述您想要的解决方案

No response

您还有其他的方案吗?

No response

其他信息

No response

是否我只要把provider的httpclient重新创建一个新的就好了

微信配置是放在数据库的

【微信配置】是指微信支付平台证书?还是商户API私钥、商户API证书序列号?从你提到的内容来看,应该是商户API私钥配置,然后走自动下载微信支付平台证书吧。

是否我只要把provider的httpclient重新创建一个新的就好了

目前不行,因为只能根据之前的配置下载微信支付平台证书。

如何解决你的问题呢?之前考虑过这种情况,不过先要手写的代码有些多:先实现 Signer 从远程数据库取配置,然后把它注入 Credential,再拿着 Credential 得到 RSAAutoCertificateProvider,进而得到 Validator,最后再构造 HttpClient

晚点我提供一个辅助的 Config 类,让过程变得简单,找个时间写一个指南放到 wiki 上吧。

好的

我把能想到的配置都通过反射更新了下如果数据库配置有更新的话,测了下好像没问题,可以的话看下这样子可以不
image

你遗漏了 certificateProvider

设计是 Config 对象不可变的。通过反射改变的话,我不敢保证没问题。

certificateProvider我也更新了对应的httpClient和aeadCipher属性