微信模板消息的使用
上星期公司项目需求加入模版消息推送功能,今天在这整理一下:
微信的模版消息分为公众号的和小程序的。它们看起来差不多,但还是有点区别的:
模板推送位置:公众号的是本公众号页面,小程序的是服务通知。
模板下发条件:公众号可以像我们在原生app里推送通知一样进行下发,客户无需主动触发;小程序里需用户在微信体系内与页面有交互行为后触发,小程序不能推送消息,只有用户主动发起的事件并确认需要收到后续反馈,才会收到消息。
模版次数的限制:公众号有10w+,根据粉丝量来决定;小程序官方文档里说的什么提交表单7天内推送条数有限,支付一次可以推送3条,如果不懂就每次都提交,这样就没有限制了。
只是小程序的模版消息必须使用表单
一次性订阅消息:
参考链接-https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1500374289_66bvB
https://www.jianshu.com/p/39446d4a906d?open_source=weibo_search
开发者可以通过一次性订阅消息授权让微信用户授权第三方移动应用(接入说明:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1500434436_aWfqW&token=&lang=zh_CN)或公众号,获得发送一次订阅消息给到授权微信用户的机会。授权微信用户可以不需要关注公众号。微信用户每授权一次,开发者可获得一次下发消息的权限。(注意:同一用户在同一scene场景值下的多次授权不累积下发权限,只能下发一条。若要订阅多条,需要不同scene场景值)
第一步:先扫描下面链接生成的二维码
https://mp.weixin.qq.com/mp/subscribemsg?action=get_confirm&appid=wxdbc106ba7b394900&scene=10&template_id=AGgtLkckms5H7MK-Be32QdoeBAlMgFgQV5wRbPoop5q&redirect_url=http%3a%2f%2flegogo.com&reserved=test#wechat_redirect
注意点:template_id:接口权限--一次性订阅消息--查看模版id
redirect_url:授权后重定向的回调地址,请使用UrlEncode对链接进行处理。 注:要求redirect_url的域名要跟登记的业务域名一致,且业务域名不能带路径。 业务域名需登录公众号,在设置-公众号设置-功能设置里面对业务域名设置。
如果用户点击同意或取消授权,页面将跳转至:redirect_url/?openid=OPENID&template_id=TEMPLATE_ID&action=ACTION&scene=SCENE 就可以获得openid和scene了(点击取消无openid返回)
第二步:调用接口下发消息推送
sendOnceMessage: function () {
console.log('一次性订阅消息-liandan')
var dic = {
"touser": "o1kPvwjSyokfy0uDAZclj3uCgR7k",
"template_id": "AGgtLkckms5H7MK-Be32QdoeBAlMgFgQV5wRbPoop5q",
"url": "http://liandan100.com",
//只能填写该公众号关联的小程序,否则报错
"miniprogram": {miniprogram
"appid": "wxc1a5693865f7800s",
"pagepath":"pages/index/qqq/aaa/aaa?analysisReportId=2050&openId=1"
},
"scene": "10", //链接里有,必须一样,每次可相同
"title": "一次性订阅消息10",
"data": {
"content": {
"value": "content一次性订阅消息--一次性订阅消息--一次性订阅消息",
"color": "#270077",
}
}
}
util.httpsPostRequest("https://api.weixin.qq.com/cgi-bin/message/template/subscribe?access_token=5_oGeRXuo4G6xmPknexHyrciSfvfUQm6f0GeP_e06_s9hr78naIhVtrxbFxeBw4mCrMmZFDA_hureKGClg25ZxLZqRJnMfAZ01391QTtR7fgs08A4Oqq9MzSUPfibghLIrpVVdEkJTtIy9hYZjCBLiAIARQA", dic, function (success) {
console.info('一次性订阅消息-errmsg==' + success.errmsg);
})
}