最近在研究和设计对账系统,想跟大家分享一下关于对账系统的一些知识。
什么是和解?
有个男人叫小帅,娶了一个老婆叫小美。早上,小美给了小帅20元钱让他买早餐。小帅买了包子、油条、豆浆都说钱没了。小美不相信,就带着小帅去了早餐店跟老板核对账单,发现还剩下两元钱……
这是一个简单的对账场景,我们来看一下电商一般的支付环节:
电商支付链接
大家可以看到,这里面涉及到的系统还是挺多的,对于电商来说,对内可能涉及到支付、订单、风控、履约等,对外则涉及到电商和第三方渠道、支付渠道、银行等,如果内部各部门之间不出差错,那得靠图灵和冯·诺依曼的加持了。所以对账系统是交易的最后也是最重要的一个环节。
通过对账,我们可以发现内部和外部系统之间不一致的交易,并通过错误处理,澄清账目,防止财务损失。
如何核对账目?
电商系统内的对账相对简单,无论是通过接口还是数据聚合,都可以跨服务、跨数据库核对交易数据。
这里我们主要讨论一下电商平台与第三方渠道的对接:
哪些记载是正确的?
对于电子商务公司来说:
在本文中我们主要讨论业务对账。
通过什么和解?
如何调和?
对于电子商务平台来说,需要从各种服务中汇总与交易相关的数据,通常通过提取以下数据:
内部对账数据汇总
对于外部对账数据,每个支付渠道一般都会提供一份对账单,不同渠道的对账单格式不同:
微信声明 支付宝声明 声明
当然对账文件并不能直接使用,需要将第三方渠道的对账报表清洗成对账系统使用的数据:
数据转换
如何获取对帐文件?主要有两种方式:
对账单什么时候生成? 国内支付渠道一般都是T+1生成对账单。
生成对账单时的对账时间是什么时候?
对账什么时候开始?对账一般有两种:离线对账和实时对账。

本文主要讲离线对账,对账是在对账单下载解析完成后才开始的,也就是所谓的T+1。比如支付宝6点生成对账单,6点半就可以下载解析对账单,解析入库后就可以开始对账了。
实时对账一般会监控交易(mq,)的状态,当检测到状态变化时开始检查。
和解逻辑是什么?
看一下离线对帐的逻辑:
那么对账的依据是什么呢?是本系统的订单还是支付渠道的订单?
为了尽可能保证准确性,一般都是双向的,即根据本系统的订单,进行三方报表比对,再根据三方报表,与本系统的报表进行比对审核。
对帐流程
通常检查以下几点:
如果没有问题,那么流量就平衡了,否则就会出现错误:
错误账户
如何处理错误?
对于常见、经常发生的错误订单,我们可以设计一些规则来自动处理,比如跨日交易,可以查看前一天或者后一天的交易记录,看是否可以进行平衡,还有其他汇率换算问题也可以进行平衡。
对于不平衡的账户,需要标记错误账户,并进行人工处理。比如订单丢了,可以给用户退款;如果用户不退款,可以尝试拦截发货。
如何设计支付对账架构来处理错误?
让我们看一下一些对账系统的架构设计:
美团支付架构总体设计
有赞对账架构设计
阿里商旅对账
小黑11点半的和解结构
对账参考及学习资料:
--- 结尾 ---
推荐↓↓↓