uni-app 微信小程序模板推送功能 报格式错误

uni-app 微信小程序模板推送功能 报格式错误

示例代码:

const res = await uniCloud.httpclient.request(apiUrl, {
method: 'POST',
data: {
touser: openid,
template_id: 'irqaEulHHG5XNqRfsETqwkhhFrGScmafMdw7odxf3PE',
page: '/pages/notification/notification?id=' + event.id,
data: {
thing1: {
value: event.title
},
date2: {
value: event.time
}
}
},
dataType: 'json'
})

操作步骤:

发送新的通知,推送消息给用户

预期结果:

实现推送消息功能

实际结果:

"errcode":47001,"errmsg":"data format error hint: [71EX2a01243932]"

bug描述:

完全按微信小程序文档请求的参数
错误信息:

{
"data":{
"errcode":47001,
"errmsg":"data format error hint: [71EX2a01243932]"
},
"headers":{
"connection":"keep-alive",
"content-length":"69",
"content-type":"application/json; encoding=utf-8",
"date":"Sat, 16 May 2020 16:05:24 GMT"
},
"res":{
"aborted":false,
"data":{
"errcode":47001,
"errmsg":"data format error hint: [71EX2a01243932]"
},
"headers":{
"connection":"keep-alive",
"content-length":"69",
"content-type":"application/json; encoding=utf-8",
"date":"Sat, 16 May 2020 16:05:24 GMT"
},
"keepAliveSocket":false,
"remoteAddress":"101.227.162.120",
"remotePort":443,
"requestUrls":[
"https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=33_sh7YPrPYubwOvhCjGr7UhjO9ViUp2ZYpI3gAp6jRlHC7YlhOxFDJzk6QLGir6aXkUSPkZ9kMXEy9iqec8z321B-VhxKtxRVgvW8dQmKdhpEwTsfUkY6gCD4UEp6oqKhzWfLiFPNXl-QxZ700ZZCiAAAIIL"
],
"rt":200,
"size":69,
"socketHandledRequests":1,
"socketHandledResponses":1,
"status":200,
"statusCode":200,
"statusMessage":"OK",
"timing":null
},
"status":200
}

更多关于uni-app 微信小程序模板推送功能 报格式错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

找到问题了 确实是请求时的格式问题加上contentType:‘json’,就好了

更多关于uni-app 微信小程序模板推送功能 报格式错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据错误码47001和"data format error"提示,问题出在模板消息的data参数格式上。以下是关键点分析:

  1. 微信小程序模板消息的data字段要求严格格式,每个字段必须包含value属性

  2. 常见问题:

  • thing1/date2等字段名需要与模板中定义的完全一致(区分大小写)
  • value值不能为空或格式不正确
  1. 建议修改:
data: {
  thing1: {
    value: event.title || "默认标题"  // 确保有值
  },
  date2: {
    value: event.time || new Date().toISOString()  // 确保时间格式正确
  }
}
回到顶部