公众号模板消息与订阅通知
公众号模板消息与公众号订阅通知是两套独立能力。运营人员必须先确认业务使用哪一种。
能力对比
| 项目 | 模板消息 | 订阅通知 |
|---|---|---|
| 模板来源 | 微信公众平台模板库短 ID | 后台可查询类目、公共标题和关键词 |
| 用户授权 | 依公众号模板消息规则 | 用户通过 wx-open-subscribe 明确订阅 |
| 页面 | 公众号模板消息/统一消息中心 | 独立“公众号订阅通知”工作台 |
| 发送记录 | 正式任务进入统一消息中心 | 独立发送记录并接收异步回调 |
| 模板 ID | 不能混用 | 不能混用 |
公众号模板消息
为什么不能像小程序一样浏览全部模板
微信为普通公众号模板消息提供按公共模板短 ID 添加和查询账号已添加模板的接口,但没有提供后台可直接浏览全部公共模板标题的列表接口。因此:
- 在微信公众平台查看模板库并取得短 ID。
- 在后台模板库弹窗输入短 ID,添加到当前公众号。
- 添加成功后同步到本地模板配置。
- 使用单用户试发验证字段。
- 正式发送进入统一消息中心。
如果模板库没有合适模板,仍需在微信公众平台提交申请。
公众号订阅通知
独立工作台包含模板、订阅用户、发送记录和落地页。
模板管理
- 选择公众号。
- 查询公众号所属服务类目。
- 浏览公共模板标题。
- 选择关键词并填写必填服务场景。
- 添加模板到微信。
- 刷新当前账号模板列表。
服务场景是微信模板申请字段,不能为空,并受微信长度限制。
用户订阅
业务 H5 或图文页面使用 wx-open-subscribe 开放标签拉起订阅:
- 页面完成公众号 JS-SDK 初始化。
- 公众号配置正确的 JS 接口安全域名。
- 使用当前公众号模板 ID 渲染开放标签。
- 用户接受或拒绝后,微信发送订阅状态事件。
- 后台更新模板与 OpenID 对应的最新授权状态。
只有状态为 accept 的用户才能发送对应模板。
落地页
通用落地页用于承载通知点击后的内容:
- 可维护业务标题、正文和启停状态。
- 发送时选择启用的落地页。
- 落地页链接必须是外网 HTTPS,并完成公众号网页授权或安全域名配置。
发送与回执
发送接口受理后记录微信消息 ID;最终结果通过 subscribe_msg_sent_event 更新。订阅和退订通过 subscribe_msg_popup_event、subscribe_msg_change_event 更新。
回调地址不可达时,发送动作可能成功,但后台授权和最终结果不会更新。
权限
| 能力 | 权限 |
|---|---|
| 模板消息试发 | wxmp:wxtemplatemsg:send |
| 订阅通知查看 | wxmp:wxsubscribe:index |
| 订阅模板和落地页 | wxmp:wxsubscribe:template |
| 订阅通知发送 | wxmp:wxsubscribe:send |
统一消息中心的模板同步和模板库管理还需要 wx:wxmessage:sync。
验收
- 模板消息短 ID 能成功添加并同步。
- 订阅通知可从类目和公共模板直接添加。
- H5 真机能拉起开放标签。
- 接受/拒绝后授权状态更新。
- 只允许向已接受对应模板的用户发送。
- 发送记录能看到接口受理和异步结果。