微信公众号接口请求添加证书地址、证书密码验证


    /**
     * 方法描述:微信请求post
     *
     * @param url      请求地址
     * @param param    请求参数
     * @param certPath 证书地址
     * @param certPass 证书密码
     * @return java.lang.String
     */
    public static String post(String url, Map<String, Object> param, String certPath, String certPass) {
        String result = null;
        try {
            result = HttpRequest.post(url)
                    .setSSLSocketFactory(SSLSocketFactoryBuilder
                            .create()
                            .setProtocol(SSLSocketFactoryBuilder.TLSv1)
                            .setKeyManagers(getKeyManager(certPass, certPath))
                            .setSecureRandom(new SecureRandom())
                            .build()
                    )
                    .form(param)
                    .execute()
                    .body();
        } catch (Exception e) {
            log.error("微信请求系统异常,url:{},param:{},e:{}", url, new JSONObject(param), e.getMessage());
        }
        return result;
    }


   private static KeyManager[] getKeyManager(String certPass, String certPath) throws 
   Exception {
        KeyStore clientStore = KeyStore.getInstance("PKCS12");
        clientStore.load(new FileInputStream(certPath), certPass.toCharArray());
        KeyManagerFactory kmf = 
        KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
        kmf.init(clientStore, certPass.toCharArray());
        return kmf.getKeyManagers();
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值