一、背景简介
订单其实很常见,在电商购物、外卖点餐、手机话费充值等生活场景中,都能见到它的影子。那么,一笔订单的交易过程是什么样子的呢?文章尝试从订单业务架构和产品功能流程,描述对订单的理解。
二、订单业务
用户、平台和商户是订单业务的核心参与者,订单流程的搭建就是围绕三方的交易场景展开的。
- 用户:在应用端选择商品、下单支付、查看订单。
- 平台:实现订单交易链路,提供支付能力和对账清算能力;
- 商户:提供商品信息和交付能力。
三、订单流程
订单流程有三个核心阶段:创建、支付、交付。
- 订单创建:用户选择商品并下单,完成订单创建。
- 订单支付:对接各种支付渠道,完成订单支付。
- 订单交付:支付成功后,通知商户交付商品。商品交付成功即订单完成。
1.订单支付流程(正向交易)
在理想状态下,订单流程从用户下单开始,支付成功之后,商户交付商品,即订单结束。流程如下:
2.订单退款流程(逆向交易)
订单涉及下单、支付、交付等诸多环节,一旦某个环节失败了,都可能导致订单回滚。所以要全面地考虑各种退款场景,并且提供相应地解决方案。
- 主动取消:用户取消订单,发起退款;商户交付失败,发起退回。
- 超时情况:用户支付超时;商家交付超时。
- 异常情况:平台、支付渠道、商户等系统的程序异常或业务异常,导致支付失败或交付失败;
四、系统监控和自动任务
订单流程复杂,且涉及资金交易,对系统稳定性要求极高。主要依赖于系统监控和自动任务,提高订单的成功率,降低人工干预的风险和成本。
1. 系统监控
监控订单流程的异常情况,及时通知系统人员,做主动修复或重试处理。例如,接口请求失败频率超出阈值时,一般是网络或系统问题,及时通知系统人员排查;支付失败或交付失败时,短信告警;对账或清算失败时,通知及时处理,否则可能影响日终。
2. 自动任务
订单流程是异步的,自然依赖于任务调度,对超时场景做自动修复或重试处理。例如,支付超时会持续锁定库存,需要及时关单处理;交付超时会影响用户体验,需要及时通知商户处理或退回;请求超时,需要重试处理,提高成功率。
参考资料
有赞保险业务的分析与架构设计
浅谈电商核心「订单」业务如何设计
交易日均千万订单的存储架构设计与实践
海外都在用哪些支付方式?
前端项目
后端项目
订单超时怎么处理?我们用这种方案
腾讯财付通会计核算系统原理与架构