微信公众号(WeChat)接入教程:配置认证服务号凭据、服务器回调地址与 IP 白名单
微信通道连接一个微信公众号(Official Account),关注者发来的消息会与其他渠道一起进入团队收件箱。微信是触达中国大陆客户的必备渠道;它运行与 WAthink 其余部分相同的自动回复、流程、AI 助手和广播,此外还有微信自带的自定义菜单和模板消息。
整理于 WAthink 万智客
实际入口、可用参数与操作权限,请结合所用版本、套餐及已启用模块核对。
本篇内容
概览
微信通道连接一个微信公众号(Official Account),关注者发来的消息会与其他渠道一起进入团队收件箱。微信是触达中国大陆客户的必备渠道;它运行与 WAthink 其余部分相同的自动回复、流程、AI 助手和广播,此外还有微信自带的自定义菜单和模板消息。
微信是设置最严格的渠道。注册需要已认证的企业主体,而且部分能力(客服消息、模板消息、群发)仅对认证服务号开放。开始前请先阅读账户类型 — 选错类型是微信落地停滞最常见的原因。
账户类型 — 选对类型
| 类型 | 你能获得什么 |
|---|---|
| 订阅号(Subscription Account) | 归入订阅号文件夹,适合内容发布。没有客服消息 API — 双向聊天无法工作。 |
| 服务号(未认证) | 显示在主会话列表中,但消息 API 在完成认证前保持锁定。 |
| 服务号(已认证) | 你需要的就是它。完整的消息 API:48 小时窗口内的客服回复、模板消息、自定义菜单和群发。 |
认证是腾讯每年一次的付费审核,需要营业执照。境外主体可以通过微信的国际流程注册面向中国的账号,不过具体要求因地区而异。
通道工作方式
- 微信以 XML over HTTP 将入站事件推送到你的服务器 — 不是大多数平台使用的 JSON。
- 你的服务器通过 access token 向微信认证;WAthink 根据你的 AppID 与 AppSecret 获取该 token,并在过期前自动刷新。
- 入站投递用你选定的 Token 校验,并在安全模式下用 EncodingAESKey 解密。
- 用户通过关注你的公众号(通常是扫描其二维码)来联系你。
注册与获取凭据
这四个值都来自微信公众平台。步骤如下:
- 注册账号。前往 mp.weixin.qq.com 注册服务号,然后完成认证。(境外申请者从 admin.wechat.com 开始。)
- 打开基本配置。登录控制台,前往设置与开发 → 基本配置。
- 复制 AppID。它显示为开发者 ID(AppID)。
- 生成 AppSecret。在开发者密码(AppSecret)旁点击生成 / 重置。它只显示一次 — 请立即复制。
- 自行设定 Token。在服务器配置区块中自拟一个 Token — 任意 3–32 位字母数字字符串。它是微信与 WAthink 之间的共享密码;两端需要填入相同的值。
- 生成 EncodingAESKey。点击随机生成生成 43 位密钥,并将消息加解密方式设为安全模式 — 推荐使用,WAthink 支持该模式。
- 将服务器 IP 加入白名单。在安全中心 → IP 白名单中添加 WAthink 服务器的公网 IP 地址。微信会拒绝来自其他任何地址的 API 调用。
AppSecret 只会显示一次。如果丢失,你必须重置它;重置会立即作废旧值,在你把新值粘贴到 WAthink 之前,任何在线集成都将短暂中断。
在 WAthink 中连接
- 打开微信页面 — 菜单中的渠道 → 微信。
- 粘贴四个值 — AppID、AppSecret、Token 与 EncodingAESKey — 然后保存。
- 复制服务器 URL,即 WAthink 显示给你的地址,形如
https://your-domain.com/api/wechat/inbound/<token>。 - 把它粘贴到微信。回到基本配置 → 服务器配置,将服务器地址(URL)设为该值,填入相同的 Token,粘贴 EncodingAESKey,选择安全模式,然后点击提交。微信会立即调用该 URL 进行验证 — WAthink 会自动应答 echo。
- 启用服务器。提交成功后,在服务器配置区块点击启用。
- 测试。用微信 App 关注你的公众号,给它发一条消息,观察它是否到达团队收件箱。
顺序很重要。先在 WAthink 中保存,然后再到微信提交。微信在你点击提交的那一刻就会验证 URL,只有 WAthink 已经知道 Token 时才能成功。
API 限制与规则
| 规则 | 含义 |
|---|---|
| 48 小时服务窗口 | 用户最后一条消息之后的 48 小时内,你可以发送自由形式的客服回复。超过之后只允许模板消息。WAthink 会在会话上显示剩余的窗口时间。 |
| 模板消息 | 在窗口之外给关注者发消息的唯一方式。模板从微信模板库中选择或申请,并经腾讯审核后才能使用。 |
| 群发限制 | 认证服务号每月可向全部关注者群发约 4 次。这是微信平台规则,不是 WAthink 的限制 — 请规划好发送。 |
| 必须已关注 | 你不能给未关注公众号的人发消息,没有冷启动外呼。 |
| IP 白名单 | API 调用只能来自白名单内的 IP。如果服务器迁移或新增节点,请更新白名单,否则每次发送都会失败。 |
| Access token 共用 | 微信每个账号只签发一个 access token。运行其他自行获取 token 的工具会使 WAthink 的 token 失效,并导致间歇性故障。 |
使用收件箱
- 每个关注者一个会话。每个给公众号发消息的微信用户都会有一个包含昵称和头像的会话。
- 媒体。图片、语音、视频、文件和位置消息均可内联显示。
- 窗口倒计时。会话会显示 48 小时服务窗口还剩多少时间,让客服知道自由形式的回复是否还能送达。
自定义菜单
自定义菜单是公众号聊天底部的菜单栏,最多三个一级菜单、每个一级菜单最多五个子菜单。在渠道 → 微信 → 菜单中创建,为每个条目指向一条回复、一个 URL 或一个流程,然后发布。微信可能需要几分钟才能显示菜单变更,用户可能需取消关注后重新关注才能立即看到。
自动回复、流程与 AI
微信广播
广播编辑器使用微信的群发 API 触达全部关注者,或按标签筛选的子集。由于微信将群发限制为每月约四次,WAthink 的编辑器会考虑这一限制 — 请把每次群发当作一封通讯,而不是例行推送。在 48 小时窗口之外向单个用户发送消息,必须改用已审核的模板消息。
故障排查
| 现象 | 原因与解决方法 |
|---|---|
| 提交时提示“Token 校验失败” | 微信与 WAthink 中的 Token 不一致、URL 有拼写错误,或你在 WAthink 保存之前就提交了。先在 WAthink 保存,再重新提交。 |
| URL 无法访问 | 微信要求服务器可通过公网在 80/443 端口访问。使用 IP 地址、非标准端口或不可达的主机都会失败。 |
| 发送失败并报 IP 错误(40164) | 你的服务器 IP 不在微信IP 白名单中。请在安全中心添加。 |
| 间歇性“invalid credential”(40001) | 有另一个系统在为同一 AppID 获取 access token,使 WAthink 的失效。每个公众号只保留一个集成。 |
| 双向聊天没有反应 | 你使用的是订阅号,或未认证的服务号。消息 API 需要认证服务号。 |
| 一天后回复被拒绝 | 48 小时服务窗口已关闭。请使用已审核的模板消息。 |
仍需进一步帮助?查看反馈与支持方式