背景

  • 微信于今日宣布 《服务号模板消息能力调整》,原先的模板消息能力将于 2021 年 4 月 30 日 24:00 下线,届时将无法使用此接口发送模板消息。

  • 简单来讲,向小程序开发看齐,不能直接通过公众号向已订阅的用户推送模板消息。例如:改版后即使订阅了 招商银行信用卡中心,也无法通过公众号收到 动账、还款的消息提醒。

  • 笔者从事行业对于模板消息属于强需求,所以整理变更订阅通知 的改造和实现过程供大家参考。

名称解释

  • 一次订阅

指用户订阅一次,服务号可不限时间地下发一条对应的订阅通知;

  • 长期订阅

指用户订阅一次,服务号可长期多次下发通知,长期订阅通知仅向政务民生、医疗等公共服务领域开放;

  • 服务通知

微信默认开启服务通知功能,在用户聊天列表中会出现橙色的服务通知

用户订阅流程

  • 如上图, 用户可以通过点击公众号发布的图文中插入多个订阅通知的按钮,用户点击图文中的按钮订阅

  • 如上图,用户在在开发者提供的 H5 页面中,通过 JSSDK 拉起订阅按钮

// 首先导入 JSSDK http://res2.wx.qq.com/open/js/jweixin-1.6.0.js
<wx-open-subscribe template="TenvU22BA1jCp4YHfYEpRuESXYReQyDuhs4vbdWA99I" id="subscribe-btn"><template slot="style"><style>.subscribe-btn {color: #fff;background-color: #07c160;}</style></template><template><button class="subscribe-btn">上课通知</button></template>
</wx-open-subscribe>
<script>
var btn = document.getElementById('subscribe-btn');   btn.addEventListener('success', function(e){// 根据回调确定用户是 取消 还是允许// 如果无法接收微信回调的情况下,需要在此处保存用户订阅的新姐
});
</script>

接收微信回调的订阅事件

  • 用户在图文/H5 等场景内订阅通知的操作 , 会向开发者接口推送以下报文
<xml><ToUserName>公众号微信号</ToUserName><FromUserName>用户 openid</FromUserName><CreateTime>时间戳</CreateTime><MsgType><![CDATA[event]]>(固定值)</MsgType><Event><![CDATA[subscribe_msg_popup_event]]>(固定值)</Event><SubscribeMsgPopupEvent><List><TemplateId>模板 id</TemplateId><SubscribeStatusString>用户点击行为(同意、取消发送通知)</SubscribeStatusString><PopupScene>场景(图文、H5)</PopupScene></List></SubscribeMsgPopupEvent>
</xml>
  • 根据推送报文,保存至用户和订阅模板关系表,供下文推送使用

推送通知流程

  • 调用微信服务发送订阅通知
POST https://api.weixin.qq.com/cgi-bin/message/subscribe/bizsend?access_token=ACCESS_TOKEN
  • 请求参数说明
{"touser": "接收者openid ,必须是已经订阅此消息模板的用户,不然无法推送","template_id": "消息模板ID","page": "点击跳转的链接","data": {"name1": {"value": "冷冷"},"time7": {"value": "2021-01-28 23:15:42"}}
}

问题汇总

  • 长期订阅通知申请问题

目前开发的行业较少 (政府、公共)其他行业是否开放长期订阅需要提前提供材料申请,避免模板消息到期后导致业务阻塞。

  • 框架适配问题

目前主流微信开发 SDK (WxJava、 JFinal Weixin) 还未有相关的事件实现、接收报文等需要开发者自己处理。

  • 避免用户取消授权

在 H5 页面 JSSDK 拉起用户 【允许】、【取消】都会有回调事件,在取消情况给予用户明确说明,并做好短信通知的降级策略。

>>> 源码 https://gitee.com/log4j/pig,欢迎署名转载 <<<


微信下线模板消息,订阅通知如何使用?相关推荐

  1. 微信小程序 消息订阅 长期订阅 一次授权 多次接收 微信服务通知

    微信小程序消息订阅 长期订阅 一次授权 多次接收 发送微信服务通知消息 这里讲长期订阅! 长期订阅! 长期订阅! 需求描述: – 根据用户不同标签(租户.业主.维修师傅.居委会成员)一键向人员统一发送 ...

  2. java微信开发模板消息接口使用

    微信开发--模板消息接口 http://blog.csdn.net/u010486495/article/details/46985729 微信开发者文档:模板消息接口 模板消息运营规范:http:/ ...

  3. 基于thinkphp3.2微信公众号模板消息接口通知示例

    首先把下面的WxTemple放在\www\ThinkPHP\Library\Vendor下 <?php class sendMessage { //获取accesstoken function ...

  4. 微信小程序消息订阅超详细流程步骤

    第一步:登录微信小程序管理后台 链接https://mp.weixin.qq.com 第二步:在左侧栏目找到订阅消息菜单栏  --我的模板   ,可以去公共模板库增加自己想要的模板 如果没有自己想要的 ...

  5. 微信小程序消息订阅完整教程前端+后端。

    内容较多!!!如果有没涉及到的欢迎补充或提问. 一.订阅模板,前端调用 根据官方文档来:第一步 在小程序里面找到消息订阅,随便选个模板就行,我们需要的是模板id https://mp.weixin.q ...

  6. 微信小程序 -- 消息订阅实现

    消息订阅实现 1. 步骤一:获取模板 ID(前端同学的范围) 2.步骤二:获取下发权限(前端同学的范围) 3. 步骤三:调用接口下发订阅消息(后端同学的范围) 4. 代码示例 效果图开发者工具与真机效 ...

  7. java集成微信发送模板消息

    登录微信公众平台 地址 : https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index ...

  8. java 微信发送模板的_微信开发:微信发送模板消息代码示例

    最近一个微信开发的项目里需要发送微信模板消息给卖家或者供应商等,微信开发其实也就按照微信的官方接口要求组装起来即可,下面简单介绍一下我的微信模板发送代码. 1.获取access token,至于acc ...

  9. {‘errcode‘: 47001, ‘errmsg‘: ‘data format error rid} 微信测试号模板消息,参数不对。

    {'errcode': 47001, 'errmsg': 'data format error rid: 60376cfb-331c9101-0093becf'} 有一个要点:自定义消息模板的变量必须 ...

最新文章

  1. Failed to resolve:com.gtihub (android引入库的时候提示这样的错误)
  2. Android中removeCallbacks失效原因
  3. 转载:js拖拽文本文档并读取内容到textarea
  4. PLL和DLL的区别
  5. 设置超链接的HTML标签是______,如何对a超链接标签中包含的HTML标签进行样式设置...
  6. CSS实现自适应不同大小屏幕的背景大图
  7. Nginx - 配置
  8. ubuntu16.04下Caffe绘制训练过程的loss和accuracy曲线
  9. SQL Server里的自旋锁介绍
  10. xcode中遇到的英文名词(更新)
  11. MySQL内存表的特性与使用介绍 -- 简明现代魔法
  12. 洛谷p1282多米诺骨牌
  13. 成为顶尖的AI算法工程师,你该具备些什么?
  14. 嘴上老喊辞职的人总也不走,如何看待这种现象?
  15. NR-PRACH接受端如何检测出preambleid和TA的
  16. 解决关于win10下eclipse代码格式化不生效问题
  17. 面试最后我一般会问面试官什么问题
  18. Ubuntu安装qt 5.12
  19. zookeeper代码实现常用命令 - 雨中散步撒哈拉
  20. CF1569B. Chess Tournament 简单思维

热门文章

  1. BISO 启动过程记录
  2. UML类图几种关系的总结
  3. zabbix添加监控主机和自定义监控项
  4. 单片机程序c语言 汇编语言,C语言能够实现单片机功能,为什么还要使用汇编呢?...
  5. Java接口的修饰符
  6. ARM 学习笔记整理(一)
  7. 卷积定理的简单应用:随机变量之和的概率分布
  8. 妙春浆:将肠内革命进行到底
  9. JUC并发编程笔记1__JUC概述、虚假唤醒问题、JUC的生产者和消费者关系、8锁问题(对象锁、类锁区别)
  10. 2021高考文化课成绩查询,2021艺考成绩和文化课成绩怎么算 艺考成绩计算方法