企业微信 qiwei callback 告警可执行修复线程
已确认
本地复核脚本仍显示 Qiwei.php 缺失,OpenAPI 中存在 GET /api/qiwei/callback 与 callbackQW。
不能直接改
store 当前工作区在 .archon/、agent-skills/、prompt/ 下存在大量既有删除状态,正式实现应新建独立 worktree。
缺口
仍缺企业微信后台截图、回调类型、业务 owner、Token、EncodingAESKey、SuiteId/CorpId 和测试环境确认。
决策路径
| 后台确认结果 | 动作 |
|---|---|
回调归属智慧食堂 store 且业务需要保留 | 补最小 GET URL 验证实现。 |
| 历史测试、错误域名、错误应用或无人说明用途 | 删除或改正企业微信后台配置,不改 store。 |
| URL 应指向其他服务 | 改后台 URL 到正确服务,store 保持不实现。 |
最小实现范围
- 新增
application/api/controller/Qiwei.php。 - 新增
application/api/service/QiweiCallback.php。 - 修改
application/route.php,显式注册api/qiweiGET 路由。 - 只处理 GET URL 验证;POST 事件回调另立任务。
- 真实 Token、EncodingAESKey、CorpSecret 不进入仓库、截图或任务索引。
建议 worktree
cd /Users/jack/code/010-cpt/008-zhct
git -C zhct/zhctproject/store fetch origin
git -C zhct/zhctproject/store worktree add \
worktrees/store-qiwei-callback-url-verify-20260525 \
-b codex/qiwei-callback-url-verify-20260525 origin/master
cd worktrees/store-qiwei-callback-url-verify-20260525
验证命令
cd /Users/jack/code/010-cpt/008-zhct/zhctprompt
STORE_REPO=/Users/jack/code/010-cpt/008-zhct/zhct/zhctproject/store \
./work_store/2026-05-16-qiwei-callback-alert-investigation/verify-qiwei-callback.sh
docker exec zhctapp_v2_0 sh -lc 'cd /workspace/wwwroot/zhct/project && /usr/local/php7.3/bin/php -l application/api/controller/Qiwei.php'
docker exec zhctapp_v2_0 sh -lc 'cd /workspace/wwwroot/zhct/project && /usr/local/php7.3/bin/php -l application/api/service/QiweiCallback.php'
docker exec zhctapp_v2_0 sh -lc 'cd /workspace/wwwroot/zhct/project && /usr/local/php7.3/bin/php -l application/route.php'
人工确认项
- 回调类型:服务商、企业应用、通讯录、客户联系、消息接收或其他。
- 当前 URL 是否精确为
https://zhctdev.yyangpt.cn/api/qiwei/callback或callbackQW。 - 域名是否确实归属智慧食堂
store。 - 应用名、AgentId、SuiteId、CorpId,公开材料只保留脱敏值。
- Token、EncodingAESKey 的部署配置来源。
- 是否只需要 GET URL 验证,还是需要 POST 事件业务。
不用实现时的后台下线
- 保存变更前后台配置截图和今天告警样例。
- 记录回调类型、应用名、脱敏标识、当前 URL、最近修改人和修改时间。
- 删除该回调 URL,或改为正确服务 URL。
- 观察 30 到 60 分钟。
- 只读检索生产日志/SLS,确认不再出现
app\\api\\controller\\Qiwei控制器不存在。 - 若相关企业微信功能异常,按截图恢复配置,并转入最小实现路径。
Review Checklist
- 后台管理员确认归属了吗?
- 后端负责人确认是否由
store承接了吗? - 密钥是否只进入部署配置,没有进入仓库和证据?
- 是否先在测试/预发 URL 验证,再进生产窗口?
- 不实现路径是否有 30 到 60 分钟告警观察结果?