小程序订阅消息
功能介绍
消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。

订阅消息推送位置:服务通知
订阅消息下发条件:用户自主订阅
订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面

file

使用说明
步骤一:获取模板 ID
在微信公众平台手动配置获取模板 ID:
登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。

步骤二:获取下发权限
详见小程序端消息订阅接口 wx.requestSubscribeMessage

步骤三:调用接口下发订阅消息
详见服务端消息发送接口 subscribeMessage.send

wx.requestSubscribeMessage(Object object)
基础库 2.8.2 开始支持,低版本需做兼容处理。

注意:2.8.2 版本开始,用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面。

参数
Object object

属性 类型 默认值 必填 说明
tmplIds Array 是 需要订阅的消息模板的id的集合,一次调用最多可订阅3条消息(注意:iOS客户端7.0.6版本、Android客户端7.0.7版本之后的一次性订阅/长期订阅才支持多个模板消息,iOS客户端7.0.5版本、Android客户端7.0.6版本之前的一次订阅只支持一个模板消息)消息模板id在[微信公众平台(mp.weixin.qq.com)-功能-订阅消息]中配置

属性 类型 说明
errMsg String 接口调用成功时errMsg值为'requestSubscribeMessage:ok'

TEMPLATE_ID String [TEMPLATE_ID]是动态的键,即模板id,值包括'accept'、'reject'、'ban'。'accept'表示用户同意订阅该条id对应的模板消息,'reject'表示用户拒绝订阅该条id对应的模板消息,'ban'表示已被后台封禁。例如 { errMsg: "requestSubscribeMessage:ok", zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: "accept"} 表示用户同意订阅zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE这条消息

示例代码

wx.requestSubscribeMessage({
  tmplIds: [''],
  success (res) { }
})

wx.requestSubscribeMessage点击的次数和收到订阅信息的推送成正比?

黑丶阳11-082004浏览问题模块: API和组件

最近在做一个项目因为需求所以要用到推送功能,然后社区大佬和我说微信订阅开通了,我开心的去用了,试下来的确香,省去了获取formid还有7天限制等繁琐限制与步骤,但是今天测试的时候后台平凡给我报错,最后发现是wx.requestSubscribeMessage点击一次才会收到一条推送,我是大写的黑人脸问号,那我想问既然这样的话这东西点击 记住选择的操作有什么用?要是客户以为需求只是绑定了一下小程序就一直在pc端操作是不是就只能收到一条信息?或者说我应该在点击订阅的时候给写个几百次循环然后让客户定期去点一次呢?感觉很不合理啊,有没有官方的大神给我说说?

wx.requestSubscribeMessage 调用问题?

dio10-161704浏览问题模块: API和组件

经实测,tmplIds配置的id数量不大于3时能正常调用,

而配置超过3个id后就无法调起授权弹框,请问每次授权多个订阅消息时是否有数量限制?

调用wx.requestSubscribeMessage一直报错?
MR.C11-28221浏览问题模块: API和组件
一直报这个错误{errMsg: "requestSubscribeMessage:fail can only be invoked by user TAP gesture."}

file

现在是先调用后端接口getTemplate动态获取tmplIDs,再去调用requestSubscribeMessage,发现一直报错,但如果写死tmpllDs的就不会报错弹出授权框,接口是放在点击事件中触发,请求这个requestSubscribeMessage接口之前是不能有其他请求么?

subscribeMessage.send
本接口应在服务器端调用,详细说明参见服务端API。

本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0

发送订阅消息

使用说明
步骤一:获取模板 ID
有两个方法可以获取模板 ID:

通过模板消息管理接口获取模板 ID(详见 模板消息管理)
在微信公众平台手动配置获取模板 ID
登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用,详见 模板审核说明

步骤二:页面的 form 组件,属性 report-submit 为 true 时,可以声明为需要发送模板消息,此时点击按钮提交表单可以获取 formId,用于发送模板消息。或者当用户完成 支付行为,可以获取 prepay_id 用于发送模板消息。
步骤三:调用接口下发模板消息(详见 templateMessage.send )
使用效果

❤️ 不要忘记留下你学习的脚印 [点赞 + 收藏 + 评论]

作者Info:

【作者】:Jeskson
【原创公众号】:达达前端小酒馆。
【福利】:公众号回复 “资料” 送自学资料大礼包(进群分享,想要啥就说哈,看我有没有)!
【转载说明】:转载请说明出处,谢谢合作!~

大前端开发,定位前端开发技术栈博客,PHP后台知识点,web全栈技术领域,数据结构与算法、网络原理等通俗易懂的呈现给小伙伴。谢谢支持,承蒙厚爱!!!


若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。


请点赞!因为你们的赞同/鼓励是我写作的最大动力!

欢迎关注达达的CSDN!

这是一个有质量,有态度的博客

前端技术栈


我是哪吒
2.5k 声望10.5k 粉丝