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

一、关于formId

在小程序开发文档中我们可以了解到发送模板消息需要以下参数:
这里写图片描述

在form_id参数中,我选择了使用表单提交获取formId的方法。
这里写图片描述

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

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

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

二、关于模板内容

在前面获取到formId后,我在开发工具上输入了获取到的值并成功发送了一条模板消息:
这里写图片描述

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

这里写图片描述

data不能用value代替!
因为之前在网上看到的别人的教程,作者本人说可以实现,但我尝试后是不行的,可能是那时候的bug现在修复了,效果如图:
这里写图片描述

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

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

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

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

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

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

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值