订阅消息很多例子是同步的,如订单成功等,但是律师咨询留言之类的往往是异步的,有空了再回复,然后通过订阅消息通知咨询用户。
流程为:用户留言->律师回复->发送订阅消息给用户->用户查看回复。
订阅消息模板先到后台去找,根据注册类别有默认的。
用户留言这里将授权合二为一。
<button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo" >留言</button>
js里处理没授权会调取授权用户名,然后写入数据库,这里有坑,注意用提示框触发订阅权限,不能自然触发。
const db = wx.cloud.database()
const liuyan = db.collection('liuyan')
onGetUserInfo: function (e) {var that = this console.log(e)if (!this.data.logged && e.detail.userInfo) {imageurl = e.detail.userInfo.avatarUrl,nickName = e.detail.userInfo.nickName liuyan.add({// data 字段表示需新增的 JSON 数据data: {name: nickName,content: newnote,imageurl: imageurl,time: w()},success: function (res) {// res 是一个对象,其中有 _id 字段标记刚创建的记录的 idconsole.log(res)wx.showModal({title: '提示',content: '改功能需要订阅',success(res) {if (firm) {console.log('用户点击确定')wx.requestSubscribeMessage({tmplIds: ['AsKDDpIhG-mnN4IIYL_yaVScGXcFycq9aLXR3tW-QWE'], // 此处可填写多个模板 ID,但低版本微信不兼容只能授权一个success(res) {console.log('已授权接收订阅消息')
},fail(res) {console.log(res)}})} else if (res.cancel) {console.log('用户点击取消')}}})
管理员通过密码或openid权限进入处理留言界面,进行回复,更新数据库数据,这里注意要调用云函数update处理更新,客户端调用没权限,云函数写法要写成promise形式,否则有坑。云函数成功返回后客户端然后再调用send云函数,发送订阅消息,注意要传用户的openid。
click: function () {wx.cloud.callFunction({name:'updata',data:{_id:_id,answer:answer }}).then(res => {console.log("云函数返回")console.log(res)}).catch(err => {console.log(err)})// 云调用wx.cloud.callFunction({name: 'sendtest',data:{_id: _id,_openid: openid}}).then(res => {console.log("云函数返回")console.log(res)}).catch(err => {console.log(err)})
云函数update的代码
/ 云函数入口函数
exports.main = async (event, context) => {console.log(event)const _id = event._idconst answer = event.answertry {return await liuyan.where({_id: _id}).update({data: {// 表示指示数据库将字段自增 10answer: answer}})} catch (e) {(e)}
}
云函数send的代码
// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init()// 云函数入口函数
exports.main = async (event, context) => {const wxContext = WXContext()const openid = event._openidconst id=event._idconst sendResult = await cloud.openapi.subscribeMessage.send({touser: openid,templateId: 'AsKDDpIhG-mnN4IIYL_yaVScGXcFycq9aLXR3tW-QWE',miniprogram_state: 'developer',page: 'pages/show/show?id='+id,// 此处字段应修改为所申请模板所要求的字段data: {thing1: {value: '留言有回复',},time2: {value: '2020-01-01 00:00',},}})return sendResult}
本文发布于:2024-01-28 05:08:12,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063896955006.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |