微信小程序点击获取多个formId的方法

1. 微信小程序formId的概述

微信小程序提供了一个formId机制,让开发者可以获取用户提交表单时生成的唯一标识符。该机制可以让开发者在特定场景下向用户发送模板消息。

在获取多个formId之前,我们需要先了解formId的基本信息。formId有以下几个特点:

formId仅在提交form表单时才会生成,生成后只能使用一次;

每个用户都有一个formId个数的上限,超出上限后会覆盖之前生成的formId;

formId有失效时间,需要在一定期限内使用,否则将失效。

了解以上信息后,我们可以开始获取多个formId了。

2. 获取多个formId的方法

2.1 在表单提交成功后获取formId

第一种方法是在表单提交成功后,从后台获取formId。这种方式需要后台进行处理,前端无法直接获取formId。

//后台代码示例

//在表单提交成功后,将formId存入数据库

router.post('/submitForm', function (req, res) {

var formId = req.body.formId;

//将formId存入数据库

FormModel.create(formId, function (err, form) {

if (err) {

console.log(err);

res.status(500).send('Error');

} else {

console.log('Form submitted');

res.send('Form submitted');

}

});

});

以上后台代码示例将在表单提交成功后,将formId存入数据库。前端可以从后台获取数据库中的formId。

2.2 在模板消息发送前获取formId

第二种方法是在模板消息发送前,从用户提交表单时生成的通知中获取formId。这种方法需要在小程序端进行处理。

//前端代码示例

//在表单提交成功后,获取formId并发送模板消息

wx.request({

url: 'submitForm',

data: {

formId: e.detail.formId

},

success: function (res) {

var formId = res.data.formId;

wx.request({

url: 'sendTemplateMsg',

data: {

formId: formId,

templateId: 'templateId',

data: {

keyword1: { value: 'value1' },

keyword2: { value: 'value2' },

keyword3: { value: 'value3' },

keyword4: { value: 'value4' }

},

page: 'pages/index/index'

},

success: function (res) {

console.log('Template message sent:' + res);

},

fail: function (res) {

console.log('Failed to send template message:' + res);

}

});

},

fail: function (res) {

console.log('Failed to submit form:' + res);

}

});

以上示例代码在提交表单成功后,获取formId并发送模板消息。其中formId从后台获取,模板消息的发送采用了微信官方提供的模板消息API。

3. 总结

本文介绍了微信小程序获取多个formId的两种方法,分别是在表单提交成功后获取formId和在模板消息发送前获取formId。前者需要后台进行处理,后者需要在小程序端进行处理。

获取多个formId可以让开发者在特定场景下向用户发送模板消息。但是需要注意的是,每个用户的formId个数有限,需要在一定期限内使用,否则将失效。因此,开发者需要根据自己的业务需求进行合理的使用。