
微信小程序提供了模板消息的功能,开发者可以使用模板消息向用户发送丰富的消息体,包括文字、图片、表情等。每个小程序每天可以向同一用户发送最多3条模板消息。
若要实现无限次发送模板消息,可以通过动态生成formId的方式来实现。formId是用户提交表单时生成的*标识,每个formId只能使用一次。通过不断生成新的formId,并将其存储到服务器端的数据库中,即可实现无限次发送模板消息。
以下是简单的实现思路:
1. 小程序端:
在需要发送模板消息的地方,如表单提交成功后,获取用户*的formId,并将其发送到服务器端。
```
wx.request({
url: 'https://example.com/getformid'
// 服务器接口地址,用于将formId发送到服务器端存储
method: 'POST'
data: {
formId: formId
openid: openid
}
success: function(res) {
// 发送formId成功后的逻辑处理
}
fail: function(error) {
// 发送formId失败后的逻辑处理
}
})
```
2. 服务器端:
接收小程序发送的formId,并存储到数据库中。
```
app.post('/getformid'
function(req
res) {
var formId = req.body.formId;
var openid = req.body.openid;
// 将formId存储到数据库中
// ...
res.send({
code: 0
message: 'Success'
});
})
```
3. 服务器端定时任务:
定时任务从数据库中取出*的formId,并使用小程序的接口发送模板消息。
```
function sendTemplateMessage() {
// 从数据库中取出*的formId
// ...
// 使用小程序接口发送模板消息
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN'
method: 'POST'
data: {
touser: openid
template_id: templateId
form_id: formId
// 模板消息参数
data: {
keyword1: {
value: '模板消息内容1'
}
keyword2: {
value: '模板消息内容2'
}
// ...
}
}
success: function(res) {
// 发送模板消息成功后的逻辑处理
}
fail: function(error) {
// 发送模板消息失败后的逻辑处理
}
})
}
// 每隔一段时间执行一次定时任务
setInterval(sendTemplateMessage
intervalTime);
```
通过以上方式,我们可以实现无限次发送模板消息的功能。需要注意的是,模板消息的内容参数需要根据实际情况进行填写,也可以根据需要调整定时任务的执行频率。同时,为了保证模板消息发送的可靠性和实时性,需确保服务器可用性和网络连接稳定性。