最近因为要给多个独立开发应用提供一个共用的支付服务,原本打算直接找个开源的(预算不足)。调研了几个热门的开源支付项目,这些项目的功能都非常强大,但这也使得上手成本和部署成本都略高。实际上,好多功能其实我们都用不到,
所以,脑子一热,决定撸个轮子。 既然要撸轮子,还是要好好撸一下,所以这几天好好思考了一下这个轮子的定位。
最后,决定MiniPay的核心定位是:简单、轻量、开箱即用!所以,MiniPay的特点是:
- 架构不会特别复杂,让更多开发者都能看懂和参与
- 项目的构建和部署也要尽量便捷,通过简单配置,直接启动就能用上的支付服务
希望这个开源项目的构建,可以帮助到需要一些简单支付功能的开发者,你可以直接用来作为自己系统里的微服务,也可以基于此打造自己的支付系统。
同时,MiniPay的框架选型将尽可能的采用Spring全家桶的方案,比如:
- 数据访问将采用Spring Data JPA,而不是MyBatis;
- 权限控制将采用Spring Security,而不是Shiro
- ...
所以,如果您正在学习Spring全家桶,那么该项目也可以作为一个实战项目来一起锻炼!
- Java 17
- Spring Boot 3.1.x
- Spring Data JPA
- Spring Security
以微信支付作为基础,实现基础功能
管理功能
- 简单登录页面
- 简单商品管理
- 微信支付订单管理
- 快捷测试页面
- 订单列表
- 订单详情
微信支付对接
- 扫码支付(Native)
- 预下单接口(传价格,后端调用)
- 预下单接口(预设商品的下单,客户端也可使用)
- 获取二维码接口
- 支付回调接口
- 回调报文的存储
- 变更通知
- 订单查询接口
- 本地订单查询
- 微信端订单查询
- 关闭订单接口
- 定时任务,补偿状态订单的更新:超时未支付、支付失败、未接收到成功回调等情况的订单更新
支付宝对接