Spring Boot项目中集成微信支付v3

 更新时间:2021年01月06日 11:31:10   作者:码农小胖哥  
这篇文章主要介绍了Spring Boot项目中集成微信支付v3,帮助大家更好的理解和使用spring boot框架,感兴趣的朋友可以了解下

1. 前言

最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来。前几日分享了自己写的一个微信支付V3的开发包payment-spring-boot-starter,就忙里偷闲完善了一波。期间给微信支付提交了6个BUG,跟微信支付的产品沟通了好几天。

项目地址: https://github.com/NotFound403/payment-spring-boot

别忘记给个Star啊。

那么都完善了哪些内容呢?胖哥来一一介绍。

2. Maven 中央仓库

是的,不用再自行编译打包部署了,我已经提交到Maven中央仓库了。最新的坐标是:

<dependency>
  <groupId>cn.felord</groupId>
  <artifactId>payment-spring-boot-starter</artifactId>
  <version>1.0.1.RELEASE</version>
</dependency>

这才算有了点正经开源项目的样子。

3. 功能更加完善

在上次分享中仅仅实现了微信支付的代金券能力,这次加入了更多的微信支付能力:

微信支付V3的基础支付-直连模式优化。
实现微信支付V3的合单支付。
同时自行实现了多商户、多APPID的多租户模式。后续微信支付分等功能也将接入进来。

4. 完善样例

大部分还是喜欢拿来就用,那么我编写了一个DEMO项目,比如微信支付回调的控制器代码:

/**
 * 微信支付成功回调.
 * <p>
 * 无需开发者判断,只有扣款成功微信才会回调此接口
 *
 * @param wechatpaySerial  the wechatpay serial
 * @param wechatpaySignature the wechatpay signature
 * @param wechatpayTimestamp the wechatpay timestamp
 * @param wechatpayNonce   the wechatpay nonce
 * @param request      the request
 * @return the map
 */
@SneakyThrows
@PostMapping("/transaction")
public Map<String, ?> transactionCallback(
    @RequestHeader("Wechatpay-Serial") String wechatpaySerial,
    @RequestHeader("Wechatpay-Signature") String wechatpaySignature,
    @RequestHeader("Wechatpay-Timestamp") String wechatpayTimestamp,
    @RequestHeader("Wechatpay-Nonce") String wechatpayNonce,
    HttpServletRequest request) {
  String body = request.getReader().lines().collect(Collectors.joining());
  // 对请求头进行验签 以确保是微信服务器的调用
  ResponseSignVerifyParams params = new ResponseSignVerifyParams();
  params.setWechatpaySerial(wechatpaySerial);
  params.setWechatpaySignature(wechatpaySignature);
  params.setWechatpayTimestamp(wechatpayTimestamp);
  params.setWechatpayNonce(wechatpayNonce);
  params.setBody(body);
  return wechatApiProvider.callback(TENANT_ID).transactionCallback(params, data -> {
    //TODO 对回调解析的结果进行消费
  });
}

基本就是抄来就能用的。还有更多请参阅 payment-spring-boot-samples项目:

地址:https://github.com/NotFound403/payment-spring-boot-samples

5. 文档

写文档确实是一个枯燥的事情,参考了其它一些开源项目的样子弄了个像模像样的文档:

地址是:https://notfound403.github.io/payment-spring-boot

快速接入指南、JavaDoc、踩坑分享都在文档里面了。如果有什么需要完善的地方可以提交ISSUE。

今天的分享就到这里,如果你在微信支付中遇到了什么问题可以留言提问,分享使我快乐。

以上就是Spring Boot项目中集成微信支付v3的详细内容,更多关于Spring Boot项目微信支付的资料请关注脚本之家其它相关文章!

相关文章

  • Java中图像锐化操作的方法详解

    Java中图像锐化操作的方法详解

    这篇文章主要给大家介绍了关于Java中图像锐化操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Android 资源 id详解及的动态获取

    Android 资源 id详解及的动态获取

    这篇文章主要介绍了Android 资源 id详解及的动态获取的相关资料,需要的朋友可以参考下
    2016-12-12
  • springboot 排除redis的自动配置操作

    springboot 排除redis的自动配置操作

    这篇文章主要介绍了springboot 排除redis的自动配置操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • mybatis连接mysql的实现过程

    mybatis连接mysql的实现过程

    通过配置Maven的pom文件,可以简化MyBatis连接数据库的过程,免去手动下载和导入各种依赖包的麻烦,本文介绍了如何利用Maven导入MyBatis及其他相关依赖,如Junit、MySQL连接驱动、Druid连接池和Dbutil等,以简化数据库操作和测试
    2024-10-10
  • Java集合中的Collection接口总结

    Java集合中的Collection接口总结

    这篇文章主要介绍了Java集合中的Collection接口总结,Collection 接口是 List和Set接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 集合,需要的朋友可以参考下
    2023-11-11
  • java实现区域内屏幕截图示例

    java实现区域内屏幕截图示例

    这篇文章主要介绍了java截图示例,需要的朋友可以参考下
    2014-04-04
  • 新手入门Jvm--Jvm垃圾回收

    新手入门Jvm--Jvm垃圾回收

    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
    2021-06-06
  • 在Spring中如何注入动态代理Bean

    在Spring中如何注入动态代理Bean

    这篇文章主要介绍了在Spring中如何注入动态代理Bean问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • SpringBoot整合gateway全过程

    SpringBoot整合gateway全过程

    这篇文章主要介绍了SpringBoot整合gateway全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Spring boot调用Oracle存储过程的两种方式及完整代码

    Spring boot调用Oracle存储过程的两种方式及完整代码

    这篇文章主要给大家介绍了关于Spring boot调用Oracle存储过程的两种方式及完整代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08

最新评论