对账系统设计

/ 支付

支付-资金流

支付系统中最为常见的交易流转如上所示。

现实账代表着实际的资金流转,对应银行账户的余额变动,最终我们可以通过银行提取到现金。

同时,支付公司在对应银行的户头资金也会进行变化,一般公司户头的变化都是极为高频的,故银行不会实时计算余额而是会异步入账,并在每日日终时生成户头的流水记录和日终余额。

对于支付公司来说,在请求银行转账接口成功后,一般会先将请求成功的流水和金额记录到公司的内部户中,也即待清算账户。

等到银行日终后,会拿银行的流水和余额与本公司记录的流水和余额进行核对,这也就是一般对账的核心数据流。

对账核心逻辑

对账-对比逻辑

对账的核心即为两边数据的对比,因此如上所示会存在4种比对情况。

我方有银行无、银行有我方无、双方有但金额不一致、双方有且金额一致。

差错分析

针对上述4种情况,由于金额方向的不同可以具体分为以下8种差错。

入金,也即流入我方户头的资金。

出金,为从我方账户扣款流出的资金。

对账-差错分析

差错处理

以我们自己为主体,差错的金额进行挂账处理,对平的金额进行头寸结转。

我们多收的钱挂长款,后续进行长款销账直至长款金额为0。

我们少收的钱挂短款,后续进行短款销账直至短款金额为0。

差错记账

会计基本公式: 资产 = 负债 + 所有者权益

记账分录如下,可以由借贷平衡公式组合得出一对或多对分录。如

//入金清算挂账结转 (分录1入金长款挂账 & 分录2对平头寸结转)
Dr头寸
  Cr 入金待清算 
Dr头寸
  Cr 长款

//长款销账 (退客户账)
Dr 长款
  Cr 客户账

挂账&结转总公式

对账-挂账结转

销账总公式

对账-销账

至此对账的业务处理逻辑介绍完毕,下面为对应的技术实现。

对账架构

对账-对账架构

步骤如下

对账模型

对账-对账模型

大数据量下的技术实现