前言:从2021年4月30日起,微信将停止永久订阅模板消息的接口(对政务民生、医疗等公共服务领域还是支持的),所以只能接入订阅通知接口(单次订阅,单次推送)
微信订阅通知开发文档:https://developers.weixin.qq.com/doc/offiaccount/Subscription_Messages/intro.html
接入方法跟之前的模板消息差别并不很大(单个页面最多只能插入10个订阅通知按钮,所以想在列表页添加订阅通知按钮的需注意一下)
后台代码
public static function sendSubTemplate($aData, $sRefresh = true)
{
$sAccessToken = self::get_access_token(); //获取token
$sUrl = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/bizsend?access_token='.$sAccessToken;
$aRes = json_decode(self::httpPost($sUrl, $aData), true); //请求接口发送数据
return $aRes;
}
前端代码
<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<div>
<wx-open-subscribe template="自己的模板ID" 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>
</div>
<script>
//事件监听
var btn = document.getElementById('subscribe-btn');
btn.addEventListener('success', function (e) {
console.log('success', e.detail);
});
btn.addEventListener('error', function (e) {
console.log('fail', e.detail);
});
</script>
代码量不多,接入还是比较简单的,以下再说几点我遇到的问题(坑)。
1.微信开发者工具:组件加载不出来
一般对于这种接口,我习惯在微信开发者工具里进行测试,然而正是因为这个工具把我坑了,首先是页面中的订阅按钮组件始终加载不出来,弄了半天不知道怎么回事,然后就尝试重启了微信开发者工具,结果就可以了,大坑一个
2.微信开发者工具:更换模板ID无效
你会发现无论你怎么更换模板ID,显示的模板一直还是“糖糖糖糖糖糖”这个弹框,这是因为微信开发者工具实际上是不支持消息订阅接口的测试的,这里只是一个页面效果的查看,所以想要测试,就只能真机上进行测试了。不知道之后会不会支持,我目前这个版本为 Stable 1.05.2103190
3.发送模板消息的接口:参数必须跟需要发送的模板的示例参数一致
比如模板示例为:
姓名: {{name01.DATA}}
金额: {{amount01.DATA}}
行程: {{thing01.DATA}}
日期: {{date01.DATA}}
那么你传的值的参数名也必须是:name01、amount01、thing01、date01
{
"touser": "OPENID",
"template_id": "TEMPLATE_ID",
"page": "index",
"data": {
"name01": {
"value": "某某"
},
"amount01": {
"value": "¥100"
},
"thing01": {
"value": "广州至北京"
},
"date01": {
"value": "2018-01-01"
}
}
}