# 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 文档契约。
