
查看快递
-
2023年2月17日发(作者:)快递鸟官网
注册账号
登录管理后
台实名认证
购买会员
套餐服务
按用户需求
接入接口
1、应用场景
(1)电商网站用户打开“我的订单”时调用此API显示物流信息详情。
(2)电商管理后台的物流系统,客服在对账前查询所有运单的签收状态,
并追踪问题。
(3)每日调用次数限制不超过3000次,如超过该限制,请对接订阅推送
API。
2、是否需要授权
要
3、接口描述/说明
(1)查询接口支持按照运单号查询(单个查询)。
(2)接口需要指定快递单号的快递公司编码,格式不对或则编码错误都
会返失败的信息。
如:EMS物流单号应选择快递公司编码(EMS)查看快递公司编码
(3)返回的物流跟踪信息按照发生的时间升序排列。
(4)接口指令1002。
(5)接口支持的消息接收方式为HTTPPOST,请求方法的编码格式(utf-8):
\"application/x-www-form-urlencoded;charset=utf-8\"。
(6)请求系统级参数说明:
参数名称类型说明
必
须
要
求
RequestDataString
请求内容需进行URL(utf-8)编码。请求内容
JSON格式,须和DataType一致。
R
EBusinessIDString商户ID,请在我的服务页面查看。R
RequestTypeString请求指令类型:1002R
DataSignString
数据内容签名:把(请求内容(未编码)+AppKey)
进行MD5加密,然后Base64编码,最后进行
URL(utf-8)编码。详细过程请查看Demo。
R
DataTypeString请求、返回数据类型:2-json;O
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一
定条件下可选(Conditional)。
(7)接口地址:
APIID:点击申请
APIKey:点击申请
API地址:
/Ebusiness/
4、接口参数
(1)请求内容字段定义
参数类型说明
必须要
求
OrderCodeString订单编号O
ShipperCodeString快递公司编码R
LogisticCodeString物流单号R
(3)返回参数定义
参数名称类型说明
必须要
求
EBusinessIDString用户IDR
OrderCodeString订单编号O
ShipperCodeString快递公司编码R
LogisticCodeString物流运单号R
SuccessBool成功与否R
ReasonString失败原因O
StateString
物流状态:2-在途中,3-签收,4-问
题件
R
Traces
Trace
AcceptTimeString时间R
AcceptStationString描述R
RemarkString备注O
5、示例
(1)请求示例
JSON格式
showsourceviewsource
print?
1{
2\"OrderCode\":\"\",
3\"ShipperCode\":\"SF\",
4\"LogisticCode\":\"8\"
5}
(2)返回示例
JSON格式
showsourceviewsource
print?
01没有物流轨迹的
02{
03\"EBusinessID\":\"1109259\",
04\"Traces\":[],
05\"OrderCode\":\"\",
06\"ShipperCode\":\"SF\",
07\"LogisticCode\":\"7\",
08\"Success\":false,
09\"Reason\":null
10}
11有物流轨迹的
12{
13\"EBusinessID\":\"1109259\",
14\"OrderCode\":\"\",
15\"ShipperCode\":\"SF\",
16\"LogisticCode\":\"7\",
17\"Success\":true,
18\"State\":3,
19\"Reason\":null,
20\"Traces\":[
21{
22\"AcceptTime\":\"2014/06/2508:05:37\",
23
\"AcceptStation\":\"正在派件..(派件人:
邓裕富,电话:xxxxxxxxxx)[深圳市]\",
24\"Remark\":null
25},
26{
27\"AcceptTime\":\"2014/06/2504:01:28\",
28
\"AcceptStation\":\"快件在深圳集散中
心,准备送往下一站深圳[深圳市]\",
29\"Remark\":null
30},
31{
32\"AcceptTime\":\"2014/06/2501:41:06\",
33
\"AcceptStation\":\"快件在深圳集散中心
[深圳市]\",
34\"Remark\":null
35},
36{
37\"AcceptTime\":\"2014/06/2420:18:58\",
38\"AcceptStation\":\"已收件[深圳市]\",
39\"Remark\":null
40},
41{
42\"AcceptTime\":\"2014/06/2420:55:28\",
43\"AcceptStation\":\"快件在深圳,准备送
往下一站深圳集散中心[深圳市]\",
44\"Remark\":null
45},
46{
47\"AcceptTime\":\"2014/06/2510:23:03\",
48
\"AcceptStation\":\"派件已签收[深圳
市]\",
49\"Remark\":null
50},
51{
52\"AcceptTime\":\"2014/06/2510:23:03\",
53
\"AcceptStation\":\"签收人是:已签收[深
圳市]\",
54\"Remark\":null
55}
56]
57}
6、单号识别接口Demo工具.JAVA版DEMO
edReader;
ption;
treamReader;
StreamWriter;
ortedEncodingException;
LConnection;
;
oder;
eDigest;
p;
;
/**
*
*快递鸟单号识别接口
*
*@技术QQ群:xxxxx
*@copyright:深圳市快金数据技术服务有限公司
*
*
*ID和Key请到官网申请:/
*/
publicclassKdApiOrderDistinguish{
//DEMO
publicstaticvoidmain(String[]args){
KdApiOrderDistinguishapi=newKdApiOrderDistinguish();
try{
Stringresult=erTracesByJson(\"3967950525457\");
(result);
}catch(Exceptione){
tackTrace();
}
}
//电商ID
privateStringEBusinessID=\"请到快递鸟官网申请
/\";
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
privateStringAppKey=\"请到快递鸟官网申请
/\";
//请求url
privateString
ReqURL=\"/Ebusiness/\";
/**
*Json方式单号识别
*@throwsException
*/
publicStringgetOrderTracesByJson(StringexpNo)throwsException{
StringrequestData=\"{\'LogisticCode\':\'\"+expNo+\"\'}\";
Mapparams=newHashMap();
(\"RequestData\",urlEncoder(requestData,\"UTF-8\"));
(\"EBusinessID\",EBusinessID);
(\"RequestType\",\"2002\");
StringdataSign=encrypt(requestData,AppKey,\"UTF-8\");
(\"DataSign\",urlEncoder(dataSign,\"UTF-8\"));
(\"DataType\",\"2\");
Stringresult=sendPost(ReqURL,params);
//根据公司业务处理返回的信息......
returnresult;
}
/**
*MD5加密
*@paramstr内容
*@paramcharset编码方式
*@throwsException
*/
@SuppressWarnings(\"unused\")
privateStringMD5(Stringstr,Stringcharset)throwsException{
MessageDigestmd=tance(\"MD5\");
(es(charset));
byte[]result=();
StringBuffersb=newStringBuffer(32);
for(inti=0;i<;i++){
intval=result[i]&0xff;
if(val<=0xf){
(\"0\");
}
(tring(val));
}
ng().toLowerCase();
}
/**
*base64编码
*@paramstr内容
*@paramcharset编码方式
*@throwsUnsupportedEncodingException
*/
privateStringbase64(Stringstr,Stringcharset)throws
UnsupportedEncodingException{
Stringencoded=base64Encode(es(charset));
returnencoded;
}
@SuppressWarnings(\"unused\")
privateStringurlEncoder(Stringstr,Stringcharset)throws
UnsupportedEncodingException{
Stringresult=(str,charset);
returnresult;
}
/**
*电商Sign签名生成
*@paramcontent内容
*@paramkeyValueAppkey
*@paramcharset编码方式
*@throwsUnsupportedEncodingException,Exception
*@returnDataSign签名
*/
@SuppressWarnings(\"unused\")
privateStringencrypt(Stringcontent,StringkeyValue,String
charset)throwsUnsupportedEncodingException,Exception
{
if(keyValue!=null)
{
returnbase64(MD5(content+keyValue,charset),charset);
}
returnbase64(MD5(content,charset),charset);
}
/**
*向指定URL发送POST方法的请求
*@paramurl发送请求的URL
*@paramparams请求的参数集合
*@return远程资源的响应结果
*/
@SuppressWarnings(\"unused\")
privateStringsendPost(Stringurl,Mapparams){
OutputStreamWriterout=null;
BufferedReaderin=null;
StringBuilderresult=newStringBuilder();
try{
URLrealUrl=newURL(url);
HttpURLConnectionconn=(HttpURLConnection)
nnection();
//发送POST请求必须设置如下两行
utput(true);
nput(true);
//POST方法
uestMethod(\"POST\");
//设置通用的请求属性
uestProperty(\"accept\",\"*/*\");
uestProperty(\"connection\",\"Keep-Alive\");
uestProperty(\"user-agent\",
\"Mozilla/4.0(compatible;MSIE6.0;WindowsNT
5.1;SV1)\");
uestProperty(\"Content-Type\",
\"application/x-www-form-urlencoded\");
t();
//获取URLConnection对象对应的输出流
out=newOutputStreamWriter(putStream(),
\"UTF-8\");
//发送请求参数
if(params!=null){
StringBuilderparam=newStringBuilder();
for(entry:
et()){
if(()>0){
(\"&\");
}
(());
(\"=\");
(ue());
//n(()+\":\"+ue());
}
//n(\"param:\"+ng());
(ng());
}
//flush输出流的缓冲
();
//定义BufferedReader输入流来读取URL的响应
in=newBufferedReader(
newInputStreamReader(utStream(),
\"UTF-8\"));
Stringline;
while((line=ne())!=null){
(line);
}
}catch(Exceptione){
tackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
();
}
if(in!=null){
();
}
}
catch(IOExceptionex){
tackTrace();
}
}
ng();
}
privatestaticchar[]base64EncodeChars=newchar[]{
\'A\',\'B\',\'C\',\'D\',\'E\',\'F\',\'G\',\'H\',
\'I\',\'J\',\'K\',\'L\',\'M\',\'N\',\'O\',\'P\',
\'Q\',\'R\',\'S\',\'T\',\'U\',\'V\',\'W\',\'X\',
\'Y\',\'Z\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\',
\'g\',\'h\',\'i\',\'j\',\'k\',\'l\',\'m\',\'n\',
\'o\',\'p\',\'q\',\'r\',\'s\',\'t\',\'u\',\'v\',
\'w\',\'x\',\'y\',\'z\',\'0\',\'1\',\'2\',\'3\',
\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'+\',\'/\'};
publicstaticStringbase64Encode(byte[]data){
StringBuffersb=newStringBuffer();
intlen=;
inti=0;
intb1,b2,b3;
while(i b1=data[i++]&0xff; if(i==len) { (base64EncodeChars[b1>>>2]); (base64EncodeChars[(b1&0x3)<<4]); (\"==\"); break; } b2=data[i++]&0xff; if(i==len) { (base64EncodeChars[b1>>>2]); (base64EncodeChars[((b1&0x03)<<4)|((b2& 0xf0)>>>4)]); (base64EncodeChars[(b2&0x0f)<<2]); (\"=\"); break; } b3=data[i++]&0xff; (base64EncodeChars[b1>>>2]); (base64EncodeChars[((b1&0x03)<<4)|((b2& 0xf0)>>>4)]); (base64EncodeChars[((b2&0x0f)<<2)|((b3& 0xc0)>>>6)]); (base64EncodeChars[b3&0x3f]); } ng(); } 5、}开发对接 5.1、即时查询(RequestType:1002/8001) 5.1.1、请求接口之前需要先实名认证,开通相关会员服务,否则会请求失 败并返回提示“未申请开通接口”; 5.1.2、接口开发可以下载“快递鸟接口技术文档”进行参考;即时查询, 参考技术文档中的4.1或5.1.1部分; 5.1.3、接口开发可以下载“即时查询demo”进行参考(仅提供了.NET、 Java、PHP三种语言demo); 5.1.4、查看快递公司对应快递鸟的编码可以下载“2018快递鸟接口支持 快递公司编码列表.xlsx”。 5.1.5、接入过程中如有疑问请先参考快递鸟官网常见问题进行解决 (/help),也可以进入快递鸟官网加入 技术对接群进行咨询。 注:快递鸟官网-帮助与文档地址 (/documents) 5.2、物流跟踪(RequestType:1008/8008) 5.2.1、请求接口之前需要先实名认证,开通相关会员服务,否则会请求 失败并返回提示“未申请开通接口”; 5.2.2、接口开发需下载“快递鸟接口技术文档”进行查看;物流跟踪, 参考技术文档中的4.2或5.1.2部分; 5.2.3、开发订阅接口: 5.2.3.1、可以下载“物流跟踪demo”进行参考(仅提供了.NET、Java、 PHP三种语言的demo), 其他语言开发的用户需要根据技术文档自行开发; 5.2.3.2、测试订阅接口,对照技术文档正确返回代表订阅接口对接成 功,详情可见技术文档。 5.2.4、开发推送接口: 5.2.4.1、无demo提供,推送时会推送requestType、requestData 和DataSign三个参数,您开发一个推送接口接收这三个参数 就行,成功接收后需要在5S内给快递鸟返回成功收数据的报 文,否则超时。RequestData中包含应用级参数,即物流轨 迹(详情看技术文档); 5.2.4.2、在沙箱调试平台(沙箱调试平台地址: /UserCenter/v2/SandBox/PushQuery )配置回调地址测试推送接口。 回调地址由用户配置提供,用于接收快递鸟推送的物流信息, 只要是外网可以访问的就行。测试、配置步骤如下: a、填写回调地址: b、点击【生成】后应用级参数报文(RequestData)就是推送到用 户第一步时填写的回调地址上的测试物流信息。 c、点击【调用】,用户接收到测试的物流信息后,用户需要在应 用级参数报文区域返回成功接收的信号给快递鸟 (注:字段间不要存在空格,否则会影响返回结果) 响应格式: {\"EBusinessID\":\"1237100\",\"UpdateTime\":\"2018-03-11 16:26:11\",\"Success\":true,\"Reason\":\"\"} d、调用结果显示为“请求成功”表示用户开发的推送接口通过测 试。 e、测试通过后回到第一步填写回调地址的位置点击【配置】,填 写手机号(必须是注册快递鸟账号的手机号)、验 证码、调试成功回调地址,点击【保存】配置成功即可在正式 环境使用,下次如果需要修改回调地址同初次配置 回调地址步骤一致。 5.2.5、订阅接口、推送接口分别测试成功后,可使用正式地址进行订阅真 实的快递单号,快递鸟一般会在2-12小时内推送物流信息至您已 经配置好的回调地址上; 5.2.6、接口开发查看快递公司对应快递鸟的编码可以下载“2018快递鸟 接口支持快递公司编码列表.xlsx”; 5.2.7、接入过程中如有疑问请先参考快递鸟官网常见问题进行解决 (/help),也可以进入快递鸟官网加入 技术对接群进行咨询。