共计 1862 个字符,预计需要花费 5 分钟才能阅读完成。
背景
- 微信于今日发表《服务号模板音讯能力调整》,原先的模板音讯能力将于 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,欢送署名转载 <<<
正文完