# 订单发货
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南
接口英文名:senddelivery
可通过该接口对订单发货
相关事件通知:
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/channels/ec/order/delivery/send?access_token=ACCESS_TOKEN
# 云调用
调用方法:channels.ec.order.delivery.send
出入参和 HTTPS 调用相同,调用方式可查看 云调用 说明文档
# 第三方调用
本接口支持第三方平台代微信小店商家调用。第三方服务商调用模式介绍
该接口所属的权限集 id 为:131
服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代微信小店商家进行调用,具体可查看 第三方调用 说明文档。
# 2. 请求参数
# 查询参数 Query String parameters
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| access_token | string | 是 | ACCESS_TOKEN | 接口调用凭证,可使用 access_token(微信小店商家)、authorizer_access_token(服务商代调用) |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| order_id | number | 是 | 订单id |
| delivery_list | objarray | 是 | 物流信息 |
# Body.delivery_list(Array) Object Payload
物流信息
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| waybill_id | string | 否 | 快递单号,deliver_type=1时必填 |
| delivery_id | string | 否 | 快递公司id,通过获取快递公司列表接口获得,非主流快递公司可以填OTHER,deliver_type=1时必填 |
| product_infos | objarray | 是 | 包裹中的商品信息 |
| deliver_type | number | 是 | 发货方式,1:自寄快递发货,3:虚拟商品无需物流发货(只有deliver_method=1的订单可以使用虚拟发货) |
| course_info | object | 否 | 课程相关信息 |
| sn_info | object | 否 | 国补SN码信息,国补订单一定要有SN码才能发货 |
# Body.delivery_list(Array).product_infosObject Payload
Object Payload包裹中的商品信息
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| product_id | string | 是 | 商品id |
| sku_id | string | 是 | 商品sku |
| product_cnt | number | 是 | 商品数量 |
# Body.delivery_list(Array).course_info Object Payload
课程相关信息
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| start_time | number | 否 | 课程开始时间,时间戳 |
| end_time | number | 否 | 课程结束时间,时间戳 |
| course_path | object | 是 | 课程地址 |
# Body.delivery_list(Array).course_info.course_path Object Payload
课程地址
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | number | 是 | 课程地址类型,0:小程序地址 |
| wxa_appid | string | 是 | 小程序appid |
| wxa_path | string | 是 | 小程序地址 |
# Body.delivery_list(Array).sn_info Object Payload
国补SN码信息,国补订单一定要有SN码才能发货
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sn_code | string | 是 | 国补SN码 |
| imei1 | string | 否 | IMEI码 |
| imei2 | string | 否 | IMEI码 |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 示例 | 说明 |
|---|---|---|---|
| errcode | number | 0 | 错误码 |
| errmsg | string | ok | 错误信息 |
# 4. 注意事项
已经完成售后的商品不能进行发货,虚拟商品必须整单发货。
# 5. 代码示例
# 5.1 普通快递发货
请求示例
{
"order_id": "123456",
"delivery_list": [
{
"delivery_id": "YD",
"waybill_id": "23424324253",
"deliver_type": 1,
"product_infos": [
{
"product_cnt": 1,
"product_id": "12345",
"sku_id": "678910"
}
]
}
]
}
返回示例
{
"errcode": 0,
"errmsg": "ok"
}
# 5.2 课程发货
请求示例
{
"order_id": "123456",
"delivery_list": [
{
"deliver_type": 3,
"product_infos": [
{
"product_cnt": 1,
"product_id": "12345",
"sku_id": "678910"
}
],
"course_info" :{
"start_time" : 1675180800,
"end_time" : 1675958400,
"course_path" : {
"type" : 0,
"wxa_appid" : "wxabcdes",
"wxa_path" : "path"
}
}
}
]
}
返回示例
{
"errcode": 0,
"errmsg": "ok"
}
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 |
|---|---|
| 40097 | 请求体参数不正确,请检查各个参数是否按规范填写,具体原因请查看errmsg |
| 47001 | 请求体格式不正确,请检查请求体中各个参数的类型是否正确 |
| 48001 | 无权调用本api,请检查相关权限是否已开通 |
| 100002 | 订单不存在 |
| 100003 | 订单更新过于频繁,更新订单失败,请重试 |
| 101100 | 当前订单状态不允许发货,请检查订单状态 |
| 108009 | 当前订单有未完成售后单,不允许发货 |
| 109000 | 发货失败,请检查 errmsg 中返回的商品是否正确填写,包括订单中是否包含该商品,该商品是否已经发货,是否已经完成售后无法发货,以及商品数量是否填写正确等 |
| 109001 | 当前订单已经发货完成,不能重复发货 |
| 109002 | 当前发货请求里没有带上发货商品,请检查product_infos和is_all_product是否按规范填写 |
| 109205 | 当前订单已经下单在线物流单,不允许自寄发货 |
| 606003 | 商家没有默认退货地址,不可发货,请设置默认退货地址后再进行发货 |
| 606004 | delivery_id不合法,请使用【获取物流公司列表】接口获取合法的delivery_id |
| 606005 | waybill_id不合法,请检查快递单号是否正确填写 |
| 606008 | deliver_type不符合要求,普通订单请使用快递发货,虚拟商品订单请无需物流发货,请检查订单deliver_method |
| 606031 | 发货请求里product_id或sku_id填写不正确,请检查订单中是否包含该商品 |
| 606034 | 请前往平台服务-商品质检菜单,开通质检服务后走质检发货流程 |
| 606036 | 带有课程链接的包裹里只能包含一个sku |
| 606037 | 该sku不是课程商品,不能填写课程信息 |
| 606038 | 课程链接appid或小程序地址为空 |
| 606045 | 应平台管控要求,请使用【上传生鲜质检信息】接口上传商品打包信息 |
| 606046 | 请使用电子面单发货 |
| 606048 | 核销信息有误,小程序appid或path为空 |
| 606049 | 当前订单存在风险,请先不要发货等待平台进一步的通知 |
| 606051 | 虚拟商品必须整单发货 |
| 606060 | 国补订单需要sn码 |
| 606061 | 国补订单只能用特定的快递公司 |
| 6060479 | 快递单号与物流公司提供的正则表达式不匹配 |
| 10020115 | 用户申请修改收货地址,请商家处理完毕之后再发货 |
| 10020276 | 存在发货前更换sku请求,请商家处理后再发货 |
| 268545000 | 快递公司不支持国补 |
| 268545001 | 订单ID和面单的取号的商品id不匹配 |
| 268545002 | 电子面单中的商品订单信息无效 |
| 268545003 | 商品SKU不匹配 |
| 268545004 | 商品国补信息不存在 |
| 268545005 | 国补商品不支持组合打单 |
| 268545006 | 国补不支持多sku |
| 268545007 | 订单商品不唯一 |
| 268545008 | 国补订单参数错误 |
| 268545009 | 国补锁sn码失败,可以重试 |
| 268545010 | 国补sn码被其他平台锁定 |
| 268545011 | 国补sn码被其他订单锁定 |
| 268545012 | 国补sn码锁定参数错误,可以检查SN码/IMEI码等信息 |
| 268545013 | 国补sn码锁定失败,其他逻辑错误 |
| 268545014 | 商品分类不支持国补 |
| 268545015 | 国补sn码不存在 |
# 7. 适用范围
本接口支持「微信小店」账号类型调用。其他账号类型如无特殊说明,均不可调用。