Parcourir la source

fix:【pay 支付】微信支付 publicKeyContent 调整为非必填,兼容 https://t.zsxq.com/ODR5V、https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues/ICUE53

YunaiV il y a 8 mois
Parent
commit
4bc88e2930

+ 5 - 2
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java

@@ -68,8 +68,11 @@ public abstract class AbstractWxPayClient extends AbstractPayClient<WxPayClientC
             payConfig.setKeyPath(FileUtils.createTempFile(Base64.decode(config.getKeyContent())).getPath());
         } else if (Objects.equals(config.getApiVersion(), API_VERSION_V3)) {
             payConfig.setPrivateKeyPath(FileUtils.createTempFile(config.getPrivateKeyContent()).getPath());
-            payConfig.setPublicKeyPath(FileUtils.createTempFile(config.getPublicKeyContent()).getPath());
-            // 特殊:强制使用微信公用模式,避免灰度期间的问题!!!
+            // 参考 https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues/ICUE53 和 https://t.zsxq.com/ODR5V
+            if (StrUtil.isNotBlank(config.getPublicKeyContent())) {
+                payConfig.setPrivateCertPath(FileUtils.createTempFile(Base64.decode(config.getPublicKeyContent())).getPath());
+            }
+            // 特殊:强制使用微信公钥模式,避免灰度期间的问题!!!
             payConfig.setStrictlyNeedWechatPaySerial(true);
         }
 

+ 0 - 1
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxPayClientConfig.java

@@ -81,7 +81,6 @@ public class WxPayClientConfig implements PayClientConfig {
     /**
      * pub_key.pem 证书文件的对应字符串
      */
-    @NotBlank(message = "pub_key.pem 不能为空", groups = V3.class)
     private String publicKeyContent;
     @NotBlank(message = "publicKeyId 不能为空", groups = V3.class)
     private String publicKeyId;