uniapp使用微信小程序的订阅信息发送一条信息给用户
注意:在开发过程中需要将所有请求微信小程序api的接口放在后台请,此文章仅为避免大家踩坑,本文中的请求暂放在前端,调试过程中不影响大家看到最终呈现结果
本文中的 self. w x a p p i d 为 你 自 己 的 a p p i d , s e l f . wxappid为你自己的appid,self. wxappid为你自己的appid,self.wxsecret为你自己的小程序秘钥
html
<button @click="opid">获取openid</button>
<button @click="getToken">获取token</button>
<button @click='notice'>推送</button>
vue.data
//下方的thing1,thing2和其他,对应的是你选取模板的模板详情中的字段名称,需要更改成你自己的
pushmsg: {
"touser": '要发送用户的openId',
"template_id": "对应的模板id(去微信公众平台中的订阅里面找,选择对应模板,然后复制进来)",
"data": {
"thing1": {
"value": "审核中"
},
"thing2": {
"value": "预约信息"
},
"time3": {
"value": "2021年4月14日"
},
"thing8": {
"value": "2021年4月15日"
},
"phone_number5": {
"value": "185xxxx2671"
}
}
},
本案例中首先获取用户openId
// 获取openid
async opid() {
let self = this
wx.login({
success(res) {
if (res.code) {
wx.request({
url: `https://api.weixin.qq.com/sns/jscode2session?appid=${self.$wxappid}&secret=${self.$wxsecret}&js_code=${res.code}&grant_type=authorization_code`,
success(data) {
self.useropenid = data.data.openid
self.pushmsg.touser = self.useropenid
}
})
} else {
console.log('获取失败!' + res.errMsg)
}
}
})
},
获取对应模板的token
getToken() {
let self = this
wx.requestSubscribeMessage({
tmplIds: [self.$wxtmplIds[1]],//此处的-> self.$wxtmplIds[1] 就是你要发送订阅的模板id
success(res) {
wx.request({
url: `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${self.$wxappid}&secret=${self.$wxsecret}`,
data: {},
success: function(res) {
self.mytoken = res.data.access_token
}
})
},
fail: function(res) {
}
})
},
发送推送
// 通知
notice() {
let self = this
console.log(self.useropenid)
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + self.mytoken,
data: JSON.stringify(self.pushmsg),
method: 'POST',
success: function(res) {
console.log(res)
}
})
},
发送成功