写这个版本 我尝试了三个不同的版本 决定把这一个最新版 0.4.2的版本分享出来

0.4.0已经替换掉0.3.0版本中的更新方式

我们需要在Config的文件配置中做一些更改

直接上配置

@Slf4j
@Configuration
@PropertySource("classpath:wxPay.properties") //读取配置文件
@ConfigurationProperties(prefix="wxpay") //读取wxpay节点
@Data
public class VxPayConfig {// 商户号private String mchId;// 商户API证书序列号private String mchSerialNo;// 商户私钥文件private String privateKeyPath;// APIv3密钥private String apiV3Key;// APPIDprivate String appid;// 微信服务器地址private String domain;// 接收结果通知地址private String notifyDomain;////获取商户私钥文件public PrivateKey getPrivateKey(String filename){try {return PemUtil.loadPrivateKey(new FileInputStream(filename));} catch (FileNotFoundException e) {throw new RuntimeException("私钥文件不存在",e);}}@Beanpublic Verifier getVerifier() throws IOException, NotFoundException {log.info("加载证书管理器实例");//获取商户私钥PrivateKey getPrivateKey = getPrivateKey(privateKeyPath);// 获取证书管理器单例实例CertificatesManager certificatesManager = CertificatesManager.getInstance();// 向证书管理器增加需要自动更新平台证书的商户信息log.info("向证书管理器增加商户信息,并开启自动更新");try {// 该方法底层已实现同步线程更新证书// 详见beginScheduleUpdate()方法certificatesManager.putMerchant(mchId, new WechatPay2Credentials(mchId,new PrivateKeySigner(mchSerialNo, getPrivateKey)), apiV3Key.getBytes(StandardCharsets.UTF_8));} catch (GeneralSecurityException | HttpCodeException e) {e.printStackTrace();}log.info("从证书管理器中获取验签器");return certificatesManager.getVerifier(mchId);}@Beanpublic PrivateKey getPrivateKey() throws IOException {// 加载商户私钥(privateKey:私钥字符串)log.info("开始加载私钥,读取内容...");String content = new String(Files.readAllBytes(Paths.get(privateKeyPath)),StandardCharsets.UTF_8 );System.out.println(content);return PemUtil.loadPrivateKey(new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)));}//获取http请求@Bean(name = "wxPayClient")public CloseableHttpClient getWxPayClient(Verifier verifier,PrivateKey merchantPrivateKey) {log.info("构造httpClient");WechatPayHttpClientBuilder builder = WechatPayHttpClientBuilder.create().withMerchant(mchId, mchSerialNo, merchantPrivateKey).withValidator(new WechatPay2Validator(verifier));// 通过WechatPayHttpClientBuilder构造的HttpClient,会自动的处理签名和验签,并进行证书自动更新CloseableHttpClient httpClient = builder.build();System.out.println(httpClient);log.info("构造httpClient成功");return httpClient;}}

这里要注意一点 我直接将获取到的pem文件扔到了src同级别目录中

业务逻辑 我想需要你自己去微信的文档去看,人家提供的也很全面了

运行一下我的程序

以上 是我自己所遇到的问题和解决方式 希望对你有帮助

对了,想要了解这个配置底层的可以看这个包的方法

V3微信支付平台证书获取、更新配置相关推荐

  1. API v3版微信支付平台证书获取与自动更新

    API v3版微信支付平台证书获取与自动更新 关于微信证书 获取平台证书 证书自动更新 首次下载证书 关于微信证书 微信支付开发有两份证书. ♥ 商户证书:商户平台证书私钥可以对请求进行签名,微信服务 ...

  2. 微信支付证书如何部署在linux,微信支付平台证书更新指引

    最佳实践 由于旧证书过期前的5天内,微信支付会同时使用新旧证书,因此为实现新老证书的平滑切换,商户系统需支持多平台证书. 方式1 商户需通过平台证书下载API获取证书,并将其部署到生产环境中.线上服务 ...

  3. (PHP)获取微信支付平台证书步骤

    1.在个人项目中已经通过composer 安装微信支付包: 在更人项目根目录命令行窗口执行下面的安装命令 安装命令:composer require wechatpay/wechatpay 2.为什么 ...

  4. 下载微信支付平台证书及首次下载报错处理

    官方文档:https://github.com/wechatpay-apiv3/CertificateDownloader 参考文档1:https://blog.csdn.net/dling8/art ...

  5. thinkPHP生成微信支付平台证书

    1.先安装微信支付V3版本: 2.在目录 vendor/wechatpay/wechatpay下执行以下代码: 3.在本地VScode编辑器的终端运行命令行,执行以下代码: composer exec ...

  6. 微信支付平台技术文档的一个小坑

    一.注意服务器的时间与微信接口是否相同,如时间不同接口也不通即使是0.1秒 二.调用支付相关接口需要加载私钥,和证书两个认证文件,官网文档给了java和php两个demo,逻辑应该是一样的,但实际却走 ...

  7. php post 微信沙箱,微信支付平台错误:获取沙箱密钥失败,确保交易密钥是

    按官方提示进行获取沙箱密钥的时候,久试不爽,总是提示错误 :"获取沙箱密钥失败,确保交易密钥是否正确".这个纯粹是微信平台挖的坑呀,文档没有详细的进行一些讲解,也没有提示需要key ...

  8. 微信支付平台设置及如何获取微信支付所需参数

    使用微信公众平台支付插件的,需要在微信公众平台设置/获取相关参数,其方法对各种版本的支付插件是通用的,现总结如下: 一.微信平台设置 微信平台的设置是非常重要的,请一定仔细设置,50%的安装错误都是由 ...

  9. php微信支付参数动态配置,支付,微信开发_微信支付动态如何获取$jsApiParameters参数,支付,微信开发 - phpStudy...

    微信支付动态如何获取$jsApiParameters参数 现在我们在做一个需要动态变换价格的微信支付页面,就是用户购买商品后,跳转到支付页面,但是可以选择几个不同的价格当中一个进行支付. 当跳到这个页 ...

最新文章

  1. yarn 切换 设置 镜像 源
  2. PHP 页面编码声明方法详解(header或meta)
  3. [PWA] Show Notifications when a Service Worker is Installed or Updated
  4. python PyQt5 QtWidgets.QAbstractSlider类(QScrollBar,QSlider和QDial之类的小部件的公共超类)
  5. 全球首届“AI球球大作战:Go-Bigger多智能体决策智能挑战赛”开启
  6. php异步查询数据库,php中mysql数据库异步查询实现
  7. AjaxFileUpload.js
  8. 东欧视频游戏市场概况
  9. python学习第25天
  10. PIE SDK矢量数据的读取
  11. 如何精通C++ 摘自知乎和quora
  12. 接收URL参数乱码问题
  13. DelphiXE10.4安卓编程初学者心得
  14. 计算机opnet仿真实验心得,SIMULINK仿真实验心得体会
  15. angular7.0+ngx-weui公众号开发,开发及框架搭建(一)
  16. JS-移除class
  17. wangEditor 5 - 修改工具栏 toolbar 默认背景色(去掉背景颜色改为透明)
  18. fiddler抓APP的htpps請求,全部都是Tunnel to ......CONNECT...443的解决办法
  19. JPEG图片格式简单分析
  20. STM32闭环步进电机驱动器方案,原理图,源码,PCB

热门文章

  1. SQL 面试题:WHERE 和 HAVING、ON 有什么区别?
  2. 实现两个矩阵相乘(Java)
  3. django-q快速上手定时任务
  4. 使用HTML 5/CSS3五步快速制作便签贴特效
  5. Android编译详解之lunch命令
  6. 数据分析: EXCEL业务分析(一)
  7. RT-Thread Studio环境下lwIP+ENC28J60的启用与调试
  8. linux下pfam使用方法,无root权限安装Pfam的笔记
  9. 专门做评测APP的网站整理中
  10. Beautiful Soup 之 select详解