订单(Order)
这是什么
Order 是所有付费行为的统一记录。无论是新订套餐、升级套餐还是差价补偿,都生成一条 Order。
订单号前缀:
TB— 新订套餐UP— 套餐升级差价TP— 充值订单(见 充值)
在哪里看到
- 前台 → 我的订单:当前用户所有订单及状态
- 后台 → 订单:管理员视角,按状态 / 时间筛选
- 支付回调:第三方支付完成后通过订单号回调入账
关键字段(运维视角)
| 字段 | 含义 | 设置后影响 |
|---|---|---|
order_no | 订单号 | TB / UP / TP 前缀 + 时间戳 + 随机;修改会导致支付回调失败 |
user_id | 所属用户 | 关联到 User;删除用户级联删除订单 |
type | 类型 | 新订 / 升级 / 充值;决定后续计费逻辑 |
plan_id | 关联套餐 | 升级订单指向目标 Plan |
subscription_id | 关联订阅 | 套餐订单完成后激活的订阅 |
amount | 金额 | 实付金额(¥) |
status | 状态 | 未支付 / 已支付 / 已取消 / 已退款 |
pay_method | 支付方式 | 微信 / 支付宝 / 银行 / Mock;决定走哪个回调接口 |
订单生命周期
未支付 → (用户支付) → 已支付 → (系统激活订阅 / 充值) → 完成
↘ (用户取消 / 超时) → 已取消激活套餐的逻辑
订单「已支付」回调成功后,系统会:
- 创建 / 续期一条 Subscription
- 如是升级订单:把旧订阅的剩余额度按比例折算到新订阅
订单与套餐的激活是异步的,回调成功后几秒内生效。
退款
后台「订单」详情页可发起退款。退款会:
- 标记订单为「已退款」
- 把关联的订阅标记为「已取消」
- 已用额度不退还(按「已消费」处理)
相关页面
相关 API
POST /api/order/plan— 用户创建套餐订单GET /api/order/self— 当前用户的订单GET /api/order/— 列表(管理员)PUT /api/order/:id— 标记已支付(管理员)DELETE /api/order/:id— 删除(Root)