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

34 篇文章 19 订阅
22 篇文章 3 订阅

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

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

比如我们在进行商城类小程序开发时,用户购买了商品,商家需要收到是谁买了商品,买了什么商城,什么时候买的,收货地址是哪里等等信息。
虽然这些可以去数据库查看,但是甚为不便,而且也不能实时接收。微信小程序目前不支持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等实战学习资料
在这里插入图片描述

  • 8
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CreatorRay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值