
微信机器人 webhook 是通道把事件推到你服务器的那条 HTTP。接不好会出现漏消息、重复回复、伪造回调打进 CRM。这篇只讲 webhook 工程不展开话术。Webhook 在链路里的位置微信实例收到消息 → 通道组装 JSON → POST 你的 webhook → 你鉴权、落库、入队 → 返回 2xx → 队列里再走机器人和发送Webhook 不是机器人本身。它只保证事件真实、到达一次、可追溯。业务越重越不该写在 webhook 里。个人号没有官方订阅接口webhook 一般由 RPA 通道提供。用GeWe API时先配回调 URL再按文档核对请求头和报文不要对着抓包猜字段。URL 与安全要求HTTPS证书有效独立路径例如/hooks/wechat/{env}校验Header token、URL query token、签名至少一种管理后台登录态不要复用到 webhook生产、测试用不同 URL 和不同 token。测试群里随手把生产 webhook 填进去是事故。若通道支持签名验签必须用原始 body 字节先JSON.parse再签会失败或被绕过。Express / Koa / Spring 都要保留 raw。状态码和重试通道通常按 HTTP 状态决定是否重试401 / 403不要重试你应告警“密钥错了”200成功即使业务还没回复客户429 / 5xx会重试所以处理必须幂等超时也会重试因此 webhook 要在几秒内返回 200。查库存、调模型、发微信全部异步。返回慢客户就会收到两句一样的话——那是重试不是规则写了两次。幂等联合键不要单靠 msgid幂等键 实例ID msgid多开时不同实例可能出现相近 ID。短窗口内例如 24 小时重复到达直接 200 并丢弃业务。落库顺序建议鉴权解析出幂等键插入成功才入队插入冲突视为重复不要“先处理再记 msgid”进程在中间挂了会双发。报文要原样存至少存到达时间、实例 ID、msgid、类型、原始 JSON、处理状态。客服说“没回”时先看 webhook 有没有到达再看队列有没有消费最后看发送回执。三层日志比加词库更能定位。字段和事件枚举以通道文档为准。GeWe API的回调模块一般会给出示例报文对接时把示例放进测试用例GeWe API - GeWe API微信 API 开发文档多账号与路由一个 webhook 可以收多个实例靠报文里的实例 ID 分流。不要为每个微信号申请一个路径难运维但可以按环境拆。掉线、登录成功也建议走 webhook 或同等事件。只收聊天、不收在线变化发送层会在已掉线时继续“成功入队”。本地怎么测内网穿透固定域名用通道提供的测试推送或把一条真实报文重放到预发故意返回 500确认对方会重试且你只处理一次故意错 token确认 401 且无入库小结微信机器人 webhook 要解决验签、快速 200、幂等和原样落库。业务放队列。个人号通道用GeWe API时把回调 URL 和签名方式按文档配齐网关就可以稳定给后面的客服和运营引擎供数。Webhook 稳了机器人的输入才存在。