订阅消息流程:
小程序管理后台添加及申请消息模板
前端通过button组件点击后调授权弹框,授权是针对于消息模板下发权限(单次授权最多支持3个模板Id)
后端 (通过openId和模板ID) 调用subscribeMessage.send发送订阅消息,未授权或拒绝推送的会返回错误信息
与模板消息对比:
相同点:
1. 都需要button或支付触发;
2. 一次性订阅和模板消息一样,都是点一次订阅一条
不同点:
订阅消息会有授权弹框, 而模板消息无弹框,只收集formId,用户是无感的;
订阅消息针对单个或多个消息模板授权以获取下发权限,而模板消息只要有formId就可以发送任意后台已选用的模板消息;
订阅消息授权模板A后,没有过期时间,突破了模板消息7天有效期的限制,而模板消息获取到的formId只有7天有效期,过期了就无法推送;
订阅消息支持长期订阅,但只针对于部分医疗、民生、交通、教育之类的线下服务开放,而模板消息不支持长期,都是一次性的。
使用方式差别:
1. 模板消息。因为只需要formId,所以解决思路是尽可能多的收集。早期的做法是利用js事件穿透,嵌套很多层的form/button,但这个方法后来被微信屏蔽了。现在普遍的做法是在页面中埋点,将链接、跳转、tab之类的通通用from/button替代。
2. 订阅消息。需要调用 wx.requestSubscribeMessage 对指定消息模板授权,如果用户不点击上图中的"总是保持以上选择,不再询问",就会一直弹弹弹,弹得你满脸鱼尾纹(因为这功能愁的)。
补充说明:
关于长期订阅,很多人都会眼前一亮,但尝试下来又开始 "祝福" 微信小程序团队。那几个大类下面还有很多二级分类,只有指定的分类才会支持长期,以我知道的举例,教育>培训机构 是可以的。但是呢,就算你刚好在这个类目里,以为自己可以用长期订阅了,里面没有长期模板,还不提供申请入口,你能怎么办?不过官方说了,也不是没有,他们只在论坛这类渠道收集用户反馈,再评估要不要加到模板库。我只想说,开发申请入口,审核严格一些,难道不会更好?
看过很多帖子,都提到一个问题,教育>培训机构是需要上传办学证明的,但非文化素质(像语文数学)的培训,比如舞蹈,是不需要办理办学证明的,相关机构也不给办,这是有国家规定的,但申请教育>培训机构这个类目时是必须你提供这个证明的,我自己也发帖反馈了好几次,微信团队理都不理,理了也总是那来回几句话,让提供相关机构证明文件或批复。
最好抛出一个棘手的问题,大家看看有没有好的解决方案?
模板消息不会弹框,用户无感,很方便去埋点,但一次性订阅就没那么好埋点了,毕竟是会弹窗的,而且也不能在A页面去引导授权C页面功能才需要的推送,难啊。本来用模板消息可以实现的逻辑,现在有点不知所措了。
关于订阅问题如果客户选择了总是保持以上选择不再询问,倒是可以后台默默帮客户自动订阅,并在订阅成功后记录一下订阅次数,每次订阅消息都返回一个剩余通知次数,让客户自己再点击订阅,问题总是能得到解决的,只是解决方案比较怪异,或者给客户一个框让他填写自动订阅次数,我们就做个for循环,多次调用订阅方法。当然如果微信做了调用间隔限制,我们就做一个定时器,按时间间隔自动订阅
没有长期订阅的话,我可能要在开发版上自己写个button ,无聊的时候点几下......我的头@!@
感觉这次有点太赶了。模板消息下线得太快,还有1个月就下线了,而订阅消息的最低基础库要求2.8.3。
至少对用户而言,岂不是至少在明年1.10日之前得让用户都迁移到微信7.0.5以上?虽然我是支持所有用户都更新到最新的基础库,毕竟少些兼容性。
没有完美的消息,https://developers.weixin.qq.com/community/develop/article/doc/00026407d58cf07bb96941b0e5b813
如果勾选了"总是保持以上选择,不再询问",是不是用户只要触发了订阅(点了按钮or付款后),无需弹窗就自动订阅了?
我用了
wx.requestSubscribeMessage({
tmplIds: ['B6tjeE4zqQCGP0mCSBAERnS6gq9_Oj8haDO0mCiqrk8'],
success(res) {
console.log("订阅成功")
}
})
我用了上述的代码,但是微信小程序订阅消息授权窗口始终没有出现是什么原因
2. 小程序id和模板id不对应也是不会有弹框的
2. 不行就自己点小程序右上角打开设置>消息订阅,看是不是以前选了不再弹出;
3. 换个模板Id试试,再不行你就可以去给官方提bug了