微信小程序云开发实现订阅消息推送

代码自用自取,复制粘贴直接使用,喜欢的话可以查看博主其它文章,贡献一丢丢的浏览量,感激不尽。

我们在进行微信小程序项目开发时,尤其商城类小程序,很需要订阅消息的辅助,订阅消息就是将模板内容实例化直接发送至指定手机微信上
在这里插入图片描述

比如我们在进行商城类小程序开发时,用户购买了商品,商家需要收到是谁买了商品,买了什么商城,什么时候买的,收货地址是哪里等等信息。
虽然这些可以去数据库查看,但是甚为不便,而且也不能实时接收。微信小程序目前不支持APP的推送类功能,这个订阅消息就是最接近推送的功能了。
首先第一步,我们去微信公众平台(https://mp.weixin.qq.com/),登录自己的账号,在左侧功能栏中找到订阅消息模块
在这里插入图片描述
在这里插入图片描述
我们点击添加,选择适合需求的模板。
然后回到编辑器中。
首先我们先编写云函数

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
    
    
  try {
    
    
    const result = await cloud.openapi.subscribeMessage.send({
    
    
        touser: event.openid,           //要发送用户的openid
        page: 'pages/demo/demo',        //用户通过消息通知点击进入小程序的页面
        lang: 'zh_CN',      //进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
        data: {
    
               //要发送的数据,这里需要注意的事项,我在下面说
          thing1:{
    
    
            value:event.title
          },
          time3:{
    
    
            value:event.time
          }
        },
        templateId: '模板ID',   //订阅消息模板ID
        miniprogramState: 'formal'   //跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版

      })
    return result
  } catch (err) {
    
    
    return err
  }
}

同学们直接套用上面这个模板即可。
然后要改一下package.json的内容:
在这里插入图片描述

将框选的内容添加进去,然后上传并部署即可。
之后我们写page页的文件。
WXML中我们用按钮作为媒介。

<button bindtap="sendNew" type="primary">点我</button>

JS的函数编写如下:

  sendNew(res){
    
    
    var that = this
    var time = util.formatTime(new Date());
    wx.requestSubscribeMessage({
    
    
      tmplIds: ['模板ID'],
      success(res){
    
    
        wx.cloud.callFunction({
    
    
          name:'subscribe',
          data:{
    
    
            openid:'需要接收的微信的openid',
            title:'二手物品',
            time:time
          },
          success(res){
    
    
            console.log('成功',res);
          },
          fail(res){
    
    
            console.log('失败',res);
          }
        })
      }
    })
  },

首先我们需要给用户一个提示框,让他授权之后,我们才能使用订阅消息的功能。这个 wx.requestSubscribeMessage就是弹出授权提示框的功能。模板ID在当时添加订阅消息模板那里有。
在这里插入图片描述
这里面很关键的细节就是data的值,我们先在我的模板里,点击详情
在这里插入图片描述
这里键值对要对应上,我的模板的key是thing1和time3,所以我云函数里的data是写的thing1和time3key值是从page页的JS函数中传过来的,这个名字可以随意,但是不要写错,是event.xxx。还有一点是大部分人应该都知道怎么获取用户的openid,如果不知道,可以去我之前的博客看,有讲过(https://blog.csdn.net/m0_46171043/article/details/107452518)。
收到的效果如下:
在这里插入图片描述

有什么问题可以联系QQ:505417246
关注下面微信公众号,可以领取微信小程序、Vue、TypeScript、前端、uni-app、全栈、Nodejs、Python等实战学习资料
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46171043/article/details/108184486