微信小程序可以通过微信官方提供的模板消息接口实现消息推送功能,具体步骤如下:
1. 获取 access_token
在调用微信模板消息接口之前,需要先获取 access_token。可以通过发送 HTTP GET 请求到以下地址获取:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
其中,APPID 和 APPSECRET 分别为小程序的 AppID 和 AppSecret。
/** * 获取 access_token */ function getAccessToken() { return new Promise((resolve, reject) => { const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}` wx.request({ url, success(res) { resolve(res.data.access_token) }, fail(err) { reject(err) } }) }) }
在上述代码中,我们定义了一个 getAccessToken 函数,用于获取 access_token。在该函数中,我们发送一个 HTTP GET 请求到微信服务器,获取包含 access_token 的 JSON 数据,并返回 access_token。
2. 发送模板消息
在获取到 access_token 后,就可以使用微信模板消息接口发送模板消息了。
/** * 发送模板消息 */ function sendTemplateMessage(openid, templateId, data, page, formId) { getAccessToken().then(access_token => { const url = `https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=${access_token}` const postData = { touser: openid, template_id: templateId, page, form_id: formId, data } wx.request({ url, method: 'POST', data: postData, success(res) { console.log('发送模板消息成功', res) }, fail(err) { console.error('发送模板消息失败', err) } }) }) }
在上述代码中,我们定义了一个 sendTemplateMessage 函数,用于发送模板消息。
在该函数中,我们先调用 getAccessToken 函数获取 access_token,然后使用 wx.request 方法向微信服务器发送一个 HTTP POST 请求,
发送模板消息。需要传递的参数包括:touser(接收者的 openid)、template_id(模板 ID)、page(跳转页面)、form_id(表单 ID)
和 data(模板数据)。在发送成功或失败后,分别在控制台输出日志。
需要注意的是,每个小程序每天最多可以向同一个用户发送 1 条模板消息。另外,在发送模板消息前需要先向用户收集表单 ID。