Files
junhong_cmp_fiber/.scratch/ur37-wecom-approval-foundation/issues/07-encrypted-callback-and-authoritative-sync.md
2026-07-22 16:58:26 +09:00

23 lines
2.1 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.
# 07 — 接入加密回调与权威详情同步
**What to build:** 企业微信可以完成审批回调 URL 校验并推送加密事件;系统验签、解密和核对企业身份后快速记录回调并触发统一同步,最终始终以 `getapprovaldetail` 保存审批状态、审批人、意见、附件元数据和时间线。
**Blocked by:**
- 05 — 完成附件上传与企微异步提交闭环
- `.scratch/tech-global-audit/issues/02-integration-log-attempt-loop.md` — 02 — 交付可恢复的 Integration Log 尝试闭环
- `.scratch/tech-public-foundation/issues/10-sensitive-route-safe-summaries.md` — 10 — 为敏感接口提供安全摘要策略
**Status:** ready-for-agent
**架构通道:** 主通道为复杂写 Application + Domain回调协议和企微详情位于 Infrastructure Adapter。
**完整业务边界:** 本票收口回调协议、安全入站记录和单实例权威状态同步。明确不实现批量轮询,不消费退款或充值终态,不把回调载荷中的状态当成业务权威。
- [ ] GET 回调按企微协议完成 URL 校验POST 回调校验 SHA1 签名、AES-CBC 解密并核对 `receiveID=CorpID`,错误签名、密文或企业身份安全拒绝。
- [ ] 入站回调先保存脱敏 Integration Log 与幂等标识只记录事件类型、安全资源标识、大小、哈希和结果不记录密文、明文、签名、Nonce 或密钥。
- [ ] 有效回调快速触发统一 `SyncApprovalStatus` 并按企微约定响应;重复事件、乱序事件和同步任务重复投递不直接改写状态。
- [ ] 同步用例调用 `getapprovaldetail` 作为唯一权威,保存审批详情、审批人名称快照、意见、附件元数据、时间线和最后同步时间。
- [ ] 审批实例以乐观锁和合法状态转换更新;详情未变化时只更新必要轮询事实,不产生第二个等价业务事件。
- [ ] 真实 Fiber 回调测试使用测试 Token/AES Key 构造签名密文,覆盖 URL 校验、签名/解密/CorpID 错误、重复事件、快速响应和权威同步;新增 Handler 同步路由、RouteSpec 和两个 OpenAPI 文档生成器。