private static <T extends WxBaseResult> WxBaseResult doPost(String url, String bodyJsonStr, String serialNo, String mchNo, Class<T> returnClazz) { //PemUtil 中也提供有证书加载方法 WechatPayHttpClientBuilder builder = WechatPayHttpClientBuilder.create() .withMerchant(mchNo, serialNo, getPrivateKey(getRealPath(mchNo, ".p12"), mchNo)) //微信证书密码及商户号 .withWechatpay(getMchX509Cert(mchNo)); HttpClient httpClient = builder.build(); HttpPost httpPost = new HttpPost(url); //设置微信必要请求头信息 httpPost.setHeader("Content-Type", "application/json"); httpPost.setHeader("Accept", "application/json"); StringEntity entity = new StringEntity(bodyJsonStr, "UTF-8"); httpPost.setEntity(entity); try { HttpResponse response = httpClient.execute(httpPost); return resultDeal(response, returnClazz); } catch (IOException e) { log.error("微信远程调用异常:", e); throw new RRException("微信远程调用异常"); } } 其实比较简单,主要就是证书的拿取(PrivateKey和X509Cert),我开始是自己写的,后面发现这个工具提供的有相应处理方法在 PemUtil 中有;另外需要注意的是X509Cert证书获取不能直接使用我们商户平台下载的application_key.pem去得到,否则httpClient.execute方法获取结果自动验证返回签名时会报错。需要先使用CertificateDownloader工具转换证书 (java -jar CertificateDownloader-1.1.jar -f 商户私钥文件路径 -k 证书解密的密钥(商户平台APIv3秘钥) -m 商户号 -s 商户证书序列号 -o 新证书保存路径) 工具下载地址 https://github.com/wechatpay-apiv3/CertificateDownloader/releases
使用wechatpay-apache-httpclient开发的大佬有示例么?使用微信支付推荐的wechatpay-apache-httpclient 工具,第一个接口统一下单api https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi 获取证书这一步已经正常了,发起支付请求的返回400 Bad request 有没有大佬使用wechatpay-apache-httpclient工具开发的?求个发起支付示例
2021-03-25没有
未获取到用户unionId?[图片] 该接口文档中有说明返回unionId,但实际调用没有unionId信息
2020-06-05