新闻
NEWS
小程序怎么实现推送功能?模板消息 / 订阅消息配置方法?
  • 来源: 小程序开发:www.wsjz.net
  • 时间:2026-01-06 09:46
  • 阅读:34

小程序的推送功能,简单说就是能主动给用户发消息提醒,比如订单状态变更、活动通知、服务提醒这些,既能帮用户及时获取关键信息,也能提升小程序的用户粘性。不过很多人搞不清楚推送功能怎么实现,尤其是模板消息和订阅消息的区别和配置方法。这里先明确一个关键:现在模板消息已经逐步被订阅消息替代了,新开发优先做订阅消息,模板消息仅针对老项目兼容。下面就用大白话,把这两种消息的实现逻辑和配置步骤讲明白,全程避开专业术语的坑。

一、先搞懂核心:推送功能的基本逻辑

不管是模板消息还是订阅消息,实现推送的核心逻辑都一样,简单说就是“三步走”:第一步,得有小程序账号和后台服务,这是推送的基础;第二步,要让用户同意接收消息(也就是授权),不然没法主动发;第三步,通过官方接口把消息组装好,发送给用户。

这里要强调两个关键前提:一是必须有服务器或者用官方提供的云服务,因为推送消息需要后台代码调用接口,不能只靠小程序前端;二是要配置好域名白名单(如果是自建服务器),确保小程序能正常和服务器、官方接口通信,不然消息发不出去。就像寄快递,得有寄件地址(服务器)、收件人同意收件(用户授权),还要走正规快递通道(官方接口),少一步都不行。

二、老项目兼容:模板消息配置方法

模板消息是早期的推送方式,现在官方已经不推荐新用了,但很多老小程序还在使用,这里简单说下配置步骤,重点讲清楚注意事项,避免踩坑。

1. 第一步:在小程序后台申请模板

首先登录小程序官方后台,找到“模板消息”相关模块(不同平台入口可能略有差异),然后根据自己的业务场景选择模板,比如“订单支付成功通知”“预约提醒”等。如果没有合适的现成模板,可以申请自定义模板,填写模板标题、内容字段(比如订单号、时间、金额),提交后等待审核,审核通过后就能拿到一个唯一的“模板ID”,这个ID很关键,后续发送消息要用到。

这里要注意:模板消息的内容必须和业务场景匹配,不能乱申请,比如做电商的不能申请教育类的模板,审核会不通过;而且模板里的字段是固定的,后续发送消息时只能填充对应字段的内容,不能随意加无关信息。

2. 第二步:获取用户标识和触发场景

要给用户发模板消息,必须知道用户的唯一标识(也就是OpenID),这个可以通过小程序前端代码获取,用户登录小程序时就能拿到,拿到后要存到后台数据库里。

另外,模板消息有个严格要求:必须有用户触发的场景,比如用户完成支付、提交表单、点击按钮后,才能发送对应的模板消息,不能无理由主动发。比如用户下单后,才能发“订单提交成功”的模板消息,不能用户没操作就发广告,不然会被官方限制。

3. 第三步:后台组装消息,调用接口发送

这一步需要后台开发人员写代码,核心是“组装消息内容+调用官方接口”。首先,根据之前拿到的模板ID,把对应的字段内容填好,比如模板里有“订单号”“支付时间”“金额”,就从数据库里把这些数据取出来,按照模板要求的格式组装好。

然后,调用官方提供的模板消息发送接口,传入模板ID、用户OpenID、组装好的消息内容,还有点击消息后跳转的小程序页面路径(可选)。调用接口后,官方会返回发送结果,如果返回成功,用户就能在消息列表里收到通知了;如果失败,会返回错误码,比如“模板ID错误”“用户未授权”,根据错误码排查问题就行。

4. 关键注意事项

模板消息的限制很多,重点注意这几点:一是发送频率有限制,不能频繁发,不然会被限流;二是必须有用户触发场景,无场景发送会被处罚;三是只能用于通知类消息,不能发广告、营销类内容;四是新小程序现在已经无法申请新的模板消息了,只能用订阅消息,所以老项目如果有条件,建议升级成订阅消息。

三、新项目首选:订阅消息配置方法(详细步骤)

订阅消息是现在官方推荐的推送方式,比模板消息灵活,限制也更合理,支持一次性订阅和长期订阅(部分类目支持),下面详细拆解配置步骤,从准备工作到最终发送,一步一步讲清楚。

1. 准备工作:账号、服务器和权限配置

首先,确保已经完成小程序账号注册和认证,拿到AppID和AppSecret(在后台“开发设置”里找),这两个是调用官方接口的“钥匙”,要妥善保存。然后,准备好服务器(自建或云服务),如果是自建服务器,要在小程序后台配置好服务器域名白名单,把官方接口域名和自己的服务器域名加进去,不然接口调用会失败。

如果用官方云开发,就不用自己配置服务器和域名了,直接用云函数调用接口就行,更简单,适合不懂后台开发的新手。

2. 第一步:申请订阅消息模板

登录小程序官方后台,找到“订阅消息”模块,选择“公共模板库”,根据业务场景筛选模板,比如“服务预约提醒”“物流状态通知”“活动开始提醒”等。选中模板后,勾选需要的字段(比如预约时间、服务内容、地点),提交后就能拿到“模板ID”,和模板消息一样,这个ID是后续发送消息的关键。

如果公共模板库没有合适的,可以申请“自定义模板”,填写模板标题、字段名称、字段类型(文本、数字、日期等),提交审核,审核通过后就能使用。这里要注意:自定义模板的审核比较严格,字段要和业务相关,不能冗余,比如没必要的字段不要加,不然会审核不通过。

3. 第二步:前端实现用户授权(核心步骤)

订阅消息的核心要求是“用户主动同意”,所以必须在小程序前端加一个授权按钮,让用户点击后弹出授权弹窗,用户选择“允许”后,才能后续发送消息。不能默认授权,也不能诱导用户同意,不然会被官方处罚。

具体操作:在小程序的某个页面(比如下单页、预约页)添加一个按钮,绑定点击事件,点击后调用官方提供的授权接口(比如wx.requestSubscribeMessage),传入之前拿到的模板ID。这时会弹出弹窗,让用户选择“允许”或“拒绝”;如果用户勾选“总是保持以上选择,不再询问”,后续再调用授权接口就不会再弹窗,保持之前的选择。

用户授权后,前端要把授权结果(同意或拒绝)和用户的OpenID一起传到后台,后台把这些信息存到数据库里,后续发送消息时要先判断用户是否授权,只有授权过的才能发。这里要注意:每次发送不同类型的消息,都需要对应的模板授权,比如发“订单提醒”和“活动通知”,需要用户分别授权两个模板。

4. 第三步:后台组装消息并发送

这一步和模板消息类似,但接口不同,需要后台调用订阅消息的发送接口。首先,从数据库里取出用户的OpenID、对应的模板ID,然后根据模板的字段要求,组装消息内容,比如模板字段是“活动名称”“开始时间”“地点”,就把对应的信息填进去,确保字段名称和模板里的一致,不然会显示异常。

然后,调用官方订阅消息发送接口,传入模板ID、用户OpenID、消息内容、跳转页面路径(可选)等参数。调用后,官方会返回发送结果,0表示成功,其他错误码表示失败,比如“用户未授权”“模板ID错误”“消息字段不匹配”等,根据错误码排查问题即可。

这里要注意:订阅消息有发送频率限制,比如开通支付功能的小程序每天最多发300万条,没开通的最多100万条,具体以官方规则为准;而且消息内容要真实有效,不能夸大或发送无关信息。

5. 进阶配置:语音提醒和消息管理

现在订阅消息还支持语音提醒功能,只要模板支持,用户在授权时可以选择开启语音提醒,收到消息时会同步播报语音,比如“收款到账10元”。配置方法也很简单,在调用授权接口时,确保模板支持语音提醒,用户勾选即可,不需要额外写复杂代码。

另外,要做好消息管理,比如用户后续取消订阅(在消息列表里设置拒收),官方会把这个事件推送到后台,后台要及时更新用户的授权状态,避免后续再给拒收的用户发消息,既浪费资源又影响用户体验。

四、通用注意事项:避免推送失败和违规

不管是哪种推送方式,都要注意以下几点,不然容易出现推送失败或者被官方处罚的情况:

1. 严格遵守授权规则:不能诱导用户授权,比如不授权就不让用小程序核心功能;也不能在用户没授权的情况下强行发送消息,会直接失败。

2. 控制推送频率和时间:不要频繁给用户发消息,比如一天发好几次,容易让用户反感,还可能被限流;推送时间尽量选在用户活跃时段,比如9:00-21:00,避开休息时间。

3. 保护用户隐私:消息内容里不能包含用户敏感信息,比如手机号、身份证号;后台存储用户OpenID等信息时,要做好加密,防止信息泄露。

4. 做好异常监控:后台要记录每次推送的结果,比如哪些用户发送失败、失败原因是什么,定期排查问题;同时要监控用户的订阅状态变化,及时调整推送策略。

5. 消息内容有价值:推送的消息必须和用户相关,能帮用户解决问题,比如订单提醒、服务到期提醒等,不要发无关的广告或垃圾信息,不然用户会取消订阅,还可能投诉。

五、总结:该选模板消息还是订阅消息?

简单说结论:新开发的小程序,直接选订阅消息,功能更全、限制更合理,还支持语音提醒等进阶功能;如果是老小程序,已经在用模板消息且能满足需求,可以暂时继续用,但建议逐步升级成订阅消息,因为官方后续可能会逐步停止对模板消息的支持。

最后再梳理一下核心:实现推送的关键是“账号+服务器+用户授权+官方接口”,配置步骤看似复杂,其实拆解开来就是“申请模板-获取授权-发送消息”三步,只要跟着步骤来,注意好授权和合规问题,就能顺利实现推送功能。如果不懂后台开发,也可以用官方的云服务,减少服务器配置的麻烦,专注于消息内容和业务逻辑即可。

分享 SHARE
在线咨询
联系电话

13463989299