微信退款证书读取不到问题

如题所述

第1个回答  2022-06-29
一:第一种处理方式: 通过传入文件流(推荐方式)

证书路径在: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文件夹 证书文件放下面