docs(M05-D): 完成支付模块回归并推进设备

This commit is contained in:
Codex
2026-06-22 11:51:02 +08:00
parent 1680d734bf
commit a8c3e7d2fe
8 changed files with 66 additions and 10 deletions
@@ -0,0 +1,33 @@
# M05-D 分账和门店收款配置
- 日期:2026-06-22
- 起始 commit`52edf24`
- 工程 commit`1680d73`
- ENGINEERING_DELTA=YES
- 子阶段状态:DONE,工程 commit 已 push 且 `HEAD == origin/main`
## 工程增量
- 支持按租户、小程序和门店配置微信收款商户号、环境凭据引用、启用状态与分账授权状态。
- 分账接收方只保存 SHA-256、脱敏值和 `receiver:*` 环境引用。
- 支持全局/门店比例策略,同一范围比例总和不得超过 10000 bps。
- 只有成功且具有微信交易号的支付允许分账;未授权账户或接收方被拒绝。
- 分账批次使用 clientRequestId 幂等,每个支付/接收方有唯一约束。
- 接入微信支付 v3 `/v3/profitsharing/orders` 请求签名;API 失败记录 `MANUAL_REVIEW`,不伪造成功。
- Mock 分账仅非生产显式开启后可用,生产环境强制关闭。
- 后台 API 可维护账户、接收方、策略并查询账户、策略、脱敏接收方与分账明细。
## 验证
- Windows 全量测试及仓库门禁通过。
- WSL MySQL 8.4.9 临时库执行 `up → verify → down → up → verify` 通过。
- 迁移语句:up 89、verify 65、down 83。
- 实测未授权开启被拒绝、比例超限被拒绝、接收方不落明文、两接收方金额正确、重复批次不重复分账。
## 外部阻塞
缺微信支付服务商/分账权限和已授权接收方,真实分账标记 `BLOCKED_EXTERNAL`
## 模块回归与后续
M05-A/B/C/D Windows 全量回归与 WSL MySQL 全迁移往返通过。执行游标进入 M06-A:Broker 与 MQTT 基础。