介绍
微信小程序的订阅消息,是指开发者可以发送消息到用户的微信服务通知中。
订阅消息分为 一次性订阅消息 和 长期订阅消息。
一次性订阅消息:用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。
长期订阅消息:用户订阅一次后,开发者可长期下发多条消息。但目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务
流程操作。
1 在小程序的后台添加模板到我的模板,会生成模板ID,及详细内容的key;
2 客户端需要调起小程序订阅消息界面,代码如下:
wx.requestSubscribeMessage({
// 需要订阅的消息模板的id的集合,一次调用最多可订阅3条消息
tmplIds: ['模板id'],
success (res) {
注意返回的参数,TEMPLATE_ID,值包括'accept'、'reject'、'ban'、'filter'。'accept'表示用户同意订阅该条id对应的模板消息,'reject'表示用户拒绝订阅该条id对应的模板消息,'ban'表示已被后台封禁,'filter'表示该模板因为模板标题同名被后台过滤。
}
})
3 服务端需要调用发送订阅消息的api,详细的api可参考官方文档;
注意这个data参数,即模板内容,在后台展示的key是什么,这里就填什么,不能随便改,否则会报错的。
还有要注意的是,模板参数对应的相关限制,例如name是表示姓名,限制是:10个以内纯汉字或20个以内纯字母或符号,但实际开发时,这个name可能是由用户自己填写的,或者是微信昵称,如果客户端本身不做判断或者限制的话,就可能出现发送订阅消息失败的可能。发送成功后,用户可在微信的服务通知中收到消息。
Tip:
1 订阅消息的主动权在于用户;即用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面。
2 如果用户勾选 “总是保持以上选择,不再询问” 之后,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。