← 返回题目列表

小程序订阅消息和模板消息有什么区别?如何设计触达流程?

中等 第 20 / 32 题 更新于 2026/07/29
小程序订阅消息用户触达消息推送

简化版

订阅消息是用户主动授权后,小程序才能在满足场景时发送的服务通知;它强调一次授权一次发送或长期订阅能力,不能像普通广告一样随便推。设计时要把授权时机、消息类型、发送触发条件、失败兜底和用户体验一起考虑。

详细版

订阅消息常用于订单状态、预约提醒、审核结果、物流进度等服务场景。用户必须在明确操作中授权,服务端再根据业务事件调用接口发送。

设计要点:

  • 在用户最能理解价值的时机请求授权,例如提交预约后请求“到期提醒”。
  • 不要进页面就弹授权,容易被拒绝。
  • 前端只负责拉起授权和展示结果,服务端负责保存订阅状态和发送。
  • 消息内容必须符合模板字段和平台规范。
  • 发送失败要记录原因,例如用户未授权、次数耗尽、模板不匹配。

面试回答要强调:订阅消息不是营销推送工具,而是基于用户授权和服务事件的通知机制。

完整版教学

一、为什么小程序要用订阅消息

小程序不像 App 那样长期驻留,也不能随意后台推送通知。用户关闭小程序后,业务仍可能有状态变化,例如预约成功、审核完成、快递发货。订阅消息就是为这类“用户需要知道的服务结果”提供触达通道。

它的设计目标是克制打扰。平台要求用户明确授权,模板内容也要和具体服务相关。这样既保护用户体验,也防止开发者把服务通知变成广告轰炸。

用户操作 → 请求授权 → 业务事件发生 → 服务端发送 → 微信触达用户

二、订阅消息和旧模板消息的核心区别

早期模板消息更偏统一模板推送,后来订阅消息强化了用户主动订阅和场景限制。面试不必纠结历史细节,但要答出权限逻辑的变化:开发者不能默认拥有推送权,必须让用户在具体场景下授权。

维度订阅消息普通站内提示
是否可离开小程序触达可以不可以
是否需要用户授权需要不需要
内容约束强,必须匹配模板自由度高
适合场景订单、预约、审核结果页面内即时反馈
滥用风险平台限制较强只影响当前会话

如果面试官问“为什么不能直接发营销消息”,答案是平台从授权、模板、类目和频次上都限制了非服务型推送,强行绕规则会影响审核和用户信任。

三、授权时机比 API 调用更重要

订阅消息的前端 API 很简单,难点在于用户为什么愿意点允许。进首页就请求“请订阅消息”,用户没有上下文,大概率拒绝;提交预约后提示“预约前 10 分钟提醒你”,用户能理解收益,授权率会明显提升。

假设首页弹窗授权率只有 8%,提交成功页授权率有 45%。同样 10000 个用户,前者只有 800 个可触达,后者是 4500 个。技术实现一样,产品时机不同,效果差 5 倍以上。

wx.requestSubscribeMessage({
  tmplIds: ['TEMPLATE_ID'],
  success(res) {
    // res[TEMPLATE_ID] 可能是 'accept'、'reject' 或 'ban'
  }
})

四、服务端发送要绑定真实业务事件

前端授权成功不代表马上发送。更常见的流程是服务端记录用户、模板和业务单据之间的关系,等订单发货、审核完成、课程开播等事件发生时再发送。这样能避免“授权后立即发无意义消息”,也更符合平台对服务通知的定位。

服务端还要做幂等。比如物流状态回调可能重复推送 3 次,如果每次都调用发送接口,用户会收到重复消息。可以用 businessId + templateId + status 做唯一键,已发送过的状态不再重复触达。

订单发货事件
  ├─ 检查是否已授权
  ├─ 检查该状态是否已发送
  ├─ 组装模板字段
  └─ 调用微信接口并记录结果

五、失败处理要分类,不要只写发送失败

订阅消息失败原因很多:用户拒绝、模板 ID 错误、字段不合规、access_token 过期、服务端网络异常、用户已取消订阅。不同原因对应不同处理方式。只在日志里写“send fail”会让排查变得很痛苦。

可以按三类处理:用户侧不可达、配置侧错误、系统侧临时失败。用户侧通常不重试,配置侧需要报警,系统侧可以有限重试。这个分类能避免把拒绝授权当成异常,也能避免真正配置错误被海量日志淹没。

失败类型例子处理
用户侧拒绝授权、次数耗尽记录即可
配置侧模板字段不匹配报警并修配置
系统侧token 过期、网络超时刷新或重试

六、触达流程要兼顾隐私和体验

订阅消息涉及用户触达,不能只从“转化率”出发。文案要明确告诉用户订阅什么、什么时候发、有什么价值。不要用模糊的“开启通知获得更多服务”,这会让用户产生防备。

同时要减少重复打扰。用户拒绝后可以继续提供页面内提醒或短信等可选方案,但不应每次点击都强行弹授权。较好的做法是记录本次业务的授权结果,在关键节点给一次解释充分的机会。

易错点:订阅消息的难点不是调起弹窗,而是让授权、业务事件、模板内容和失败处理形成闭环。

七、常见误区与追问

  • 误区:用户点过允许后就能无限发送。 多数服务通知受授权次数、类型和平台规则约束,不能当作无限推送通道。
  • 误区:首页越早弹授权越好。 没有业务上下文时用户不理解价值,拒绝率通常更高。
  • 误区:前端授权成功就代表发送一定成功。 发送还依赖服务端 token、模板字段、用户状态和平台校验。
  • 追问:如何提升授权率? 在用户完成相关动作后说明具体收益,例如预约提醒、发货通知、审核结果。
  • 追问:发送失败要不要重试? 用户拒绝类不重试,网络和 token 类可有限重试,配置错误要报警。
  • 追问:订阅消息能做营销吗? 不应作为营销通道,内容必须符合服务场景和模板规范。

八、加强记忆

订阅消息用“场景授权、事件触发、模板发送、结果闭环”来记。前端负责在合适时机请求授权,服务端负责和真实业务事件绑定,发送结果要分类记录,用户拒绝也要有体验兜底。面试时把它从一个 API 扩展成一条触达链路,回答就会明显更完整。