最近有很多朋友在知乎上私信我询问有关支付系统账务功能实现方面的问题,但鉴于私信回复实在无法把实际问题进行很好的表述,所以我纠结了半天,还是决定在do
ews上单独开几篇博客,分享一下我的经验。整套博文将从业务和技术实现两个维度阐述当前主流支付系统假设过程中账务处理的方案,文中为方便理解将支付公司指定为支付宝,还请多多谅解。基本属于想到哪说到哪,如有谬误,还请各位专家多多指正。
直入正题,第三方支付从无到有发展到现在,其实就账务体系这块经历了三大阶段。
第一个阶段,我称为清算一体阶段。
早期支付公司的商户通过在线支付收取货款后,向支付公司发起结算时,支付公司根据数据库中交易流水关联的商户号查找到所有该商户的未结算资金明细,汇总无误后将资金结算给商户。这个过程中,支付公司将清分cleari
g,结算settleme
t两个动作放到一个事物中先后进行。
在这里补充一个小知识点:所谓清分Cleari
g是清算过程中的数据准备阶段对支付公司而言,主要是将需要结算给商户的资金进行汇总,整理,分类;所谓结算(settleme
t)可以看做是完成交易双方价值转移的过程。
通俗一点说,有一大堆商户在淘宝开店,最后资金都落到了支付宝,他们都向支付宝发起提现要求。支付宝首先要算清楚扣除手续费后每个商户可以提现多少资金(清分),然后根据计算来的数据,把钱汇给这些商户(结算)。也就是说,清分就是算钱的过程,结算就是给钱的过程,不知这样说各位看官是否明白?
后来,随着支付公司商户的急剧增多以及交易量的暴涨,假如每次商户发起提现支付公司的清结算部门都一条一条数据汇总轧张后进行出款,不仅员工叫苦连天,效率也十分低下,服务很差。所以不知道哪个聪明人第一个想出来这个方案:针对每个商户开立一个虚拟账户,每次交易完成后咱们就在商户的账户上进行余额的加减,这样子每次商户发起提现时我们的清算人员只要看一眼商户的账户余额就可以进行出款,然后把商户的余额给调账就可以了。这个阶段我称之为虚拟账户阶段,顺带一提,据我所知目前仍然有很多支付公司的系统停留在这一阶段。
f再后来,大家发现这种单式记账法进行记账,经常丢数据不说,追查起来还难得一比。于是又有高人将银行金融体系的基于系统科目的记账方案搬了出来,由此进入当前阶段:基于会计核算体系的账务阶段,这几篇博文的重点也是讲这个阶段。
聊完了这三个阶段,相信大家对支付系统账务模块的历史演变,应该有了一个相对清晰的认识r