文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/template-message.html
发送模板信息需要
- 微信用户的openid,需要前台通过 wx.login 先获取jscode 然后请求后台 去解密返回openid
- 通过 form标签和 button标签 通过表单提交获取formid。每个formid可以发送一次模板信息。
- 或者用户通过微信支付,后台获取一个payid,一条payid可以发送三条模板信息。
微信设计的初衷是通知小程序操作者,每次提交form表单获取一次通知机会。但是现实情况不一定这样,常见A操作通知B,这样怎么解决?
只能在页面的常用操作位置 换上 form与button标签。触发就储存在后台,这样发消息的时候从里面取就好!!!
// 封装的 wx.request
import Api from '../utils/api.js'
function getOpenid() {
return new Promise((resolve, reject) => {
let openid = wx.getStorageSync('openid')
if (openid) {
resolve(openid)
} else {
wx.login({
success(res) {
if (res.code) {
// 请求后台获取openid, 换成你的wx.request
Api.getOpenid({ jsCode: res.code }).then(result => {
wx.setStorageSync('openid', result.obj.openid)
resolve(result.obj.openid)
})
} else {
reject()
}
},
fail() {
reject()
}
})
}
})
}
function saveFormID(e) {
if (e && e.detail && e.detail.formId) {
let formId = e.detail.formId
if (formId === 'the formId is a mock one') { return }
getOpenid().then(openId => {
})
}
}
module.exports = {
getOpenid,
saveFormID
}