在做公众号开发的时候,经常会碰到乱七八糟的问题。其中一个问题就是发送模板而报47001(格式错误的)问题{"errcode":47001,"errmsg":"data format error hint: [VlcJia0987ge21]"}下面小编分析了两种原因和解决方法
工具/原料
vs2016
原因1:数据格式错误
1、在调用微信模板接口API时,所传的数据格式有误。数据格式要严格按照微信文档所给的。下面是标准的格式模板。请自行检查自己的飙空蒈开格式是否有误{ "touser":"OPENID", //用户openid,必填 "template_id":"template_id", //模板id 必填 "url":"http://www.baidu.com", //链接,没有可为null "miniprogram":{ //小程序链接,没有可为null "appid":"xiaochengxuappid12345", "pagepath":"index?foo=bar" }, "data":{ //模板参数 必填 "first":{ "value":"恭喜你购买成功!", "color":"#173177" }, "keyword1":{ "value":"巧克力", "color":"#173177" }, "keyword2":{ "value":"39.8元", "color":"#173177" }, "keyword3":{ "value":"2014年9月22日", "color":"#173177" }, "remark":{ "value":"欢迎再次购买!", "color":"#173177" } } }
原因2:编码错误
1、如果你确定了数据格式无误,但是在调用的时候还是报47001错误那么就是在调用API的时候编码出错了。查看你的代码,调用API时用到HttpPost 方法是否存在这句代码:System.Web.HttpUtility.UrlEncode(postStr);如果存在将其注释掉即可。