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

2.1 KiB
Raw Blame History

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 文档生成器。