Commit bb7eaa214c96a5e9638605fdb11a2cc7f1eeccd0
1 parent
521a24b3
fixed(pay): 兼容微信支付公钥模式并解决报错问题
Showing
1 changed file
with
5 additions
and
0 deletions
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java
| ... | ... | @@ -72,6 +72,11 @@ public abstract class AbstractWxPayClient extends AbstractPayClient<WxPayClientC |
| 72 | 72 | if (StrUtil.isNotBlank(config.getPublicKeyContent())) { |
| 73 | 73 | payConfig.setPrivateCertPath(FileUtils.createTempFile(Base64.decode(config.getPublicKeyContent())).getPath()); |
| 74 | 74 | } |
| 75 | + // 兼容微信支付公钥模式(BeanUtil.copyProperties忽略了该字段,当切换为公钥模式时,需要手动设置该值) | |
| 76 | + // 解决当商户切换到公钥,废弃平台证书,导致报错无可用平台证书的问题 | |
| 77 | + if (StrUtil.isNotBlank(config.getPublicKeyId()) && StrUtil.startWith(config.getPublicKeyId(), "PUB_KEY_ID")) { | |
| 78 | + payConfig.setPublicKeyContent(StrUtil.bytes(config.getPublicKeyContent())); | |
| 79 | + } | |
| 75 | 80 | // 特殊:强制使用微信公钥模式,避免灰度期间的问题!!! |
| 76 | 81 | payConfig.setStrictlyNeedWechatPaySerial(true); |
| 77 | 82 | } | ... | ... |