订单业务和系统设计(一)

一、背景简介

订单其实很常见,在电商购物、外卖点餐、手机话费充值等生活场景中,都能见到它的影子。那么,一笔订单的交易过程是什么样子的呢?文章尝试从订单业务架构和产品功能流程,描述对订单的理解。

二、订单业务

用户、平台和商户是订单业务的核心参与者,订单流程的搭建就是围绕三方的交易场景展开的。

  • 用户:在应用端选择商品、下单支付、查看订单。
  • 平台:实现订单交易链路,提供支付能力和对账清算能力;
  • 商户:提供商品信息和交付能力。

三、订单流程

订单流程有三个核心阶段:创建、支付、交付。

  • 订单创建:用户选择商品并下单,完成订单创建。
  • 订单支付:对接各种支付渠道,完成订单支付。
  • 订单交付:支付成功后,通知商户交付商品。商品交付成功即订单完成。

1.订单支付流程(正向交易)

在理想状态下,订单流程从用户下单开始,支付成功之后,商户交付商品,即订单结束。流程如下:

2.订单退款流程(逆向交易)

订单涉及下单、支付、交付等诸多环节,一旦某个环节失败了,都可能导致订单回滚。所以要全面地考虑各种退款场景,并且提供相应地解决方案。

  • 主动取消:用户取消订单,发起退款;商户交付失败,发起退回。
  • 超时情况:用户支付超时;商家交付超时。
  • 异常情况:平台、支付渠道、商户等系统的程序异常或业务异常,导致支付失败或交付失败;

四、系统监控和自动任务

订单流程复杂,且涉及资金交易,对系统稳定性要求极高。主要依赖于系统监控和自动任务,提高订单的成功率,降低人工干预的风险和成本。

1. 系统监控

监控订单流程的异常情况,及时通知系统人员,做主动修复或重试处理。例如,接口请求失败频率超出阈值时,一般是网络或系统问题,及时通知系统人员排查;支付失败或交付失败时,短信告警;对账或清算失败时,通知及时处理,否则可能影响日终。

2. 自动任务

订单流程是异步的,自然依赖于任务调度,对超时场景做自动修复或重试处理。例如,支付超时会持续锁定库存,需要及时关单处理;交付超时会影响用户体验,需要及时通知商户处理或退回;请求超时,需要重试处理,提高成功率。

参考资料

有赞保险业务的分析与架构设计

浅谈电商核心「订单」业务如何设计

交易日均千万订单的存储架构设计与实践

海外都在用哪些支付方式?

前端项目

后端项目 订单超时怎么处理?我们用这种方案

腾讯财付通会计核算系统原理与架构

相关推荐
天空属于哈夫克31 天前
企业微信二次开发:精准实现关键词自动回复
架构·企业微信
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码1 天前
别再前后端各写一套表单校验了
java·后端
晨米酱1 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
大勇前进1 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
这个DBA有点耶1 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
yuzhi_liu1 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile1 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go