# 提示词:企业微信 / H5 / 存档通道 你负责所有「人进出系统」的通道,不负责工单六态和 TMS 签名。解析、验签、outbox、H5 token:**详细中文注释**(字段从哪来、为何快回、为何不用企微换 ID)。见 `05`。 ## 入站来源 1. 应用回调(明文/密文 XML 或 JSON):挂在**智能体唯一 HTTP**(现网 8811,新系统不再单独端口)。文字、图片、文件、模板卡点击、进入会话。验签失败不入队。 2. 群机器人:现网 8812 **默认不实现**(生产群机器人 Token 为空、走 AIBOT)。产品未书面要求不要加端口。 3. AIBOT 长连接:独立 Node(或等价)进程听微信,转给智能体,**桥上无业务状态**,8813 仅回环。 4. 微盛 Archive:由**后台 Worker** 轮询群消息与附件、限速下载,不要堵 HTTP 回调。 测试与正式 H5 同一地址:`https://ai.ytd-scm.com/inquiry-form`。切流前公网仍进现网进程,见 `13`。 归一成内部 `InboundMessage`:tenant、org、sender_id、chat_id、chat_type、message_id、content、media、agent_id、create_time、raw。 ## 企微身份(sender_id) 聊天进来 **不要再调企微接口去「获取用户 ID」**。回调 XML 的 `FromUserName`、AIBOT JSON 的发送人字段,解析后写入 `sender_id` 即可。 - `sender_id` 为空:不入业务队列,不建单、不回业务话术。 - 私聊回复、模板卡 `touser`、工单销售 owner、卡片操作人、幂等键,都用 **同一条入站里的** `sender_id`。 - 角色(销售/产品/运营)用这个 id **查主账人员表**,不是再向企微换一次 ID。 - 群:`chat_id` + 发言人 `sender_id`;建群、拉人、@ 用报文里已有的 id。 - H5 URL **禁止**带 userid / 工单号;身份在 clarification token 服务端绑定。 - 通讯录同步、`user/get` 只为姓名部门展示,**不得挡**询价主路径。缺展示名可以用 userid 先跑业务。 `message_id` 全局去重。卡片 token 一次性、TTL、绑定 thread_id + waitVersion + 允许动作集合。inbox 按条认领处理,不要靠 Worker 进程级 Redis 单例。 回调必须快回(企微有超时)。验签写入 inbox 即返回;业务、模型、Graph 在其它线程消费。Archive 轮询在 Worker 槽,不占回调。禁止回调线程同步等 LLM / PDF。 ## 出站 唯一出口:outbox → 企微 API。 能力:文本、模板卡、文件、创建群、拉人、发到指定 chat。**询价应用与正式相同 `1000010`**。运维通知 **`1000014`**。测试告警正文带 `[test]`。并存期不要改该应用回调、不要重置 Secret。 速率限制、重试、max age(过期不发)。Archive 席用户进群但不 @、不当报价人。 ## 配置 对齐 `WECOM_*`、`WSHOTO_*`、`WECOM_AIBOT_*`、`INQUIRY_FORM_PUBLIC_BASE_URL`。明文见 `03`。CorpId `ww9c044d4227b7e574`。测试环境域名与企微 **抄正式同一套**(含 `1000010` 与 `https://ai.ytd-scm.com/wecom/callback`)。不要新建应用。 ## H5 - HTTPS 公网。 - URL 不含工单号、userid。 - 字段列表由服务端按当前激活合同生成,提交后走与卡片相同的 clarification 动作。 - 打开表单失败要有明确过期文案,禁止把内部异常吐给销售。 ## 安全 EncodingAESKey、Callback Token、应用 Secret 只在服务器环境。回调验签失败返回错误,不入业务队列。 ## 验收 用测试企业或沙箱:私聊一条完整海运 → 收到补问或报价卡;点卡不重复执行;H5 token 用一次后失效。未经授权禁止对生产客户群发。