上传物流信息

上传物流信息

接口应在服务器端调用,详细说明参见服务端API

接口说明

接口英文名

uploadShippingInfo

功能描述

  1. 调用此接口上传物流信息
  2. 该接口用于商户接入购物订单业务。商户接入后,可帮助用户查看/管理微信内购物的订单,追踪订单进展、获取售后服务等。用户后续可以从微信「我」-「服务」-「钱包」-「账单」中进入,也可以从支付凭证消息进入账单详情页回溯已购物的订单。
  3. 具体业务介绍及完整接入指南可参见 购物订单

注意事项

  1. 根据指定的订单单号类型,采用不同参数给指定订单上传订单信息,为订单上传物流信息时必须保持和上传订单信息时一致
    • 商户侧单号形式(枚举值1),通过下单商户号和商户侧单号确定一笔订单
    • 微信支付单号形式(枚举值2),通过微信支付单号确定一笔订单
  2. 发货模式根据具体发货情况选择
    • 统一发货(枚举值1),一笔订单统一发货,只有一个物流单号,此类型无需再指定包裹中商品
    • 分拆发货(枚举值2),一笔订单分拆发货,包括多个物流单号。需指定每个物流单内包含的具体商品。系统使用「上传购物详情」中的“商户侧商品ID”来标识具体商品。
  3. 物流公司编码,参见获取运力 id 列表get_delivery_list
  4. 上传时间,用于标识请求的先后顺序,如果要更新物流信息,上传时间必须比之前的请求更新,请按照Rfc3399格式填写
  5. 必须在支付完成后才能上传物流信息

调用方式

HTTPS 调用

POST https://api.weixin.qq.com/user-order/orders/shippings?access_token=ACCESS_TOKEN 

第三方调用

  • 调用方式以及出入参和HTTPS相同,仅是调用的token不同
  • 该接口所属的权限集id为:120、121
  • 服务商获得其中之一权限集授权后,可通过使用authorizer_access_token代商家进行调用

请求参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用getAccessToken 或者 authorizer_access_token
order_key object 订单,需要上传物流信息的订单,需要和上传购物详情的订单类型保持一致
属性类型必填说明order_number_typenumber否订单单号类型,用于确认需要上传详情的订单transaction_idstring否原支付交易对应的微信订单号mchidstring否支付下单商户的商户号,由微信支付生成并下发。out_trade_nostring否商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一
delivery_mode number 发货模式,发货模式枚举值:1、UNIFIED_DELIVERY(统一发货)2、SPLIT_DELIVERY(分拆发货)示例值: UNIFIED_DELIVERY
shipping_list array 物流信息列表,发货物流单列表,支持统一发货(单个物流单)和分拆发货(多个物流单)两种模式
属性类型必填说明tracking_nostring是物流单号,示例值: 323244567777 字符字节限制: [1, 128]express_companystring是物流公司编码,快递公司ID,参见「查询物流公司编码列表」 示例值: DHL 字符字节限制: [1, 128]item_listarray
upload_time string 上传时间

返回参数

属性 类型 说明
errcode number 错误码
errmsg string 错误原因

调用示例

示例说明: JS Fetch API

请求数据示例

// 拼装URL
let url = `https://api.weixin.qq.com/user-order/orders/shippings`;


// Json包体
let jsonBody = {};
jsonBody["order_key"] = {
   "order_number_type": "WXPAY_TRADE_NUMBER",
   "transaction_id": "nep9a",
   "mchid": "8wu3m",
   "out_trade_no": "x5mr9"
};
jsonBody["delivery_mode"] = "SPLIT_DELIVERY";
jsonBody["shipping_list"] = [
   {
      "tracking_no": "323244567777",
      "express_company": "DHL",
      "item_list": [
         {
            "merchant_item_id": "1246464644"
         },
         {
            "merchant_item_id": "1246464644"
         },
         {
            "merchant_item_id": "1246464644"
         }
      ],
      "contact": {
         "consignor_contact": "0**2-******23-10",
         "receiver_contact": "****123-8008"
      }
   },
   {
      "tracking_no": "323244567777",
      "express_company": "DHL",
      "item_list": [
         {
            "merchant_item_id": "1246464644"
         },
         {
            "merchant_item_id": "1246464644"
         },
         {
            "merchant_item_id": "1246464644"
         }
      ],
      "contact": {
         "consignor_contact": "0**2-***1234",
         "receiver_contact": "0**2-******23-10"
      }
   }
];
jsonBody["upload_time"] = "2021-05-20T13:29:35.120 08:00";
jsonBody["payer"] = {
   "openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"
};

// 设置包头
let headers = {"Content-Type": "application/json"};


// 发送请求
fetch(url, {
  body: JSON.stringify(jsonBody),
  headers: headers,
  method: "POST"
})
  .then(response => response.json())
  .then(response => console.log("Success:", JSON.stringify(response)))
  .catch(error => console.error("Error:", error)); 

返回数据示例

{ 
"errcode":0, 
"errmsg":"ok"
} 

错误码

错误码 错误码取值 解决方案
-1 system error 系统繁忙,此时请开发者稍候再试
268435461 参数错误 根据错误原因描述修改参数
268485192 用户标识openid为空 用户标识openid必须填写
268485214 上传时间必须设置 上传时间必须填写
268485224 物流发货模式非法 按照文档中物流形式枚举设置该字段
268485229 物流信息列表为空 物流信息列表至少填写一个
268485216 上传时间非法,请按照Rfc3399格式填写 上传时间必须满足Rfc3399格式,如2021-05-20T13:29:35.120+08:00
268485195 微信支付单号形式下transaction_id字段必须设置 微信支付单号形式下transaction_id字段必须设置
268485196 商户侧单号形式下mchid字段必须设置 商户侧单号形式下mchid字段必须设置
268485197 商户侧单号形式out_trade_no字段必须设置 商户侧单号形式下out_trade_no字段必须设置
268485194 订单单号类型非法 按照文档中订单类型枚举填写该字段
268485228 统一发货模式下,物流信息列表长度必须为1 统一发货模式下,物流信息列表长度必须为1
268485231 统一发货模式下不需要填写商品ID 统一发货模式下不需要填写商品ID
268485226 物流单号不能为空 物流单号必须填写
268485227 物流公司编码必须设置 物流公司编码必须填写
268485230 物流关联的商品列表中的商户侧商品ID不能为空 物流关联的商品列表中的商户侧商品ID必须填写
268485232 分拆发货模式下,物流关联的商品列表不能为空 分拆发货模式下,物流关联的商品列表至少填写一个
268485184 无购物订单产品权限 无购物订单产品权限,请先申请购物订单产品权限后再调用
268485275 上传方商家appid必须和购物详情归属appid一致 上传物流的商家和上传订单信息的商家保持一致
posted on 2025-01-16 08:39  AtlasLapetos  阅读(86)  评论(0)    收藏  举报