🚩 小程序订阅消息一次性模板实现“长期订阅”
1. 消息类型
一次性订阅:用户自主订阅后,可不限时间地下发一条对应的服务消息;每次订阅只能发送一条消息。也就是说,点击点阅之后,服务端只能帮我们下发一条信息。要想在次给用户下发信息,就需要用户再次点击订阅。
长期订阅:用户订阅一次后,可长期下发多条消息。长期订阅对资质的要求很高,目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。。
这样看来是不是觉得一次性订阅比较鸡肋,没有什么用。本文选用的就是一次性订阅,使用一次性订阅达到长期订阅的效果。
2.订阅消息
2.1 消息模板
发送消息必须使用微信小程序官方提供的消息模板。消息模板可以在微信公众号平台获取,如下图:
选好模板后,点击操作栏的选用
按钮即可。如下图:
2.2 消息内容说明
(1)模板id: 模板的唯一标识,微信小程序端
和服务器端
都需使用,来确定使用那个模板。
(2)详细内容: 这里就是消息的内容,上图所示中的 计划名称 就是标题,{{ting1.DATA}}
就是值。
剩余模板中的内容都不重要,在此不作赘述。
2.3 消息发送
方法:wx.requestSubscribeMessage(Object object)
(微信官方文档入口)该wx.requestSubscribeMessage()
用在微信小程序端
,用于调起订阅消息界面。如下图:
注意事项:
(1)触发方式: wx.requestSubscribeMessage(Object object)
只能用于点击按钮触发。
(2)一次性消息: 在消息类型中提及到,一次性订阅消息
在用户自主订阅后,只能发送一次消息。
3.前端代码
1 | //由点击事件调出订阅消息界面 |
1 | //调出 模板消息界面 |
4. 后端下发消息接口
POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
需要注意的是access_token
需要放在url地址栏,其余的参数我就不赘述了,官网地址都有。
5. 实际应用-长期订阅
通过上述介绍,我想大家对微信小程序
发送模板消息
有两个大概的认识。
我们知道用户同意订阅消息
后,服务器端只能发一条
消息给用户,后面如果想再次发送,还需要去询问用户是否订阅。那么如果我们想持续的给用户发消息呢?我们该如何应对这样的场景呢?
5.1 “总是保持以上选择”
在询问用户是否同意接收消息时,下方有个总是保持以上选择
,如果用户勾选了
,并点击确定
,那么后面如果再次询问用户是否同意接收消息时,就不会弹出订阅消息界面
。我们该如何判断用户勾选了保持以上选择
呢?
可以通过微信小程序的wx.getSetting({})
方法。这个方法会在勾选了保持以上选择
后,会打印出模板id。所以我们需要在订阅界面
成功回调方法中,判断下setting
中是否包含模板id。
5.2 实现思路
- 在后台数据库中给微信用户添加一个字段:check_flag表示,表示是否勾选 总是保持以上选择,true:勾选了,false:未勾选。
- 在wx.requestSubscribeMessage()成功回调方法中调用wx.setting()中判断用户是否勾选了总是保持以上选择。
- 如果是,修改check_flag=true。
- 在微信小程序中必点击的地方,添加调用wx.requestSubscribeMessage()方法。
- 如果check_flag为true时调用wx.requestSubscribeMessage()。
- 然后就可以实现用户在登陆界面点击一次发送多条消息给用户。如果用户不想再次接收消息。可以在我小程序右上角三个点设置中修改即可。
5.3 代码
1 | //在用户必点的地方,调用订阅消息方法 |