小程序服务通知对应的技术实现是模板消息,是需要做技术开发的,对于工程师们来说,看一下官方文档就能上手。
下面直接上代码:
wxml:
<form name='pushMsgFm' report-submit bindsubmit='form'> <button form-type="submit">submit</button></form> js:
// pages/index/index.jsPage({data: {},/*微信公众平台测试连接 https://mp.weixin.qq.com/debug/全局返回码说明:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433747234 */onLoad: function (options) {var that = thiswx.login({success: function (data) {console.log(data.code, data)// 获取openidwx.request({url: 'https://api.weixin.qq.com/sns/jscode2session?appid=你的自己的appid&secret=你自己的session_key&js_code=' + data.code ,header: { "Content-Type": "application/x-www-form-urlencoded" },method: "post",success: function (res) {console.log(res, "opind")that.setData({openid: res.data.openid,session_key: res.data.session_key,})}})}})// 获取access_tokenwx.request({url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的自己的appid&secret=你自己的session_key',method: "GET",success: function (res) {console.log(res, "res")console.log(res.data.access_token, "access_token")that.setData({access_token: res.data.access_token,})}})},// 点击执行方法form: function (e) {var that = this;var fId = e.detail.formId;// 网络请求var l = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + that.data.access_token;// 需要传的参数var d = {touser: that.data.openid, //用户的openidtemplate_id: 'XX1hceIwI1XiQaUc5Z4qIrZnYQkYEHElSq5m6yIa0M8',//这个是申请的模板消息id,位置在微信公众平台/模板消息中添加并获取page: '/pages/index/index', //点击通知跳转的页面form_id: fId, //表单提交场景下,为 submit 事件带上的 formId //此处必须为data,只有人说value也可以,可能官方已经修复这个bugdata: {"keyword1": {"value": "酒店","color": "#4a4a4a"},"keyword2": {"value": "2018-03-22","color": "#9b9b9b",},"keyword3": {"value": "$300","color": "#9b9b9b"},"keyword4": {"value": "中国","color": "#9b9b9b"}, },color: '#ccc',emphasis_keyword: 'keyword1.DATA'}wx.request({url: l,data: d,method: 'POST', //此处不能有请求头success: function (res) {console.log(res, "push msg");},fail: function (err) {console.log(err, "push err");}});},})
最后编译,点击提交发起请求,这里只能手机调试,我用开发工具打印出来的formId: "the formId is a mock one"并不是数字串,原因戳为什么formId没有数字串值。此处需要真机测试才能成功
转自https://www.hishop.com.cn/tags/15397.html













