如何模块化设计出款系统(三)
前两篇文章介绍了出款系统的整体构成,以及其中的出款应用层和出款服务层,今天我们继续往下看,出款服务层的下一层——出款业务层。
什么是出款业务层?
首先来看看什么是出款业务层?
出款业务层的职责是接受出款服务层的请求,生成出款订单号(order id);根据不同业务类型需要,如用户提现、商户结算、商户提现等,进行业务逻辑处理。
出款业务层主要包括三个模板:出款记账模块、出款路由系统、出款风控系统。
下面分别进行详细介绍。
一、出款记账
记账在支付机构中是非常重要的一环。每一笔出款交易都对应着相应的记账规则。记账在支付系统中的重要性,我认为主要体现在:
- 可以清晰了解每一笔资金的来源和去向;
- 与银行账单流水进行核对;
- 准确记录用户和商户账户余额的变动,保证账户余额完全准确。
那么哪些出款环节需要进行记账呢?有两种方案:
第一种:明确付款成功后才进行记账。
各出款环节记账情况为:
- 生成出款订单:不记账,但需要冻结发起付款交易的用户/商户的账户余额,用户/商户的可用余额减少。如需收取手续费,还需冻结商户的手续费账户余额。
- 出款订单更新为成功:需要记账,即:付款渠道对应的银行存款减少;用户/商户的虚拟账户余额减少。
- 出款订单更新为失败:不记账,但需要解冻用户/商户的账户余额和商户的手续费账户,恢复可用额度。
- 出款订单成功后发生退票:需要记账。退票是指原本银行已经返回交易成功,但后面又告知交易失败,实际款项并未到账。这时候需要把原本已记为成功的账务进行冲销。即:付款渠道对应的银行存款增加;用户/商户的虚拟账户余额增加。
第二种:生成出款订单时,进行记账;如果出款失败再冲销账务。
各出款环节记账情况为:
- 生成出款订单:当作付款成功进行记账,即:付款渠道对应的银行存款减少;用户/商户的虚拟账户余额减少。不需要再冻结用户/商户的账户余额。
- 出款订单更新为成功:无需记账(因为生成出款订单时已经进行了记账)
- 出款订单更新为失败:需要记账,将原本已记账的账务进行冲销,即:付款渠道对应的银行存款增加;用户/商户的虚拟账户余额增加。
- 出款订单成功后发生退票:需要记账,将原本已记账的账务进行冲销,即:付款渠道对应的银行存款增加;用户/商户的虚拟账户余额增加。
上面两种方案,第一种方案涉及到冻结和解冻账户余额,第二种则不需要冻结和解冻账户金额。具体选择什么方案,需要根据账户系统的设计来制定。
另外,记账是根据订单(order id)维度,而非交易单(transaction id)维度进行记账的。这是为什么记账模块放在出款服务层,而不是放在出款核心层的原因。
二、出款路由
出款路由是交易系统的核心系统之一。
什么是出款路由系统?我们可以通过分析出款路由的输入-输出得到答案。
- 输入:银行名称+账户类型(包括 储蓄卡、信用卡、对公账户)+业务场景参数(如 商户号、业务类型等)。
- 输出:交易渠道。这里的交易渠道是指支付系统将出款交易指令发往哪个外部渠道来处理交易,如银联或网联。
可见,路由的本质就是要解决这样的问题:在具体某一交易场景下,筛选出最优的交易渠道。最优的关键标准是:提高出款交易成功率、提高用户体验和降低成本。
出款路由包括两个部分:出款渠道属性维护和出款路由规则管理。
1. 出款渠道属性维护
出款渠道属性维护指维护出款渠道的基本属性,包括:
- 渠道限额:指渠道的最小和最大付款金额。这种限额是渠道规定的。
- 渠道工作时间:指渠道每天支持的工作时间,例如早上8点到下午5点。
- 渠道是否支持节假日:指渠道是否支持在周末或公众假期正常运行。
- 渠道是否支持对私、对公付款:渠道是否支持付款到个人储蓄卡、信用卡,和 企业开立的对公账户。
- 渠道对私、对公的支持银行列表:以账户类型(储蓄卡、信用卡、对公账户)为维度,渠道在各账户类型下的支持银行列表。
- 渠道状态:指渠道当前是否可用。
当渠道发生异常时,需要将渠道的流量全部分流到其他可用的渠道上,这个过程可以称为降级,即渠道从可用状态变为不可用状态。
在渠道运营中,渠道降级的速度和精准度是非常重要的,当渠道发生故障时,及时降级可以减少交易失败带来的损失。为了提高降级效率,降级操作可以由系统来自动完成,而无需人工发现异常后再人工操作降级。
系统自动降级是指,运营同学根据运营经验,提前配置系统自动降级和恢复的规则和阈值,系统根据规则进行数据统计,当触发阈值时,自动降级;当达到一定条件时,自动恢复为可用状态。
2. 出款路由规则管理
出款路由规则管理,指根据业务场景需要,配置渠道分流规则,以达到提高出款成功率、提高用户体验和降低成本的目的。
业务规则例如:交易金额(不同的交易金额区间,分流到不同的渠道)、商户(不同的商户发起的出款交易,可分流到不同的渠道)等。
那么整体的出款路由筛选逻辑,应该是先判断可用性规则,包括渠道状态、渠道限额,首先保证交易成功率;然后再判断业务规则,筛选最符合业务场景需求的渠道,例如:某些场景要求对到账时效要求较高,那么就必须选用快速到账的渠道。
三、出款风控
出款风控是指,对出款交易进行风险校验,及时识别及拦截风险交易。
与出款服务层的风控校验不同,服务层是对用户的身份进行校验,确认是用户本人发起交易。
但是有可能这个用户本身就是有问题的,因此出款业务层还需要从交易的角度,进行风控校验,如交易设备号、交易频次、交易金额等多维度的风控规则。不同的业务类型,本身存在的风险点不同,因此规则也有所不同。
根据一系列规则进行打分后,以分数作为依据得出结论,是继续放行这笔交易,还是流入到人工审核环节,还是直接拒绝本次交易。
谢谢您的阅读!如有任何疑问或建议,请留言,感谢!
相关阅读
本文由 @Rebecca 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
写的真棒,期待后续文章。
看了您的文章,感觉思路清晰了许多 😳
期待出款核心文章~~~