1、在微信公众号后台先完善自己的基本信息
2、在小程序后台添加需要订阅消息的模板
3、接下来通过代码来实现消息的订阅
参考链接: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html
按照步骤一、步骤二来实现即可。
步骤一:获取下发权限
wx.requestSubscribeMessage({
tmplIds: ['模板id'],
success:res=>{
}
})
步骤二:调用接口下发订阅消息
// 下发订阅消息有两种方式,HTTPS调用和云调用,这里我们采用HTTPS调用
var data = {
"touser": openid, //需要提前获取
"template_id": "Lgyniei-swsCifuPTwD8gDMVGL3BZx4pQjUj7VxmCvc", //模板id,在微信后台拿
"data": {
"thing5": {
"value": "王辉辉和张琳琳的婚礼"
},
"time2": {
"value": "2021年10月1日"
},
"number8": {
"value": "3"
},
"thing6": {
"value": "柳州职业技术学院官塘校区"
}
},
}
wx.request({
method: 'POST',
// 调用这个接口需要传入access_token 需要提前获取
url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' +
res.data.access_token,
data: data,
success: res => {
if (res.data.errcode == 0) {
wx.showToast({
title: '提交成功',
duration: 2000
})
}
}
})
PS:由于步骤二的成功执行需要传入openid和access_token,所以我们需要定义两个函数getOpenId和getAccessToken去获取这两个值
// 获取openid
getOpenId(success) {
wx.login({
success(res) {
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
data: {
appid: 'wxf48d41f57cf4ac34',
secret: 'c5380adb49407a61e3cf90370e6b64b1',
grant_type: 'authorization_code',
js_code: res.code
},
success: success
})
}
})
},
//获取 access_token,
getAccessToken(success) {
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxf48d41f57cf4ac34&secret=c5380adb49407a61e3cf90370e6b64b1',
success: success
})
}
最终,以上所有步骤整合起来的全部代码为
Page({
data: {
openid: null,
},
submit() {
wx.requestSubscribeMessage({
tmplIds: ['Lgyniei-swsCifuPTwD8gDMVGL3BZx4pQjUj7VxmCvc'],
success: res => {
this.getOpenId(res => {
this.data.openid = res.data.openid;
this.getAccessToken(res => {
console.log(res.data.access_token)
var data = {
"touser": this.data.openid,
"template_id": "Lgyniei-swsCifuPTwD8gDMVGL3BZx4pQjUj7VxmCvc",
"data": {
"thing5": {
"value": "王辉辉和张琳琳的婚礼"
},
"time2": {
"value": "2021年10月1日"
},
"number8": {
"value": "3"
},
"thing6": {
"value": "柳州职业技术学院官塘校区"
}
},
}
wx.request({
method: 'POST',
url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + res.data.access_token,
data: data,
success: res => {
console.log(res)
if (res.data.errcode == 0) {
wx.showToast({
title: '提交成功',
duration: 2000
})
}
}
})
})
})
}
})
},
// 获取openid
getOpenId(success) {
wx.login({
success(res) {
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
data: {
appid: 'wxf48d41f57cf4ac34',
secret: 'c5380adb49407a61e3cf90370e6b64b1',
grant_type: 'authorization_code',
js_code: res.code
},
success: success
})
}
})
},
//获取 access_token,
getAccessToken(success) {
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxf48d41f57cf4ac34&secret=c5380adb49407a61e3cf90370e6b64b1',
success: success
})
}
})