【微信小程序】微信小程序掉进的坑之模板消息

一、关于formId

在小程序开发文档中我们可以了解到发送模板消息需要以下参数:
【微信小程序】微信小程序掉进的坑之模板消息_第1张图片

在form_id参数中,我选择了使用表单提交获取formId的方法。
【微信小程序】微信小程序掉进的坑之模板消息_第2张图片

代码如下:
这里写图片描述
这里写图片描述

当在微信开发者工具上执行时,会发现获取到的formId的值是一串字符串:
the formId is a mock one
意为:这个formId是模拟量。如果这时你直接利用这个formId在开发工具上请求发送模板消息的话,就会显示以下错误:

这里写图片描述
这是因为本身小程序的缘故,只能在真机上才能获取到formId的值,是一串数字。所以开发者可以选择直接在手机上打开小程序的调试工具,通过console.log输出formId的值查看。

二、关于模板内容

在前面获取到formId后,我在开发工具上输入了获取到的值并成功发送了一条模板消息:
【微信小程序】微信小程序掉进的坑之模板消息_第3张图片

但是奇怪的是,我输入的模板内容却没有显示出来。是因为我没有严格的按照开发文档上的代码例子编写我的代码,所以大家一定要严格按照下面格式写模板内容:(由于我使用的模板需要四个关键字,所以用了四个keyword)

【微信小程序】微信小程序掉进的坑之模板消息_第4张图片

data不能用value代替!
因为之前在网上看到的别人的教程,作者本人说可以实现,但我尝试后是不行的,可能是那时候的bug现在修复了,效果如图:
【微信小程序】微信小程序掉进的坑之模板消息_第5张图片

在自己的微信平台上可以查看使用的模板ID和需要的关键字数。

三、在服务器上发送模板消息

为了让系统给用户发送模板消息,我将发送模板消息的请求放到了服务器上,一开始只是想做个测试,因为开发文档说data可以为空,所以我就设了空值,JSON格式数据如下:
这里写图片描述

可是无论怎样都会提示47001错误 即:解析JSON/XML内容错误;
一开始我以为是传递的格式有问题,没有真正传递JSON格式到服务端,所以一直纠结于JSON格式,可是网上的人用httppost了JSON数据都是成功的(服务端用的是Java语言),所以我再仔细查看文档,后想是不是data后面一定要有{},就尝试一下,结果真的是因为这样!!!当传递的是这样的数据:

这里写图片描述
(PS:前张图中格式为:"data":" ";后张图格式为:"data":{})
返回了:
这里写图片描述

表示请求发送成功,在手机上也收到了信息。
所以解决的问题的方法就是:data后面一定要有{},无论是否需要显示模板内容。
要注意formId只能使用一次!

你可能感兴趣的:(微信小程序)