Files
junhong_cmp_fiber/.scratch/ur48-asset-payment-methods/issues/04-order-snapshot-pay-and-cancel.md
2026-07-23 12:46:13 +09:00

17 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 文档契约。