小程序
小游戏
企业微信
微信支付
扫描小程序码分享
使用微信支付推荐的wechatpay-apache-httpclient 工具,第一个接口统一下单api
https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi
获取证书这一步已经正常了,发起支付请求的返回400 Bad request
有没有大佬使用wechatpay-apache-httpclient工具开发的?求个发起支付示例
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
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 gradle Cause: org/gradle/api/internal/plugins/DefaultConvention
报错啊
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
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 gradle Cause: org/gradle/api/internal/plugins/DefaultConvention
报错啊