对账系统(二)整体设计

系统目标:每日按渠道或者按场景定时批量对账,及时发现多账、少账、不一致、一致信息,生成相应对账结果,将对账结果通知到钉钉群,并提供对账结果操作入口,对账结果操作包括但不限于挂账、销账等等。

一、对账流程

对账系统(二)整体设计

二、对账系统的组成

1、整体调度模块

作为资金对账内部控制的大脑,对不同对账任务发出执行指令。一般对账的步骤大致固定,划分为三个步骤:
1、获取外部数据(渠道账单)
2、获取内部数据(支付系统数据)
3、执行对账
该模块的作用即就是这些步骤的执行。
另外调度模块还需要承担调度任务失败的补偿机制的任务,例如重试、报警等。

2、数据获取处理模块

从各个系统获取对账数据,并将各种各样的数据解析成标准的对账数据格式落库,为对账做准备。

获取内部数据

从支付系统查找满足条件的支付数据,一般包括某个业务支付数据来源的订单号、交易单号、渠道编号、交易金额、手续费金额等, 指定时间范围、指定支付状态(如支付完成)。可以直接配置sql获取。

获取外部数据

从各种渠道获取对账文件,各种渠道提供的对账文件格式、内容可能不同,账单的提供时间、获取方式也不相同,一般第二天提供前一天的交易流水,需要从渠道服务器定时拉取对账文件进行解析入库。
因此本模块需要配置:
1)文件拉取参数,如拉取地址、拉取账号密码、拉取文件名、拉取方式(http、ftp、sql等)、源文件存储地址、解析文件存储地址
2)文件解析参数,如解析脚本配置、解析状态、唯一标识(如生成md5,防止重复下载)

3、对账模块

对账模块为系统的重头戏,调度系统指导数据服务准备好对账数据后,会向对账服务发起对账指令,核对某个批次号的数据。
本模块需要配置
1)对账规则:指定基准数据、对账方式(单边、双边)、款项方向(入款/退款/出款/分账等)
2)对账字段:关联字段(如支付系统的机构订单号和账单的订单号)、交易时间、交易金额、交易手续费等
3)对账结果:一致、金额一致,xx不一致、多账、少账等

4、差异处理模块

这个模块主要用来处理上个模块产生的差异数据。
常见的差异有金额不一致、多账、少账。
常见的差异处理方式有挂账、跨日调整、销账等
本模块主要功能
1)提供各种差异处理方式的人工、自动处理规则和入口,并进行数据打标,还能对操作进行撤销
2)记录操作轨迹,操作内容、时间、操作人,作为动作证据