时间:2021-05-20
最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来。前几日分享了自己写的一个微信支付V3的开发包payment-spring-boot-starter,就忙里偷闲完善了一波。期间给微信支付提交了6个BUG,跟微信支付的产品沟通了好几天。
项目地址: https://github.com/NotFound403/payment-spring-boot
别忘记给个Star啊。
那么都完善了哪些内容呢?胖哥来一一介绍。
是的,不用再自行编译打包部署了,我已经提交到Maven中央仓库了。最新的坐标是:
<dependency> <groupId>cn.felord</groupId> <artifactId>payment-spring-boot-starter</artifactId> <version>1.0.1.RELEASE</version></dependency>这才算有了点正经开源项目的样子。
在上次分享中仅仅实现了微信支付的代金券能力,这次加入了更多的微信支付能力:
微信支付V3的基础支付-直连模式优化。
实现微信支付V3的合单支付。
同时自行实现了多商户、多APPID的多租户模式。后续微信支付分等功能也将接入进来。
大部分还是喜欢拿来就用,那么我编写了一个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
写文档确实是一个枯燥的事情,参考了其它一些开源项目的样子弄了个像模像样的文档:
地址是:https://notfound403.github.io/payment-spring-boot
快速接入指南、JavaDoc、踩坑分享都在文档里面了。如果有什么需要完善的地方可以提交ISSUE。
今天的分享就到这里,如果你在微信支付中遇到了什么问题可以留言提问,分享使我快乐。
以上就是Spring Boot项目中集成微信支付v3的详细内容,更多关于Spring Boot项目微信支付的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近开发微信公众号内嵌H5页面,使用vue搭建的项目,由于业务需求,需要实现微信自定义分享功能,所以项目中集成微信JS-SDK。微信JS-SDK是微信公众平台面
1、Spring中集成camel-ftp近期项目中涉及到定期获取读取并解析ftp服务器上的文件,自己实现ftp-client的有些复杂,因此考虑集成camel-
使用maven插件generate生成MyBatis相关文件在项目中增加maven依赖-mybatis-spring-boot-starter-mysql-co
1.什么是spring-boot-devtoolsspring-boot-devtools是spring-boot项目开发时的一个热部署工具,安装了spring
springboot集成mybatis关键代码如下:1,添加pom引用org.mybatis.spring.bootmybatis-spring-boot-st