欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-14 16:29:49
1. 前言最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来。前几日分享了自己写的一个微信支付v3的开发包payment-spring-boot-starter,就忙里偷闲完善了...

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. 文档

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

地址是:

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

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

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

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