接口地址: 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 |
请求示例
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 | 您的订单无法通过此接口进行发货操作 | 请联系淘宝小二进行咨询 |
作者:v兔 链接:http://ask.vv-tool.com 来源:v兔电商知识库 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!