Q01 · 后端 P0 缺口深验总包(WIP-318 · 小齐 R9+R10)

版本:v1.0|执行:小齐|时间:2026-09-14 00:0x|基线 HEAD:9b88ece9
依据设计文档:docs/reports/gpt6-评审-2026-09-13/03-波波小齐苦力活长线包设计.md(14 要素 / 12 字段证据 / P0-P3 分级)
证据原件:docs/delivery/evidence/verify/318/(本文件 + 扫描输出)

1. 包名称与目标

Q01「后端 P0 缺口深验总包」。目标:对设计文档 §1.2 的十类 P0 缺口(①~⑩)做接口、字段、错误、权限、状态的覆盖核验,产出测试矩阵、执行记录与缺陷单;不修改任何核心代码,缺陷一律回原包。

2. 本次覆盖范围

十域全覆盖扫描 + 两个高风险点的源码级与行为级核验:

3. 明确不覆盖范围

4. 涉及接口/文件/文档边界

5. 字段定义

字段含义取值口径
域P0 十类缺口编号设计文档 §1.2
端点数该域匹配到的实现端点数路由装饰器解析
有鉴权依赖处理器中出现 Depends(<鉴权函数>)静态解析
有错误码处理器中出现 HTTPException(<码>静态解析
涉金额出现 total_fen/amount/price_fen 等静态解析
覆盖判定端点存在≠语义正确,仅做缺口提示—

6. 成功路径

扫描器 docs/tools/verify_p0_coverage.py --selftest 通过 → 全量扫描出矩阵 → 对高风险点做源码核验与非破坏性探针 → 缺陷单按 P0-P3 分级。

7. 异常路径

8. 幂等与重复请求规则

扫描器为只读操作,可重复执行;证据文件按包版本落盘,重复执行覆盖同名文件(v1.0 → v1.1 递增)。

9. 权限与审计要求

10. 与现有实现的差异

项宣称/注释实测
支付回调文档字符串称「真实模式:验签后写库」代码中无验签
/me/assets-overview注释称「登录用户由前端传 token 携带 user 信息」函数签名无 user 参数,恒返回零态

11. 依赖与阻塞项

12. 待核心席确认事项

  1. 支付回调无验签是否为"沙箱阶段有意省略"?若线上启用必须补验签(建议 P0 阻断)
  2. /me/assets-overview 零态是否为有意占位?若是,需前端同步按占位处理、不得当作真实数据

13. 验收证据

13.1 十域覆盖矩阵(机器扫描,401 个实现端点)

域端点数有鉴权有错误码涉金额覆盖判定
① 支付域1413137⚠️ 部分端点无鉴权依赖
② 库存/排期/可售5301⚠️ 无显式错误码
③ 商户入驻资料5446348⚠️ 部分端点无鉴权依赖
④ 退款/结算1414134✅ 端点/鉴权/错误码在位
⑤ 消息域101010✅ 在位(错误码偏少)
⑥ 核销码9985✅ 端点/鉴权/错误码在位
⑦ 用户账户隐私8071409⚠️ 部分端点无鉴权依赖
⑧ 审计日志9661⚠️ 部分端点无鉴权依赖
⑨ 搜索/聚合23963⚠️ 部分端点无鉴权依赖(多为公开读)
⑩ 错误契约/角色1181176712⚠️ 部分端点无鉴权依赖

补充:契约 356 vs 实现 399、对齐 345 ⇒ 契约漂移仍在(仅契约 11 / 仅实现 54 量级),归 B01(波波)。

13.2 缺陷单

🔴 Q01-D01|支付回调无鉴权、无验签(P0 阻断 · 资金)

curl -s -X POST http://100.64.1.230:8089/api/miniapp/pay/notify -H "Content-Type: application/json" -d '{"out_trade_no":"PROBE_NOT_EXIST_001","status":"SUCCESS"}'

🟠 Q01-D02|/me/assets-overview 恒返回零态(P1 严重)

🟡 Q01-D03|契约与实现漂移(P2 一般)

⚪ 观察项(不记缺陷)

14. 版本号与变更摘要