17 lines
1.6 KiB
Markdown
17 lines
1.6 KiB
Markdown
# 04 — 按订单快照支付、取消并重新创建
|
||
|
||
**What to build:** C 端用户只能按创建订单时保存的支付方式执行支付;方式后来被禁用时,用户可安全取消自己的待支付订单并重新创建,而不能在旧订单上换方式。支付与取消并发时只会有一个终态成功。
|
||
|
||
**Blocked by:** 01 — 接入支付配置并提供资产展示契约;03 — 创建套餐订单时确定支付方式与强充处理。
|
||
|
||
**Status:** ready-for-agent
|
||
|
||
**架构通道:** 复杂写(Order Domain/Application)。
|
||
|
||
**完整业务边界:** 本票收口 C 端套餐订单的快照支付、二次许可校验、主动取消和取消后重建规则。明确不调整自动取消任务、支付回调或其他订单类型的状态机,只保证它们不改写支付方式快照。
|
||
|
||
- [ ] `/api/c/v1/orders/{id}/pay` 从订单读取方式快照并在支付前重读最新许可;过渡字段仅可与快照完全一致,不一致返回冲突且不能覆盖快照。
|
||
- [ ] 新增 C 端取消接口,仅允许本人取消待支付套餐订单;使用条件更新实现与支付并发互斥,重复取消幂等返回当前状态,并复用既有资源释放和支付记录作废逻辑。
|
||
- [ ] 订单详情和支付响应返回前端展示所需的固定支付方式;方式禁用时返回可引导“取消后重新创建”的中文安全错误,不自动降级或换渠道。
|
||
- [ ] 真实 Fiber、认证、GORM/PostgreSQL、Redis 集成测试覆盖快照不可变、微信附加参数、禁用后拒绝、跨方式支付记录不复用、取消权限/幂等/并发及 API 文档契约。
|