微信快递发货 报错:
① {"errcode":47001,"errmsg":"data format error rid: 69e102a2-186a0d12-08415a88"}-YTO
② {"errcode":47007,"errmsg":"data format error, not UTF8 rid: 69e0feea-1e635bcb-41a9ab7f"}-YTO
这个错误 “ 47001”或“47007” 表示你发送给微信的 JSON 数据编码格式不是 UTF-8。即使是说格式匹配不对,也很难准确定位到某个具体位置。此时需要把提交的json格式的数据捕捉到或打印出来,然后微信开发官方文档,下面是根据搞错捕捉到的json数据。
{
"order_key": {
"order_number_type": 2,
"transaction_id": "4200003123202XXX16432891XXXX"
},
"logistics_type": 1,
"delivery_mode": 1,
"shipping_list": [
{
"item_desc": "桶装大盘香:1桶20双盘【40圈】:1件",
"delivery_id": "YTO",
"waybill_id": "YT7615XX773XXXX"
}
],
"upload_time": "2026-04-17T00:13:54+08:00",
"payer": { "openid": "oblX46zYQGsf3XXXTZErBtXXXX" }
}修正后的JSON示例结果,正确的JSON格式应该是:
{
"order_key": {
"order_number_type": 2,
"transaction_id": "4200003123202XXX16432891XXXX"
},
"logistics_type": 1,
"delivery_mode": 1,
"shipping_list": [
{
"item_desc": "桶装大盘香:1桶20双盘【40圈】:1件",
"express_company": "YTO",
"tracking_no": "YT7615XX773XXXX"
}
],
"upload_time": "2026-04-17T00:13:54+08:00",
"payer": {
"openid": "oblX46zYQGsf3XXXTZErBtXXXX"
}
}
其他可能原因及解决方案:
1. AccessToken问题:虽然47001主要表示数据格式错误,但搜索结果指出,无效的AccessToken也可能导致各种调用失败。请确保:AccessToken有效且未过期(有效期通常为7200秒)AccessToken通过URL参数正确传递:?access_token=ACCESS_TOKEN
2. 时间格式验证:upload_time格式“2026-04-17T00:13:54+08:00”是正确的RFC 3339格式,但需要确保:时间不早于支付时间(业务逻辑校验)时间格式包含时区信息(+08:00表示东八区)
3. 参数长度限制:根据搜索结果,微信API对参数长度有限制:
① item_desc:限120个字以内
② tracking_no和express_company:字符字节限制[1, 128]
其次,检查Content-Type:确保请求头包含"Content-Type":"application/json; charset=utf-8"。
这里的异常字段名不匹配,请将delivery_id改为express_company,waybill_id改为tracking_no就成功发送了发货通知。

下图是微信发送成功的消息:

下图是消息详细内容:
