一文讲透阿里商旅账单系统架构设计实践
阿里妹导读
一、背景
二、无处不在的账单
2.1 生活中的对账场景
2.2 对账的基本形式
账实对账:是指我们记录的账与实物资产的实际数量进行对账。
账证对账:是指将自己的账本与记账凭证进行核对。一般记账凭证由与业务合作的第三方公司提供,在面馆的例子里,记账凭证由支付宝提供(交易记录)。
账账对账:是指在上下游相互关联的账本之间进行对账。在整个交易过程中,一般会涉及上下游多套账,上游比如外部采购、对外销售,下游比如快递发货账、第三方服务费等。这些账和总账之间有非常多的关联性,所以一般账账核对,通常用于确认及修正内部账之前的数据不一致。
三、账单系统设计
收单:监听供应链订单消息,创建账单清结算系统收单消息;
计费:针对机票、酒店、火车票、用车类目收单消息,拆分最细粒度费用项(预定/退款、改签/退款、保险/退保、服务费、赔付等等)费用明细,便于后期账单数据加工;
记账:按照当前业务规则合并账单明细,支持to b差异化配置;
入账:核对供应链数据、资金数据一致性,配置入账拦截;
出账:账期日企业账单出账,允许企业自定义账单出账,满足企业差异化、个性化账单;
对账&还款:企业根据对账单核对明细,根据账单进行还款;
3.1 收单
在账单收单时,我们可以针对不同的业务接入方提供两种不同的数据收单模式:
1)拉模式:我们主动调用获取数据,并通过数据适配的方式,将数据进行存储。
针对性强,能满足客户端的个性化、差异化需求;
2)推模式:根据业务需要,接入方将账单数据信息主动发送,数据格式按照账单标准模型进行适配。
及时性好,及时地向账单推送数据动态信息,吞吐量大。
目前我们采用的是第二种方式,由业务方推送这种模式接入,按照账单标准模型构造,无需感知业务的数据格式和业务逻辑。
3.2 计费&记账
(自定义账单,后文会介绍到)
3.3 对账
商旅账单是企业还款、开票核对的重要依据。账单准确性差,可能会导致商旅在结算、开票环节产生资损,以及影响企业对商旅的专业度的信任,因此要求账单信息完整、准确、真实。账单准确性至关重要,我们需要保证给企业的账单真实准确,所以系统对账的设计重要性无庸置疑。
3.3.1 对账方式
对账方式主要分为三种,单向对账、双向对账和多向对账。
单向对账:以一方数据为基准进行对账。比如交易订单跟资金记录,以资金结算数据为基准和交易订单核对,用来发现资金数据为支付成功,订单数据失败等异常情况。
双向对账:以双方的数据互为基准对账。既要保证资金数据为成功的,交易记录也要成功,又要保证交易记录为成功的,资金数据也要成功。
多向对账:让更多参与方两两对账,比如交易订单、资金记录、账单等两两对账,保证交易记录成功的,资金也要成功,账单数据也正常。
1)总数对账:选择一个维度,进行总数级别的对账。比如账期账单消费总数和账期资金记录总数对比,总数级别的对账好处是对账口径的设计比较简单,可以快速实现,不易出错。缺点就是无法定位问题数据,一旦对账发现问题。还需要进一步寻找问题数据。
3.3.3 对账模型
我们会提供常用的对账模型,供不同的对账场景选取。如果某些特殊场景对账模型不能覆盖,也可以采用自定义核对的方式进行对账。
3.3.4 对账节点
四、系统设计关键点
4.1 面临的挑战
企业不同的用途以及核对方式对账单调整、账单文件格式、账单表头、账单内容有不同的需求; 企业不同的核对方式和核对详细程度,关注内容不同,对账单表头要求不同。
4.2 全链路系统监控
4.2.1 背景
1)存在接受供应链消息丢失的场景,导致订单未收单未出账;
2)账单系统存在重复计费、记账问题,导致订单无法出账,影响账单准确性;
增加MAC监控,核对机票未入账数据、入账失败监控及计费记账金额核对监控;
增加pcb监控,实时监控订单、交易、人费数据;
T+1 比对供应链订单表、账单收单表的增量订单,按照交易类型分析,对消息丢失的订单监控告警,触发补偿任务,自动重试;
业务上也会针对离线账单和出账数据核对、计费/记账异常数据核对,保证账单准确性100%。
4.3 清结算扩展-账单数据表达式引擎
提供核心链路的扩展能力,计费/记账提供扩展能力,可以定义费用项拆分、配置费用记账规则;针对账单数据可以配置表达式引擎,针对账单字段进行校验和动态更新。
账单记账没有针对核心字段进行拦截校验,比如入账时间为空,结算金额为0等,无法保障出账数据准确;
账单的详情数据,在计费时持久化后,后续没有机制更新数据,但是存在部分账单字段会在计费后发生变化,比如酒店订单状态,导致离线账单字段错误,影响出账数据准确性。
举个例子:针对记账拦截的场景,配置拦截表达式,执行结果为校验不通过的具体错误信息,空则通过校验。
4.4 自定义账单
企业不同的用途以及核对方式对账单调整、账单文件格式、账单表头、账单内容有不同的需求;
企业不同的核对方式和核对详细程度,关注内容不同,对账单表头要求不同。
五、建设下一代账单系统
5.1 业务结果
5.2 未来展望
建设账票核对能力:行业独有的账票核对功能,完善实物票据与账单核对、增值税发票与账单核对,保证提供给客户的实物票据真实准确。目前没有一家在行业内实现此能力,并解决客户账票不一致的核对问题;
提升账票易用性:通过易用性在商旅行业内达到服务效率第一,并可将部分能力专利化甚至商业化。
欢迎加入【阿里云开发者公众号】读者群
微信扫码关注该文公众号作者