初探对账

11,965 阅读6分钟

大家好,我是老三,好久不见,最近比较忙碌,状态也不是太好,很久没有输出。

最近在做对账系统的调研和设计,给大家分享一些对账系统的知识。

什么是对账?

有个男人叫小帅,娶了个老婆,叫小美,早上,小美给小帅二十块钱买早餐,小帅买了包子、油条、豆浆回来,并说钱已经花完了,小美不信,拉着小帅到了早餐铺,拉着老板的账单对了一下,发现还剩两块钱……

对账

这就是一个简单的对账场景,我们再看看电商的大概支付链路:

电商支付链路

  • 用户在电商平台下单,支付
  • 支付服务向外部支付渠道发起支付请求
  • 支付渠道扣减用户余额,或者请求银行扣款
  • 完成支付后,支付服务同步支付状态,电商平台开始履约(发货)
  • 到这就完了吗?还没有,支付渠道还要做清结算,把交易的余额结算到商户账户

可以看到,涉及到的系统还是比较多的,对电商内部而言,可能涉及到支付、订单、风控、履约,对于外部而言,电商和第三方渠道,支付渠道和银行。内部部之间,想不出差错那简直得图灵、冯诺依曼诸神保佑,所以,对账系统,是交易最后也是非常重要的一环,

通过对账,能找到各个内、外部系统之间不一致的交易,并通过差错处理,厘清账务,防止资损。

如何对账?

电商系统内部的对账相对简单一些,不管是通接口、还是数据聚合,都可以跨服务、跨库地核对交易数据。

我们这里主要讨论电商平台和三方渠道的对账:

对的是哪些账?

对于电商公司而言:

  • 面对用户,希望“不少收一分钱,不多收一分钱”,和用户之间能做到钱货两清,这就要求电商平台的应收应付和三方渠道的实收实付一致,也就是业务对账
  • 面对三方渠道,希望能做到清算的一致性,也就实收扣除服务费的金额一致,还有结算的一致性,也就是三方渠道到商户账户结算金额一致,也就是资金对账

这篇文章我们主要讨论业务对账。

通过什么对账?

通过什么对账呢?

对于电商平台内部,需要把各个服务的交易相关数据聚合起来,一般是通过拉的方式:

内部对账数据聚合

  • binlog订阅
  • 订阅消息
  • 定时任务

对于外部的对账数据,各个支付渠道一般会提供对账单,不同渠道的对账单格式上不太一样:

  • 微信对账单,txt格式

微信对账单

  • 支付宝对账单,csv格式

支付宝对账单

  • Paypal对账单,csv格式

Paypal对账单

对账文件当然是不能直接使用的,需要把三方渠道的对账单,清洗成对账系统用到的数据:

数据转化

那对账文件是如何获取的呢?一般主要有两种方式:

  • http接口下载
  • ftp服务器下载

那对账文件是什么时间生成的呢?国内的支付渠道一般对账单生成时间是T+1。

对账单生成时间

对账的时机?

什么时候开始对账?对账一般分为两种:离线对账实时对账

我们这篇文章主要讲的就是离线对账,在对账单下载解析完成之后,开始对账,也就是所谓的T+1。例如支付宝,6点生成对账单,可以定时6:30去下载和解析对账单,解析落库之后,就可以开始进行对账。

实时对账呢,一般是对交易的状态进行监听(mq、binlog),监听到状态的变化,就开始核对。

对账逻辑是什么样的?

看看离线对账的逻辑:

那么对账是以什么为基准呢?是本系统的订单,还是支付渠道的订单?

为了尽可能保证准确性,一般是双向的,也就是基于本系统订单,比较三方对账单,也基于三方对账单比较本系统对账单,进行复核。

对账流向

通常要核对的是这几个点:

  • 支付记录是否在两边都存在
  • 支付记录状态是否一致
  • 支付记录的金额是否一致

如果没有问题,那这比流水就对平了,反之就是发生了差错:

错帐

  • 错帐:支付状态不一致;支付金额不一致
  • 短款:电商平台有支付信息,支付渠道没有
  • 长款:仅支付渠道有支付信息

怎么处理差错?

对于常见的有规律的差错单,我们可以设计一些规则来自动处理,比如跨日交易问题,可以查看前一日的交易记录,或者后一日的交易记录,查看是否能够对平。还有其它的一些汇率换算等等问题,都可以尝试对平。

对于对不平的账,就需要标记错帐,进行人工处理,例如发生了掉单,可以给用户退款;例如用户未退款,可以尝试拦截发货。

处理差错

支付对账架构如何设计?

我们来看看一些对账系统的架构设计:

  • 美团

美团支付结构总体设计

  • 有赞对账架构设计

有赞对账架构设计

  • 阿里商旅对账架构

阿里商旅对账

  • 小黑十一点半大佬画的对账架构设计

小黑十一点半的对账架构

可以看到,主要就是那些东西,数据存储(DB、缓存、大数据)、数据订阅(binlog、mq、rpc)、task等等。

小结

这篇文章给大家分享了一些对账系统的知识,老三对于对账系统,目前也只是调研和设计阶段,大家有什么意见可以和我交流,后续会给大家分享更多电商、支付相关的东西,点赞关注不迷路!




对账参考和学习资料:

[1].《支付架构实战》

[2].支付对账三部曲之资金对账系统设计篇

[3].支付对账系统怎么设计?

[4].支付对账系统序章:千万级数据对账怎么这么难?

[5].对账系统从入门到精通

[6].千万级支付对账系统怎么玩(下篇)?

[7].[美团配送资金安全治理之对账体系建设

[8].有赞业务对账平台的探索与实践

[9].准确率100%,阿里商旅账单系统架构设计实践