支付系统
一、项目介绍
为企业saas平台网络货运系统的支付场景服务。内嵌部分页面在saas系统且对saas系统提供api接口。
包含开户、充值、充值退款、支付、提现、回单获取等一系列支付场景。系统对外提供统一接口,屏蔽底层支付渠道(银行系统)的差异性。同时提供切换渠道接口,方便客户针对不对渠道的优势进行选择。
二、项目架构
项目目前为springboot框架搭建的单应用多部署系统。
使用elastic-job任务调度异步处理耗时且需多次处理直至终态的任务,提升用户体验,同时利用其分片特性提高处理效率。使用redis实现分布式锁。利用rabbitmq异步通知客户交易处理结果(如批量支付完成等)。数据库采用mysql,数据库交互使用mybatis。
三、承担的任务
1、整合光大银行、网商银行等不同渠道提供的接口能力,适配我们系统对外提供的接口能力,完成对接并落地使用。
2、改造了各渠道充值回调的处理逻辑。统一了支付系统内部对充值逻辑的处理,预留其他渠道充值回调的扩展能力。
3、利用策略模式剥离支付系统内部业务与渠道业务,预留其他渠道扩展能力。
4、回调客户交易处理结果时,利用rabbitmq解耦业务线程。
5、优化自动化测试用例里大量性能较差的sql。
6、持续发现系统问题,并排期解决。