全部
淘宝
拼多多
抖音
京东
快手
当当
1688
淘工厂
小红书
有赞
微店
在线测试
自己联系物流(线下物流)发货
接口地址: http://api.vv-tool.com/tool/erps/send
接口介绍: 对订单做发货处理,主要是自己的联系快递公司(线下物流)发货 点击查看详情
必须用户授权 : 需要用户的授权,才能拿到被授权的数据
请求方式: POST
返回格式: JSON
接口收费: 扣账户余额
频率限制: 10 次/秒
请求头参数
参数 | 类型 | 必选 | 值 | 示例 |
---|---|---|---|---|
Authorization | string | 是 | 授权 access_token | Bearer 1798c6aadec33d1bc2f5b707f1049aefexxxx |
请求参数
名称 | 类型 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
sub_tid | string | false | 1,2,3 | 需要拆单发货的子订单集合,针对的是一笔交易下有多个子订单需要分开发货的场景;1 次可传人多个子订单号,子订单间用逗号隔开;为空表示不做拆单发货。 |
shop_id | String | true | 123456789 | 店铺 ID |
tid | Number | true | 123 | 淘宝交易 ID |
is_split | Number | false | 0 | 表明是否是拆单,默认值 0,1 表示拆单 |
out_sid | String | true | 123456789 | 运单号。具体一个物流公司的真实运单号码。淘宝官方物流会校验,请谨慎传入; |
company_code | String | true | POST | 物流公司代码。如"POST"就代表中国邮政,"ZJS"就代表宅急送。 快递简称快递简写列表 |
sender_id | Number | false | 123456 | 卖家联系人地址库 ID,可以通过 taobao.logistics.address.search 接口查询到地址库 ID。如果为空,取的卖家的默认取货地址 |
cancel_id | Number | false | 123456 | 卖家联系人地址库 ID,可以通过 taobao.logistics.address.search 接口查询到地址库 ID。 如果为空,取的卖家的默认退货地址 |
feature | String | false | identCode=tid:aaa,bbb | feature 参数格式 范例: identCode=tid1:识别码 1,识别码 2|tid2:识别码 3;machineCode=tid3:3C 机器号 A,3C 机器号 B identCode 为识别码的 KEY,machineCode 为 3C 的 KEY,多个 key 之间用”;”分隔 "tid1:识别码 1,识别码 2|tid2:识别码 3”为 identCode 对应的 value。 "|"不同商品间的分隔符。 例 1 商品和 2 商品,之间就用"|"分开。 TID 就是商品代表的子订单号,对应 taobao.trade.fullinfo.get 接口获得的 oid 字段。(通过 OID 可以唯一定位到当前商品上) ":"TID 和具体传入参数间的分隔符。冒号前表示 TID,之后代表该商品的参数属性。 "," 属性间分隔符。(对应商品数量,当存在一个商品的数量超过 1 个时,用逗号分开)。 具体:当订单中 A 商品的数量为 2 个,其中手机串号分别为"12345","67890"。 参数格式:identCode=TIDA:12345,67890。 TIDA 对应了 A 宝贝,冒号后用逗号分隔的"12345","67890".说明本订单 A 宝贝的数量为 2,值分别为"12345","67890"。 当存在"|"时,就说明订单中存在多个商品,商品间用"|"分隔了开来。|"之后的内容含义同上。retailStoreId=12345,发货门店 ID 或仓信息。retailStoreType=STORE: 发货门店类别,STORE 表示门店,WAREHOUSE 表示电商仓。对于全渠道订单回传的商家,retailStoreId 和 retailStoreType 字段为必填字段。 |
vvtype | int | false | 普通版 1,不传默认 1,增强版 2,增强版的需要传参 2,标准版 3,需要标准版的传 3,减版 4,需要减版的传 4 |
请求示例
tid:123
out_sid:123456789
company_code:POST
shop_id:1234567
请求代码示例
cURL请求代码示例
curl --location --request POST "http://api.vv-tool.com/tool/erps/send" \
--header "Authorization: Bearer 73a1e6f00198e0c43215505dcf6e31a61be8daad" \
--header "Cookie: __yjs_duid=1_dee3bfba5b90592372d209eda95c772a1616035269331; PHPSESSID=eg6rdq9svo8iisp0qdn8de28ds; _csrf=28d4b1b6a1a8187c94992e5c050d1d0c86b827c40735e28f2ae103584e094711a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%2252FhR6NNpbAyiE0zgVtqOXqPgIGWS7QY%22%3B%7D" \
--form "tid="123"" \
--form "out_sid="123456789"" \
--form "company_code="POST"" \
--form "shop_id="1234567""
PHP请求代码示例
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.vv-tool.com/tool/erps/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array("tid" => "123","out_sid" => "123456789","company_code" => "POST","shop_id" => "1234567"),
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer 73a1e6f00198e0c43215505dcf6e31a61be8daad",
"Cookie: __yjs_duid=1_dee3bfba5b90592372d209eda95c772a1616035269331; PHPSESSID=eg6rdq9svo8iisp0qdn8de28ds; _csrf=28d4b1b6a1a8187c94992e5c050d1d0c86b827c40735e28f2ae103584e094711a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%2252FhR6NNpbAyiE0zgVtqOXqPgIGWS7QY%22%3B%7D"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
JAVA请求代码示例
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("tid","123")
.addFormDataPart("out_sid","123456789")
.addFormDataPart("company_code","POST")
.addFormDataPart("shop_id","1234567")
.build();
Request request = new Request.Builder()
.url("http://api.vv-tool.com/tool/erps/send")
.method("POST", body)
.addHeader("Authorization", "Bearer 73a1e6f00198e0c43215505dcf6e31a61be8daad")
.addHeader("Cookie", "__yjs_duid=1_dee3bfba5b90592372d209eda95c772a1616035269331; PHPSESSID=eg6rdq9svo8iisp0qdn8de28ds; _csrf=28d4b1b6a1a8187c94992e5c050d1d0c86b827c40735e28f2ae103584e094711a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%2252FhR6NNpbAyiE0zgVtqOXqPgIGWS7QY%22%3B%7D")
.build();
Response response = client.newCall(request).execute();
响应参数
参数 | 类型 | 描述 |
---|---|---|
url | string | url |
code | int | 错误码 0 为成功 |
msg | string | 返回码描述 |
msec | int | 接口执行时间 |
time | int | 接口返回时间 |
success | Boolean | 返回发货是否成功。 |
withholding_money | int | 该接口扣费金额(点券) |
返回数据
{
"code": 0,
"msg": "成功",
"msec": 1193,
"time": 1612416107,
"data": [
{
"withholding_money": 1,
"success": true
}
]
}
响应代码
代码 | 代码描述 | 解决方案 |
---|---|---|
0 | 成功 | |
100 | 请求参数错误 | 检查您的请求参数是否正确 |
101 | 请求超时,请重试 | 检查您的网络情况或者联系客服解决 |
103 | 旺旺账号不存在 | 检查您输入的旺旺号是否正确 |
200 | 系统错误,请联系客服 | 检查您的接口地址填写是否正确,其他问题联系客服解决 |
202 | 系统错误,请稍后再试 | 稍后重试,或者联系对接群 |
203 | 暂不支持当前接口 | |
204 | 请求异常:无该接口权限,请前往官网开通正式接口。 | 前往官网开通该接口权限 |
204 | 请求异常:API 调用次数不足,请前往网站兑换次数。 | 前往官网充值该接口调用次数 |
302 | 未授权店铺 | 根据返回链接进行扫码授权 |
401 | 身份凭证无效 | 在请求头中添加 access_token,重新更新 token |
404 | 请求路径或请求方式错误 | 请更换请求方式或者检查路径是否正确 |
614 | 物流订单不存在 | 调用发货接口前要先判断 tid 是不是属于自身的 tid,并且需要判断 tid 是否存在,最好用搜索出来的 tid 列表里面的数据传入。 |
614 | 没有权限进行发货 | 在发货前要判断好订单的状态,只有交易存在、属于自己、并且是等待卖家发货的才能发,其余的状态无需也不能调用这个接口。 |
614 | 订单状态不对 | 1.遇到 isv 开头的错误不要在程序重试; 2.建议在发货前先调用交易 API 如:taobao.trade.fullinfo.get 来查询这个订单的状态,根据订单状态再做相应的处理,避免状态为已发货订单进行重复发货 |
614 | 没有选择物流公司 | 在前端对是否选择物流公司(company_code)做好校验,没有选择 company_code 的不允许其发货。 |
614 | 运单号为空 | 在前端对是否填写运单号(out_sid)进行校验,没有传入 out_sid 不允许其发货。 |
614 | 运单号不符合规则或已经被使用 | 每个物流公司都有特定的运单号规则,参照该运单号规则在前端对运单号是否符合对应的规则进行校验,不符合规则的不允许其发货。 |
614 | 参数无效,格式不对、非法值、越界等 | 请对照参数表 |
614 | 参数为空 | 必填参数为空,如 tid 为空,请确保传入的必选参数不为空,请对照参数表 |
614 | 地址库不存在或该地址库不属于当前用户 | 可以通过此接口查询地址库 taobao.logistics.address.search |
614 | 没有用户 ID | 检查用户是否登录,或 session 过期 |
614 | 已生成发货单 | 已经生成发货单的订单不能发货 |
614 | 物流公司名称过长 | 物流公司名称过长,长度在 20 个字符 |
614 | 该物流公司不支持自己联系 | 该物流公司不支持自己联系,通过 taobao.logistics.companies.get 查询支持自已联系的物流公司 |
614 | 该交易状态不正确,不能发货 | 建议在发货前先调用交易 API 如:taobao.trade.fullinfo.get 来查询这个订单的状态,根据订单状态再做相应的处理,避免状态为已发货订单进行重复发货 |
614 | 对不起,您尚未成功订购 E 速宝物流服务 | 订购 E 速宝服务 |
614 | 对不起,该订单超出了 E 速宝的服务范围,请联系小二处理 | 检查收货地址和发货地址 |
614 | top 接口不允许对拆单订单操作 | top 接口不允许对拆单订单进行操作 |
614 | 运单号被识别为假,无法发货 | 请使用正确的运单号 |
614 | 您填写的运单号已经过期无效,不允许用此物流运单号发货 | 请使用正确的运单号 |
614 | 您此笔交易订单付款时间晚于快递公司揽收时间,此物流运单号不能使用 | 请使用正确的运单号 |
614 | 您此笔交易订单收货人地址信息与快递公司签收地址信息不匹配,此物流运单号不能使用 | 请使用正确的运单号 |
614 | 运单号已被使用,当前订单非真, 此物流单号不能使用 | 请使用正确的运单号 |
614 | 您填写的运单号已被使用,不允许用此物流运单号发货 | 请使用正确的运单号 |
614 | 您的收货人信息与发货人信息一致,不允许发货 | 请确认信息 |
614 | 拆单标记 和子订单列表两者必须都填或者都不填 | 拆单标记 和子订单列表两者必须都填或者都不填 |
614 | 子订单交易号为空 | 当传递 isSplit 为 1 后,必须传递该订单下的子订单交易号。 |
614 | 订单已拆单,必须传入子交易号列表 | 这个是已经被拆单的,操作这个订单发货时,必须带有子订单列表 |
614 | 订单已拆单,请走拆单逻辑 | 订单已拆单,必须传入 issplit 和子订单列表 |
614 | 当前操作的订单是拆单订单,拆单标记和子订单列表都必须传递 | 当前操作的订单是拆单订单,拆单标记和子订单列表都必须传递 |
614 | 订单已经被拆单,isSplit 必须是 1 | 订单已经被拆单,isSplit 必须是 1 |
614 | 接入拆单异常 | 拆单逻辑未知错误,请确认发货参数 |
614 | 未查到物流订单 | 未查到物流订单,请确认参数后重试 |
614 | 当前操作的订单不是拆单订单,拆单标记和子订单列表都不能带入 | 当前操作的订单不是拆单订单,拆单标记和子订单列表都不能带入 |
614 | 子订单号没有精确匹配 | 传入的子订单交易号必须完全匹配物流包裹中的子订单 |
614 | 输入的用户 Id 或交易订单号不正确,未查到交易订单 | 请输入正确的用户 ID 和交易订单号 |
614 | 非拆单订单的物流订单数不等于 1 | 请联系淘宝物流开发 |
614 | 物流订单不存在 | sessionkey 对应的 nick 和订单(tid) 对应 nick 不一致导致报错,调用发货接口前要先判断 tid 是不是属于卖家自身的 tid 。 |
614 | 拆单校验未通过 | 检查拆单发货时参数,确认相关参数正确 |
614 | 发货类型不匹配。如虚拟商品订单、家装类订单(仅能通过卖家后台页面发货),如使用该接口发货,会出现这个报错。 | 报错后禁止重试,并提示用户通过虚拟发货接口或到页面操作发货 |
614 | feature 参数格式不对。 | 对照文档的示例检查 feature 参数 ,按文档说明确认正确后重试。 |
614 | 系统异常 | 1、先检查是参数是否正确。如 company_code 传人了 out_sid(运单号);订单号(tid)和 sessionkey 对应的不是同一个卖家等 。2、若参数无误,报错后可稍等后重试 1 次 。 |
614 | 非法的 nick,无权查询 | 入参时 tid 和 sessionkey 对应的卖家 nick 不是同一个导致, 确认一致后重试 |
614 | 发货异常,请稍等后重试 | 发货异常,请稍等后重试 |
614 | 物流公司不存在或被禁用 | 一般是发货时,非淘宝合作物流公司,company_code 传人 other 等英文字符导致 。发货时如非淘宝合作物流公司,请直接输入物流公司名称,不能填 other |
614 | 发货使用物流公司不支持 | 部分物流公司被清退导致(详细可参考http://bbs.taobao.com/catalog/thread/567766-317065096.htm?spm=0.0.0.0.ReLZOb),更换其它物流公司发货 |
614 | 物流订单状态不为新建状态,无需发货处理 | 发货时检查订单状态,已发货订单不要重复发货,仅对待发货的订单发货。 |
614 | 物流的订单状态为关闭状态,无需发货 | 发货时检查订单状态,非等待发货状态,无需发货 |
614 | 您的订单无法通过此接口进行发货操作 | 请联系淘宝小二进行咨询 |