一:第一種處理方式: 通過傳入文件流(推薦方式)
證書路徑在:resource下的 cert/apiclient_cert.p12
WxPayConfig payConfig =new WxPayConfig();
payConfig.setAppId(PayConstants.WX_PAY_APPID);
payConfig.setMchId(PayConstants.WX_PAY_MCHID);
payConfig.setMchKey(PayConstants.WX_PAY_SIGNKEY);
payConfig.setKeyContent(getCertStream());//處理服務器:讀取相對路徑的證書文件讀不到的問題
payConfig.setKeyPath(PayConstants.CONFIG_WECHAT_CERT_PATH);//會先找keyContent 找不到再找路徑
public static byte[]getCertStream() {
????????byte[] certBis =null;
? ? try {
????????????InputStream certStream =? ? ? ? ? ? ? ? ????????????Thread.currentThread().getContextClassLoader().getResourceAsStream("cert/apiclient_cert.p12");
? ? ? ? ????certBis = IOUtils.toByteArray(certStream);
? ? ? ? ? ? ?certStream.close();
? ? }catch (Exception e) {
????????e.printStackTrace();
? ? }
????return certBis;
}
參考文章:https://blog.csdn.net/yibailiheng/article/details/106603853
二:第二種處理方式: 在服務器相同路徑也存放 證書文件
證書路徑在:與退款模塊平級的 cert/apiclient_cert.p12 文件下
WxPayConfig payConfig =new WxPayConfig();
payConfig.setAppId(appId);
payConfig.setMchId(mchId);
payConfig.setMchKey(mchKey);
payConfig.setKeyPath("cert/apiclient_cert.p12");
在linux jar同級目錄 建 cert文件夾 證書文件放下面