ur48issues

This commit is contained in:
2026-07-23 12:46:13 +09:00
parent f8aa0933a5
commit 9eb49654f2
5 changed files with 112 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
# 01 — 接入支付配置并提供资产展示契约
**What to build:** C 端和后台可以使用同一份受控支付方式规则:卡、设备各自读取已注册的配置并在配置异常时回退安全默认值,资产信息稳定返回可展示的 `allowed_payment_methods`。后台配置接口所返回的信息足以驱动受控复选框钱包始终不可移除C 端不再维护资产类型支付规则副本。
**Blocked by:** `tech-public-foundation` 08 — 交付系统配置更新、权限和审计闭环外部前置链01 → 07 → 08
**Status:** ready-for-agent
**架构通道:** 主通道为 Query辅助通道为 Application。
**完整业务边界:** 本票收口 UR48 的两个支付配置 Key、支付方式解析/校验能力、配置异常安全默认及资产信息展示契约。明确不创建 `tb_system_config`、通用配置 API、缓存壳层或审计壳层这些均由公共基础拥有。
- [ ] 注册卡和设备的支付方式 Key限制值为唯一且包含钱包的 `wallet|wechat|alipay` 集合,并为非法、缺失或损坏配置定义安全默认及中文安全日志。
- [ ] `GET /api/c/v1/asset/info` 仅在完成资产解析和归属校验后返回稳定排序的 `allowed_payment_methods`;不存在、无权或未知资产类型不泄露配置。
- [ ] 后端与真实 PostgreSQL、Redis 的集成测试覆盖默认、自定义、缓存、缓存故障回退、配置异常、资产归属及 API 文档运行时契约。

View File

@@ -0,0 +1,16 @@
# 02 — 限制普通资产钱包充值方式
**What to build:** C 端用户为资产钱包充值时,服务只接受该资产当前允许集合与第三方充值方式的交集;钱包永远不会作为“给钱包充值”的渠道。没有可用第三方渠道或客户端伪造方式时,后端安全拒绝。
**Blocked by:** 01 — 接入支付配置并提供资产展示契约。
**Status:** ready-for-agent
**架构通道:** 复杂写(现有充值用例的最小完整边界)。
**完整业务边界:** 本票收口 C 端普通资产钱包充值的支付许可判定及接口交互结果。明确不修改代理、后台、线下、银行或其他充值流程,不复制另一套资产支付规则。
- [ ] 充值创建在资产解析、归属和现有金额/渠道/幂等校验后,以统一支付许可能力校验微信或支付宝;钱包和不允许方式均被拒绝。
- [ ] 接口返回和错误能让页面仅展示可充值第三方方式,并在交集为空时展示不可充值提示;不得通过页面隐藏代替服务端校验。
- [ ] Fiber、认证、GORM/PostgreSQL 与真实 Redis 集成测试覆盖卡/设备组合、空交集、伪造钱包方式、配置变更和既有充值幂等行为。

View File

@@ -0,0 +1,17 @@
# 03 — 创建套餐订单时确定支付方式与强充处理
**What to build:** C 端创建套餐订单时必须选择允许的支付方式,普通待支付订单保存不可变方式快照并返回给页面;需要强充时,微信或支付宝立即走对应支付流程,钱包强充明确拒绝且不留下订单、充值单或支付单。
**Blocked by:** 01 — 接入支付配置并提供资产展示契约。
**Status:** ready-for-agent
**架构通道:** 复杂写Order Domain/Application
**完整业务边界:** 本票收口 C 端套餐创建、支付方式快照、强充分流及创建幂等的完整写侧规则。明确不迁移后台订单、代理订单、线下支付或支付回调整体流程。
- [ ] `/api/c/v1/orders/create` 对所有套餐订单强制接收 `wallet|wechat|alipay`,在创建任何业务事实或调用第三方前按实际资产许可校验,并将普通订单方式持久化和返回。
- [ ] 强充微信要求合法应用类型并返回微信参数,强充支付宝返回支付链接;强充钱包或只剩钱包的配置均以中文业务错误拒绝且无残留事实。
- [ ] 同资产套餐已有待支付订单时,不同支付方式不能绕过既有冲突;请求摘要或 Redis 防重键正确区分支付方式,同时 PostgreSQL 仍为权威事实。
- [ ] 集成测试覆盖前端所需响应字段、普通两阶段流程、三种强充分支、提交前配置变化、幂等和 OpenAPI 契约。

View File

@@ -0,0 +1,16 @@
# 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 文档契约。