项目介绍:
支付系统嘛,集成了主流支付方式、支付平台等,除此之外它还有些额外的管理功能,比如对账、结算、交易订单的管理等等,所以也有后台管理的。
该项目的技术栈也是后端的主流技术,包括:Spring Boot、Shiro、MyBatis、Redis等。
开源的支付类项目平时见得可能也不多,它也是一个偏业务类型的开源项目。毕竟开源项目很少有业务强相关的,开源出来的东西,业务一般都剥离出去了。该项目涉及了一些和支付相关的业务流程,包括:支付流程、对账流程、结算流程等等。
龙果支付系统(roncoo-pay)是国内首款开源的互联网支付系统,拥有独立的账户体系、用户体系、支付接入体系、支付交易体系、对账清结算体系。目标是打造一款集成主流支付方式且轻量易用的支付收款系统,满足互联网业务系统打通支付通道实现支付收款和业务资金管理等功能。
主要特点:
- 拥有支付系统通用的支付通道接入、用户管理、资金账户管理、对账清算管理、支付订单管理等功能;
- 已接通支付宝支付和微信支付的多种支付方式,满足大部分企业业务系统的支付需求;
- 独立的支付网关接入系统,为下游商户或业务平台提供统一支付接入接口,轻松实现统一支付接入;
- 项目代码免费开源且定期更新维护,扩展自由、使用无忧;
- 配套完善的系统使用文档、部署文档、视频教程,学习使用更轻松;
- 拥有活跃的产品技术学习交流社群,学习交流更高效;
- 由专业的支付系统产品技术团队提供服务支持,专业性及持续性有保障;
应用架构:
支付流程:
技术框架
技术 | 描述 |
Spring Boot | 核心框架 |
Apache Shiro | 安全框架 |
MyBatis | ORM框架 |
Druid | 数据连接池 |
Redis | 缓存数据库 |
Ehcache | 进程内缓存框架 |
Maven | 项目管理 |
项目结构
roncoo-pay //龙果支付
|
├── roncoo-pay-app-notify //商户通知模块
|
├── roncoo-pay-app-order-polling //订单轮询模块
|
├── roncoo-pay-app-reconciliation //交易对账模块
|
├── roncoo-pay-app-settlement //交易结算模块
|
├── roncoo-pay-common-core //公共基础模块,不需要单独部署
|
├── roncoo-pay-service //核心业务模块,不需要单独部署
|
├── roncoo-pay-web-boss //运营后台模块
|
├── roncoo-pay-web-gateway //支付网关模块
|
├── roncoo-pay-web-merchant //商户后台模块
|
├── roncoo-pay-web-sample-shop //模拟商城模块
模块介绍
roncoo-pay-app-notify
说明:商户通知模块,把交易成功的订单信息按一定的通知策略通知相应的商户
roncoo-pay-app-order-polling
说明:订单轮询模块,按制定的查询策略对平台支付中的订单进行结果查询,然后对获取到的订单结果做相应的处理(注意:除了轮询还能通过异步通知获取订单结果进行处理)
roncoo-pay-app-reconciliation
说明:交易对账模块,每天定时对前一天平台的交易订单和银行方(例如:微信、支付宝...)订单进行匹配校验,校验订单状态、手续费、交易金额等
roncoo-pay-app-settlement
说明:交易结算模块,每天定时对前一天已对完账后确认无误的交易订单进行结算,把钱结算给对应的商家和平台
roncoo-pay-common-core
说明:公共基础模块,包含公共的工具类、枚举、配置、基础实体、基础DAO层等
roncoo-pay-service
说明:核心业务模块,整个系统的核心,所有业务功能(下单,查询、账户操作......)的实现,所有web工程和app服务都需要引用该模块
roncoo-pay-web-boss
说明:运营后台模块,提供对支付系统功能的配置和维护,例如维护银行信息、支付产品,商户信息、费率、交易查询等
roncoo-pay-web-gateway
说明:支付网关模块,对商家提供对外的网关支付接口(包含支付下单,支付查询......)
roncoo-pay-web-merchant
说明:商户后台模块,提供商户查看交易订单信息
roncoo-pay-web-sample-shop
说明:模拟商城模块,提供向支付系统发起支付请求的商城,提供测试方法
这里放不了链接,项目源码、在线演示(后台管理)、在线演示(商户系统)、系统操作说明
、系统详细介绍、系统搭建部署等,转发本文+关注+私信【0106】即可获取
","content_hash":"f217a57c