支付宝架构PPT中会计部分的讲解,分为内部账户和外部账户,如图所示。那么支付宝系统为什么会采用这样的设计呢?
我们作为支付系统的架构师都应该明白,为了提高交易性能,必须将交易与会计分离,以提高交易处理性能和效率,这样才能有针对性地解决复杂的业务逻辑。所以在支付系统的设计中,我们一般将会计分为两步,支付成功后系统同步记账,异步通知会计系统做复式记账。
分离内部和外部账户的原因
所以在支付宝架构的PPT中体现为日记账是单独一个账户(外部),而会计记录是单独一个账户(内部)。
外部账户是外围业务系统的账户体系,采用单式记账方式,一方面记录原始交易流转;另一方面便于与合作方对账原始交易。
分账(内部)是核心账目体系,采用复式记账法,此部分主要记录结构性账目,严格遵循会计分录。一方面方便制作统计分析报告(如计算手续费、利润分成等);另一方面结构性账目更容易计算借方和贷方余额,提供账户余额(为日终子系统的数据来源提供稳定性保障)。

各子系统功能
比较容易理解的是,支付宝整个交易架构分为记账子系统、入账子系统和日终子系统。
会计子系统:参与线上交易,根据不同的线上交易实现业务逻辑。未来在业务和架构扩展方面,只需要在支付产品层修改这部分功能即可。在一些电商平台和支付公司系统中,分工更加明确,将会计子系统的线上部分拆分为独立的支付引擎模块和业务实现模块。支付引擎模块只关注扣款和应收应付订单的记录,这部分是标准化服务,不需要扩展;而业务实现模块则根据业务的特点和逻辑单独开发。
录入子系统:此部分主要针对会计核算中的六大会计科目:资产科目、负债科目、所有者权益科目、损益科目、成本科目、共同科目,将交易流向作为会计科目进行记录,并对每一笔交易流向进行借贷平衡,确保会计核算不出现差错。
日终子系统:主要完成两个任务:一是会计试算表,保证科目体系的平衡,与实际内外部资金进行核对对账;二是日终后的批量统计,为数据报表分析提供支持,也可以完成一些大数据相关的任务。
总结
从技术上来说,记账并不是支付系统设计中最难的部分。风控和授信的实现难度要比记账高很多。但从业务角度来看,记账是支付流程中最难让新手理解的部分,因为它涉及到所有支付相关的概念。建议新手买一本会计相关的书看一看学习一下,然后再去理解和设计这部分功能。