微信小程序服务通知(订阅消息)定时推送消息功能

首先先说项目需求:向预约参观的用户提前一天晚上8点推送消息。小程序端主要用到的API我是小程序用到的API。以及服务端用到的API我是服务端用到的API

1. 开通订阅消息功能

(1)、 首先需要在小程序管理后台开通订阅消息功能。没开通前如下图所示:
开通订阅消息
(2)、开通之后可根据自己的需求选择适合的公共模板。模板里的标题还有常见关键字不能修改。注意:公共模板是根据小程序的服务类目展示的。如下图所示:
在这里插入图片描述

2. 小程序端开发阶段

小程序端需要调起客户端订阅页面,并返回用户的操作结果。这部分比较简单,代码如下:

在这里插入图片描述
到这里,已经可以在小程序端查看效果了,需要注意的是,截止这篇文章发布时,订阅消息弹窗已经默认不推送并且总是保持以上选择。
在这里插入图片描述

3. 向服务端发送推送请求

小程序端订阅完成之后,需要向服务端发送请求,这样服务端才能知道什么时候去发请求,因为推送消息是服务端发。并且有些参数需要携带给服务端(例如:openid),消息模板里可能需要动态内容。
在这里插入图片描述
到这里,前端的部分就结束了,接下来就是后端同学的工作了,后端我不太懂,可以看小程序的官方文档拼接一个JSON就行了。JSON大致内容如下:

在这里插入图片描述

这里全部完成的话,消息已经可以实时推送至用户了,但是我标题写的是定时发送,例如前一天晚上,或者延后10小时推送,那么就让后端同学将收到的发送请求先存到redis队列,再用定时线程触发就完事了.

以下仅供参考:
在这里插入图片描述

微信小程序实现订阅消息功能,需要在后端服务器使用Node.js来实现。以下是一个示例的Node.js源码,用于实现微信小程序订阅消息功能。 ```javascript const express = require('express'); const axios = require('axios'); const app = express(); const port = 3000; // 用于接收微信小程序订阅消息的回调 app.post('/callback', async (req, res) => { try { // 解析请求体中的数据 const data = req.body; // 向微信API发送请求,完成订阅消息的下发 await axios.post('https://api.weixin.qq.com/cgi-bin/message/subscribe/send', { touser: data.openid, // 用户的openid access_token: data.access_token, // 小程序的access token template_id: data.template_id, // 订阅消息模板ID data: data.template_data, // 订阅消息模板中的数据 }); // 返回成功响应给微信小程序 res.status(200).send('Success'); } catch (error) { // 返回错误响应给微信小程序 res.status(500).send('Failed'); } }); app.listen(port, () => { console.log(`Server is running on port ${port}`); }); ``` 上述代码中,创建了一个基于Express框架的Node.js服务器。通过定义一个`/callback`的路由,用于接收微信小程序发送的订阅消息的回调。 在回调中,首先解析请求体中的数据,包括用户的openid、小程序的access token、订阅消息模板ID以及要下发的模板数据。然后,使用axios库发送HTTP POST请求到微信API,完成订阅消息的下发。 最后,根据发送请求的结果,返回相应的成功或失败响应给微信小程序。 需要注意的是,此代码仅为示例,实际项目中还需要添加相应的错误处理等逻辑。此外,还需要配置服务器的域名与小程序进行关联,并在小程序端的代码中发送HTTP请求到该服务器。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值