实现条件
- 在小程序的 订阅消息 模块配置模板
- wx.requestSubscribeMessage 小程序需要用户授权开启订阅消息
- 云函数接口请求数据时根据指定模板推送消息 cloud.openapi.subscribeMessage.send
配置订阅消息
- 模板id用于授权和推送消息
- {{thing19.DATA}} 用于配置数据 {thing19:{value:xx}}
授权开启订阅消息
// app.js 订阅授权
requestSubscribeMessage() {
return new Promise((resolve, reject) => {
const tmplIds = ['你的模板id']
wx.requestSubscribeMessage({
tmplIds,
success: (res) => {
console.log(res);
if (res[tmplIds] === 'accept') {
resolve()
} else {
reject()
}
},
fail: () => {
reject()
}
})
})
}
// 是否允许订阅消息通知
await app.requestSubscribeMessage()
云函数推送消息
- 新建一个 subscribeMessage 订阅消息模板文件
//封装方法
const cloud = require('wx-server-sdk');
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
});
// 发送订阅消息模板 - 交易
exports.deal = async (event, context) => {
return new Promise(async (resolve, reject) => {
try {
const data = event.data || {}
await cloud.openapi.subscribeMessage.send({
touser: event._openid, //用户的_openid
templateId: '你的模板id',
page: '查看小程序需要跳转的页面路径', //pages/my/pages/deal/deal
data: {
thing19: { value: data.thing19 }, //店铺名称
thing14: { value: data.thing14 }, //操作人
amount27: { value: data.amount27 }, //交易金额
amount11: { value: data.amount11 }, //结余金额
time20: { value: data.time20 } //生成时间
},
miniprogramState: 'developer' //跳转小程序类型:developer 为开发版;trial为体验版;formal为正式版;默认为正式版
})
resolve(true)
} catch (error) {
resolve(error)
}
})
};
//方法引入
const subscribeMessage = require('../subscribeMessage/index')
...
const subscribeMessageData = {
_openid: '用户的openid',
data: {
thing19: '店铺名称',
thing14: '操作人',
amount27: '交易金额',
amount11: '结余金额',
time20: '生成时间',
}
}
//方法调用,根据openid向指定微信用户推送服务通知,通知内容即为配置的模板格式
subscribeMessage.deal(subscribeMessageData)
厉害