技术栈:Java+SpringBoot+SpringBatch+Spring Data JPA
此文章我们来讲下批付系统设计,在讲批付系统之前先要理解单笔代付交易,批付也就是一次完成多笔单笔代付交易,有的公司批付系统表面是批付,实际系统将批付转成了单付,比如财务要支付100名员工报销款,批付系统一行一行读取批付文件数据请求银行100次,如果财务需求为此100笔交易只要一张回执单,那么此批付系统就凉凉了,所以批付系统咱们就设计为批付系统,不转单付。
对于没有做过支付系统的小伙伴,我们先理解下什么是代付,代付也称为代发,代付交易就是委托第三方代为支付的交易,委托方从被委托单位的结算账户向持卡人指定银行卡账户进行款项支付。付费单位在提供付款目标相关银行账户信息及对应款项之后,通过代付系统向目标账户划款。代付交易能实现公对公、公对私、私对公、私对私的银行资金转账交易。
说人话简单来说就是有很多人要打款,用表格列出人员名单,账号,金额,批量导入批付系统,核对无误后提交,银行根据单位发送的信息把款项汇入各个账号。
单付与批付有一个很大的区别是,数据交互不在是接口调用,而是通过文件形式进行系统之间的交互,批付一般实时性要求并不是那么高,财务系统将数据生成文件发送至ftp服务器(送盘),然后支