图19:支付交易状态
5.3.1 收款状态
1)支付状态
收款的状态包含了“收单和充值”业务的,这类交易平时我们用的比较多。一般会给调用下单和调用收银台留个“初始”状态,用户在收银台上支付就处于“待支付”状态了,这个时候除了用户谁也不能对这个订单进行操作了。
2)撤销状态
收单业务在处理中可以进行撤销,例如用户“不(手)小(贱)心”在支付的时候把收银台关闭了,那需要设计一个自动查询任务来撤销这笔订单,当然这个操作由交易平台主动发起。
5.3.2 分账状态
分账状态我们平时接触的就不多了,只有在确认收款时候才会有所感知。它主要在即时分账和担保分账时会用到;
1)即时分账
即时分账是收款和分账“一步式”完成的,因此在待支付状态下就要进行。当分账成功后支付状态也调整为“支付成功”。如果分账失败那就麻烦了,需要做对应的重新分账处理,交易系统要同时判断“支付状态”和“分账状态”然后再进行处理。
2)担保分账
担保分账是先收款,等业务侧履约完成后再分账,因此在支付成功状态下发起。如果分账失败与即时分账一样要支持重新分账。
5.3.3 退款状态
退款状态我们平时接触的也比较多,当我们退货的时候使用的就是退款处理流程。退款与撤销不同之处在于它只能在支付成功的时候才能发起。
收款的退款是比较简单的,分账的退款相对麻烦,只有当“分账中”状态时不允许退款(其实很短暂过程),其他不管成功、失败都要能支持退款的逆向操作。(这部分我们在退款交易中单独介绍)
5.3.4 付款状态
付款业务相对独立,它主要负责控制提现、单笔的支付处理。由于大金额付款资金风险比较高,因此处理起来也是比较谨慎的。
1)预扣款处理
我们前面介绍了付款相对收款多了一个预扣款和失败后的冲正,因此节点上增加了付款申请这个操作状态,其作用就是用户提交支付前可以做对应的“经办与审核操作”。如果涉及多级审核,需要新增审核状态来控制和管理支付状态。
审核节点存在长期不处理的情况,因此如果是付款申请状态可以直接撤销。
2)付款结算
在付款时都会先置为“付款中”,如果全部成功则为“付款成功”,如果失败完成冲正后关闭付款订单。
有人会说如果用户想重新发起该怎么办呢?要重新发起,反正原支付系统订单到终态就“寿终正寝”了,用户操作便利性和管理流程性的需求“由业务系统或者商户工作台去处理”,交易系统不再理会。订单生命周期结算就不能“再诈尸了”,付款不是闹着玩的,打死不改。
3)退汇处理
退汇是汇款业务比较常见的一种异常情况,是因为对手银行校验你的收款人信息无法入账的处理方式。他的特点是会先告诉你收款成功,然后再把钱打回付款人账户。(人行大小额普通贷记强制清算的原因,这个可以看我以前的文章)。
以上的付款主要介绍的是单笔付款,批量付款要复杂的多。它要在“单笔付款状态”的基础上增加一套“批量任务管理”来控制交易的步点。限于篇幅批量处理后面在介绍代发薪资、批量放款的时候再单独介绍吧。
六、总结由于交易是场景化的,并且可以根据场景进行无穷无尽的扩展,因此今天的内容比较多,我们挑重点来总结下吧。
6.1 交易四个口诀
1)支付三流合一
就是“业务系统”、“支付系统”、“支付渠道”要能够有效衔接,“交易流”、“支付流”、“资金流”的订单号、状态、金额要保障最终一致。三流合一有两个重要的范式也要记住,
- 收款范式:没有结果,我就不给客户结算。
- 付款范式:钱抓手里,没有结果,钱就不付出去。
2)跨系统三状态
任何跨系统的交易都要设置三种状态“成功、失败、处理中”,其中成功、失败称为“终态”,“处理中”称为运行态,支付系统的账务处理只能根据终态来进行最终的资金结算处理,处理中的状态都不能进行结算。
3)异常查退合一
由于经常会有处理中的状态出现,为了保障客户资金到账的时效性,因此需要做异常的查退处理来实现支付结果尽快一致。
- 订单查证:这种方式以外部订单状态为准更新本方状态。
- 账务冲退:收款场景下,这种方式以本方账务结果为准,通过撤销和退款让渠道一侧与本方账务保持一致。
4)差错三账调平
如果处理中一直得不到解决,只能通过日终对账来保障结果同步了,这就是最终一致性要求。差错处理主要有三种方式。
- 补账:以渠道为准本方补计账务或者更正订单
- 冲正:以渠道为准,本方账务取消或者逆向记账。
- 挂账:为了不影响正常业务的结算,有些异常账务先挂账到内部户,后面人工处理后进行核销。
6.2 交易分账模式
交易的分账模式很多,通常会把它分为即时到账模式和担保交易模式。
1)即时到账模式
就是收款和分账一步完成,资金直接到收款方的账户。这种面对面快速交易比较常见。
2)担保交易模式
就是收款后资金先暂存在担保账户,待收款方履约后再做结算。这种电商履约场景较为常见。担保交易模式主要分为三种“担保支付、合单支付、组合支付”实现难度也逐个递增。
6.3 分账交易流程
分账交易流程有四种,这里做了一个表格归纳总结了他们的特性
6.4 退款交易流程
退款交易流程是支付的逆向流程,正向流程有多复杂,退款流程就有多复杂。这部分掌握基础退款规则就行了,其他退款处理方式本文给出了一些参考方案,具体落地都需要设计者具体事情具体分析。
6.5 交易设计方案
主要是几张图由场景到最终实现的关联关系要能够理解。
作者:刚哥,公众号:刚说产品
本文由 @刚哥 原创发布于人人都是产品经理,未经授权,禁止转载
题图来自Unsplash,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。