# 上传物流信息
接口应在服务器端调用,详细说明参见服务端API。
# 接口说明
# 接口英文名
uploadShippingInfo
# 功能描述
- 调用此接口上传物流信息
- 该接口用于商户接入购物订单业务。商户接入后,可帮助用户查看/管理微信内购物的订单,追踪订单进展、获取售后服务等。用户后续可以从微信「我」-「服务」-「钱包」-「账单」中进入,也可以从支付凭证消息进入账单详情页回溯已购物的订单。
- 具体业务介绍及完整接入指南可参见 购物订单。
# 注意事项
- 根据指定的订单单号类型,采用不同参数给指定订单上传订单信息,为订单上传物流信息时必须保持和上传订单信息时一致
- 商户侧单号形式(枚举值1),通过下单商户号和商户侧单号确定一笔订单
- 微信支付单号形式(枚举值2),通过微信支付单号确定一笔订单
- 发货模式根据具体发货情况选择
- 统一发货(枚举值1),一笔订单统一发货,只有一个物流单号,此类型无需再指定包裹中商品
- 分拆发货(枚举值2),一笔订单分拆发货,包括多个物流单号。需指定每个物流单内包含的具体商品。系统使用「上传购物详情」中的“商户侧商品ID”来标识具体商品。
- 物流公司编码,参见获取运力 id 列表get_delivery_list
- 上传时间,用于标识请求的先后顺序,如果要更新物流信息,上传时间必须比之前的请求更新,请按照Rfc3399格式填写
- 必须在支付完成后才能上传物流信息
# 调用方式
# 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 | 是 | 订单,需要上传物流信息的订单,需要和上传购物详情的订单类型保持一致 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
delivery_mode | number | 是 | 发货模式,发货模式枚举值:1、UNIFIED_DELIVERY(统一发货)2、SPLIT_DELIVERY(分拆发货)
示例值: UNIFIED_DELIVERY | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shipping_list | array<object> | 是 | 物流信息列表,发货物流单列表,支持统一发货(单个物流单)和分拆发货(多个物流单)两种模式 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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一致 | 上传物流的商家和上传订单信息的商家保持一致 |