打开登录微信小程序的平台
在左侧面板中找到功能->订阅消息
从我的模板页面点击 选用按钮,进入到公共订阅消息模板页面
搜索自己所需的提醒消息模板,点击选用按钮,进入到通知消息各项调整页面
左侧为订阅消息预览,右侧为映射的数据项
勾选完毕,并填写好场景说明即可生成自己所需的模板

在我的模板页面,可以点击详情,查看当前模板的信息,包括模板ID、数据项 ,这两项是代码配置中需要用到的
详细内容项,请见本文最后一份代码提示

忽略云开发细节
云函数的创建需要上传部署,改动可以使用增量上传更新// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
res.result.openid就是当前用户的openidgetOpenId: function (e) {
wx.cloud.callFunction({
name: 'getOpenId' // 上文中的云函数名
}).then(res => {
console.log("获取openid成功", res.result.openid)
}).catch(err => {
console.log("获取openid失败", err)
})
},

wx.requestSubscribeMessage({ tmplIds: ['消息模板id1'] }) subscribeMsg: function (e) {
wx.requestSubscribeMessage({
tmplIds: ['填上选用的模板id'],
success(res) {
console.log("订阅成功", res)
},
fail(err) {
console.log("订阅失败", err)
}
})
},
我的模板中未选用id
编辑器端效果示例(此处可以自行使用真机预览效果)
【取消】 还是 【允许】wx.requestSubscribeMessage这个API都会提示调用成功reject、accept

【允许】后,执行发送订阅消息逻辑send2one: function (e) {
let that = this;
wx.cloud.callFunction({
name: 'sendSubscribeMsg',
data: {
openid: 'xxxxxxxxxx', // 测试的时候,可以直接写死openid
tmplid: 'xxxxxxxxxx',
}
}).then(res => {
console.log("发送给单个用户成功", res)
}).catch(err => {
console.log("发送给单个用户失败", err)
})
},
openid必须和选用的模板字段key一致!!!// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
// 云函数入口函数
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.subscribeMessage.send({
touser: event.openid,
page: 'pages/index/index',
data: {
date1: { // 对应模板中第一个key
value: '2022年07月19日'
},
phrase2: { // 对应模板中第二个key
value: '广州'
}
},
"templateId": event.tmplid,
"miniprogramState": 'developer'
})
return result.errCode;
} catch (err) {
return err
}
}