From ae3af80e9cd91461206df573c6f474cf9127ca00 Mon Sep 17 00:00:00 2001 From: caolin <1149034574@qq.com> Date: Thu, 24 Aug 2023 03:01:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AppletPayController.java | 35 +++++++++++++++- .../server/controller/H5PayController.java | 34 ++++++++++++++- .../com/jwl/driver/server/WechatPayTest.java | 42 ++++++++++++++++--- 3 files changed, 101 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/jwl/driver/server/controller/AppletPayController.java b/src/main/java/com/jwl/driver/server/controller/AppletPayController.java index 55cfa51..05ca8c1 100644 --- a/src/main/java/com/jwl/driver/server/controller/AppletPayController.java +++ b/src/main/java/com/jwl/driver/server/controller/AppletPayController.java @@ -9,6 +9,8 @@ import com.jwl.driver.server.vo.AppletPayVo; import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.RSAAutoCertificateConfig; import com.wechat.pay.java.core.exception.ServiceException; +import com.wechat.pay.java.core.util.IOUtil; +import com.wechat.pay.java.core.util.PemUtil; import com.wechat.pay.java.service.payments.jsapi.JsapiServiceExtension; import com.wechat.pay.java.service.payments.jsapi.model.*; import com.wechat.pay.java.service.payments.model.Transaction; @@ -23,7 +25,10 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; +import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; import java.math.BigDecimal; /** @@ -74,11 +79,37 @@ public class AppletPayController { /** 构建service */ private JsapiServiceExtension createService() { + InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("wechatPay/apiclient_key.pem"); + String keyString; + try { + Throwable var2 = null; + try { + keyString = IOUtil.toString(inputStream); + } catch (Throwable var13) { + var2 = var13; + throw var13; + } finally { + if (inputStream != null) { + if (var2 != null) { + try { + inputStream.close(); + } catch (Throwable var12) { + var2.addSuppressed(var12); + } + } else { + inputStream.close(); + } + } + + } + } catch (IOException var15) { + throw new UncheckedIOException(var15); + } Config config = new RSAAutoCertificateConfig.Builder() .merchantId(wechatPayConfig.getMchId()) - .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath()) -// .privateKeyFromPath(privateKeyPath) + .privateKey(PemUtil.loadPrivateKeyFromString(keyString)) +// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath()) .merchantSerialNumber(wechatPayConfig.getMchSerialNo()) .apiV3Key(wechatPayConfig.getApiV3Key()) .build(); diff --git a/src/main/java/com/jwl/driver/server/controller/H5PayController.java b/src/main/java/com/jwl/driver/server/controller/H5PayController.java index abc436a..59864a2 100644 --- a/src/main/java/com/jwl/driver/server/controller/H5PayController.java +++ b/src/main/java/com/jwl/driver/server/controller/H5PayController.java @@ -8,6 +8,8 @@ import com.jwl.driver.server.vo.H5PayVo; import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.RSAAutoCertificateConfig; import com.wechat.pay.java.core.exception.ServiceException; +import com.wechat.pay.java.core.util.IOUtil; +import com.wechat.pay.java.core.util.PemUtil; import com.wechat.pay.java.service.payments.h5.H5Service; import com.wechat.pay.java.service.payments.h5.model.*; import com.wechat.pay.java.service.payments.model.Transaction; @@ -23,6 +25,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; import java.math.BigDecimal; import java.util.Objects; @@ -73,12 +77,38 @@ public class H5PayController { } private H5Service createService() { + InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("wechatPay/apiclient_key.pem"); + String keyString; + try { + Throwable var2 = null; + try { + keyString = IOUtil.toString(inputStream); + } catch (Throwable var13) { + var2 = var13; + throw var13; + } finally { + if (inputStream != null) { + if (var2 != null) { + try { + inputStream.close(); + } catch (Throwable var12) { + var2.addSuppressed(var12); + } + } else { + inputStream.close(); + } + } + + } + } catch (IOException var15) { + throw new UncheckedIOException(var15); + } Config config = new RSAAutoCertificateConfig.Builder() .merchantId(wechatPayConfig.getMchId()) - .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath()) -// .privateKeyFromPath(privateKeyPath) + .privateKey(PemUtil.loadPrivateKeyFromString(keyString)) +// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath()) .merchantSerialNumber(wechatPayConfig.getMchSerialNo()) .apiV3Key(wechatPayConfig.getApiV3Key()) .build(); diff --git a/src/test/java/com/jwl/driver/server/WechatPayTest.java b/src/test/java/com/jwl/driver/server/WechatPayTest.java index 3c90b0f..9d54e7b 100644 --- a/src/test/java/com/jwl/driver/server/WechatPayTest.java +++ b/src/test/java/com/jwl/driver/server/WechatPayTest.java @@ -3,14 +3,20 @@ package com.jwl.driver.server; import com.jwl.driver.server.config.WechatPayConfig; import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.RSAAutoCertificateConfig; +import com.wechat.pay.java.core.util.IOUtil; +import com.wechat.pay.java.core.util.PemUtil; +import com.wechat.pay.java.service.payments.h5.H5Service; import com.wechat.pay.java.service.payments.jsapi.JsapiServiceExtension; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Profile; import org.springframework.core.io.ClassPathResource; +import org.springframework.data.repository.init.ResourceReader; import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; /** * @author 曹林 @@ -27,17 +33,41 @@ public class WechatPayTest { @Test void createService() throws IOException { - String privateKeyPath = Thread.currentThread().getContextClassLoader().getResource("wechatPay/apiclient_key.pem").getPath(); + InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("wechatPay/apiclient_key.pem"); + String keyString; + try { + Throwable var2 = null; + try { + keyString = IOUtil.toString(inputStream); + } catch (Throwable var13) { + var2 = var13; + throw var13; + } finally { + if (inputStream != null) { + if (var2 != null) { + try { + inputStream.close(); + } catch (Throwable var12) { + var2.addSuppressed(var12); + } + } else { + inputStream.close(); + } + } + + } + } catch (IOException var15) { + throw new UncheckedIOException(var15); + } + Config config = new RSAAutoCertificateConfig.Builder() .merchantId(wechatPayConfig.getMchId()) -// .privateKeyFromPath(privateKeyPath) - .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath()) + .privateKey(PemUtil.loadPrivateKeyFromString(keyString)) +// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath()) .merchantSerialNumber(wechatPayConfig.getMchSerialNo()) .apiV3Key(wechatPayConfig.getApiV3Key()) .build(); - JsapiServiceExtension service = new JsapiServiceExtension.Builder().config(config).build(); - - + H5Service service = new H5Service.Builder().config(config).build(); } }