Files
junhong_cmp_fiber/.scratch/ur40-off-shelf-package-renewal/issues/07-renew-only-audit-events.md
2026-07-22 17:49:25 +09:00

2.2 KiB
Raw Blame History

07 — 接入下架续费成功与拒绝审计

What to build: 下架续费订单成功创建后,审计人员可以通过统一 Audit Event 追踪购买模式、资产、世代、套餐、渠道和历史资格摘要;构造请求因资格、归属或渠道事实被拒绝时,也能看到稳定失败原因,且审计中不包含客户敏感明细。

Blocked by:

  • 05 — C 端创建订单按写时事实完成下架续费
  • 06 — 封堵后台代购与自动购包的下架绕过
  • .scratch/tech-global-audit/issues/01-audit-event-write-loop.md — 01 — 交付不可变 Audit Event 写入闭环

Status: ready-for-agent

架构通道: Application + Audit Port/Adapter。

完整业务边界: 本票只把 UR#40 的成功 renew_only 决策和被拒绝的构造购买请求接入公共 Audit Event不创建独立续费日志表不迁移套餐上下架、普通订单或其他旧审计日志不用审计替代订单和套餐使用业务事实。

  • 成功创建下架续费订单时写统一成功事件,至少记录 purchase_mode=renew_only、资产类型与 ID、当前 generation、套餐 ID、平台或代理销售渠道、订单引用及命中历史资格的脱敏摘要。
  • 成功事件与订单事实遵循公共 Audit Writer 的事务契约;审计失败时不得留下缺失必需审计的错误成功事实。
  • 归属伪造、跨资产/跨世代历史、下架非个人购买、套餐禁用、渠道未授权、退款失效及价格异常等拒绝结果,按公共失败审计规则使用独立短事务保存稳定动作、结果和业务失败分类。
  • 审计资源能够串联客户购买动作、资产、套餐、订单及销售渠道但不记录手机号、OpenID、完整请求体、历史订单金额、底层错误或其他客户敏感明细。
  • 普通 normal 购买沿用现有审计语义,不因本票被重复记录为下架续费;后台与自动购包拒绝事件能够明确表明其 operation context 不具备历史续费例外。
  • PostgreSQL 集成测试覆盖成功事务一致性、业务回滚、拒绝事件独立落库、重复请求、脱敏与资源关联,并验证审计失败策略符合公共契约。