微信快递发货 报错:

① {"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数据。

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格式应该是:

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就成功发送了发货通知。

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

下图是消息详细内容: