Appearance
积分商城下单流程
概述
积分商城下单流程覆盖用户从浏览商品、提交订单、支付,到后续履约与异常关闭的完整链路。
流程步骤
| 步骤 | 用户动作 | 系统处理 | 说明 |
|---|---|---|---|
| 1 | 浏览积分商品 | 拉取库存和价格 | 支持搜索与排序 |
| 2 | 进入详情点击立即兑换 | 校验登录、商品状态 | 进入确认页 |
| 3 | 选择履约方式 | 自提或邮寄 | 部分商品仅支持二维码核销 |
| 4 | 提交订单 | 锁库存、冻结积分、生成待支付订单 | 幂等创建,冻结流水类型为 freeze |
| 5 | 现金金额 > 0 | 唤起微信支付 | 支付成功后将冻结积分转正式扣减;支付失败或取消时释放冻结积分 |
| 6 | 现金金额 = 0 | 直接确认积分支付成功 | 服务端将冻结积分转正式扣减并跳转成功页 |
| 7 | 超时未支付/支付失败 | 关闭订单 | 释放库存、释放冻结积分、写取消流水与审计日志 |
| 8 | 根据履约方式履约 | 自提生成核销码;邮寄等待发货 | 订单流转 |
关键规则
1. 商品浏览
- 系统需实时拉取商品库存与价格信息。
- 支持商品搜索与排序能力。
2. 下单前校验
- 用户点击“立即兑换”后,系统需校验:
- 用户登录状态
- 商品状态是否可兑换
- 校验通过后进入确认页。
3. 履约方式选择
- 支持两种履约方式:
- 自提
- 邮寄
- 部分商品仅支持二维码核销,需在下单前明确限制。
4. 订单创建
- 提交订单时,系统需执行以下操作:
- 锁定库存
- 冻结用户积分
- 生成待支付订单
- 订单创建需保证幂等。
- 积分冻结流水类型为
freeze。
5. 支付处理
现金金额大于 0
- 系统唤起微信支付。
- 支付成功后:
- 将冻结积分转为正式扣减
- 支付失败或用户取消后:
- 释放冻结积分
现金金额等于 0
- 无需现金支付,直接确认积分支付成功。
- 服务端需将冻结积分转为正式扣减。
- 完成后跳转成功页。
6. 异常关闭
当出现以下情况时,系统需关闭订单:
- 超时未支付
- 支付失败
关闭订单时需执行:
- 释放库存
- 释放冻结积分
- 写入取消流水
- 写入审计日志
7. 履约流转
- 自提:生成核销码,供后续核销使用。
- 邮寄:进入待发货状态,等待发货。
关键状态流转
text 浏览商品 -> 商品详情 -> 确认页 -> 待支付订单 -> (现金支付 / 纯积分支付) -> 支付成功 -> 正式扣减积分 -> 履约中 -> 自提核销 / 邮寄发货
异常分支:
text 待支付订单 -> 超时未支付 / 支付失败 / 用户取消 -> 关闭订单 -> 释放库存与冻结积分
实现要点
- 下单接口需支持幂等控制,避免重复创建订单。
- 库存锁定与积分冻结应与订单创建保持一致性。
- 积分需区分“冻结”与“正式扣减”两阶段处理。
- 支付失败、取消、超时等异常场景必须保证库存与积分回滚。
- 订单取消需保留取消流水与审计日志,便于追踪与风控审计。
