微信小程序消息推送需要用户触发动作才能发送消息,比如用户提交订单、支付成功。一次只能发一条。也就是说只有用户点了小程序,操作了form表单提交然后生成一个formid ,才可以通过这条formid可以推送一条模板消息 。也就是用户不点你小程序按钮,就不会推送。(微信真的是神坑。。。)
微信小程序消息推送分两种,一种直接从小程序的前端页面发起请求推送,另外一种在后台发起请求进行消息推送
一、微信端发起请求
首先,登录微信小程序后台添加或创建消息模板拿到模板id,这个操作就不多说了,
1.获取access_token
access_token是接口调用的凭证,目前有效期为两个小时,需要定时刷新,重复获取将导致上次获取的access_token失效。
获取access_token的接口地址:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
发送模板的消息接口地址:
https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN
小程序wxml页面代码:
<form report-submit bindsubmit='formaction'>
<button form-type="submit">发送模板消息</button>
</form>
表单提交触发事件
formaction: function (e) {
var formId = e.detail.formId;//获取formid
var l = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + this.data.token;
var d = {
"keyword1": {
"value": "00273",
"color": "#4a4a4a"
},
"keyword2": {
"value": "红火早餐店",
"color": "#9b9b9b"
},
"keyword3": {
"value": &