快遞鳥全球物流單號查詢API接口旨在爲電商、電商平臺、物流工具、打單工具、倉儲系統、移動APP等系統提供專業、穩定、優質的API 接口服務,知足不一樣用戶的物流管理需求。本文檔就各個API接口進行詳細說明,方便用戶快速對接及使用快遞鳥服務。
php
快遞鳥集合全球418家快遞物流公司系統,打包成統一標準接口,爲電商倉儲,ERP系統,電商平臺,跨境電商、倉儲(WMS)、小程序等有系統的用戶提供物流快遞單號查詢接口解決方案,支持高併發、支持的快遞公司多、接口穩定性、及時性都有保障。java
目前爲止,已有各大商家、電商平臺、倉儲、清關公司、ERP、WMS、TMS、CRM、快遞櫃等至少十萬家發貨方在使用快遞鳥API對接解決方案,包括髮貨管理、智選物流、電子面單、貨物在途監控、貨款金融等全流程物流服務。另外一端物流服務方也有全球四百多家物流快遞公司與快遞鳥完成接口對接。電商平臺蘑菇街、拼多多、國美、網易考拉接的就是快遞鳥的接口,也有不少ISV服務商(好比網店管家、商派、E店寶)也對接的快遞鳥API接口。算法
【電商快遞單號查詢場景需求描述】
電商平臺及ISV商家對物流api接口的需求有不少,今天咱們主要分享的就是快遞鳥快遞單號查詢接口的對接指南,快遞單號查詢接口對接的應用場景有不少,不少場景會遇到,最主要的就是電商網站用戶打開「個人訂單」時調用此API顯示物流信息詳情,電商管理後臺的物流系統,客服在對帳前查詢全部運單的簽收狀態,並追蹤問題,電商平臺對商家物流管控,要求必須在多久快遞必須發出要看到攬件狀態,多久必須收到貨物看到簽收狀態,根據這些狀態對商家管控從而提升用戶的總體滿意度。下圖是電商平臺、買家、商家的下單發貨流程圖。json
【快遞單號查詢接口對接使用流程】
一、將快遞單號和快遞公司編碼發送給快遞鳥
二、快遞鳥根據單號和快遞公司查詢到物流軌跡狀態
三、快遞鳥將查詢到的物流軌跡狀態反饋給電商平臺或ISV服務商
四、電商平臺或ISV服務商接收數據並實時處理作數據展現或應用小程序
【快遞單號查詢接口描述說明】
(1)查詢接口支持按照運單號查詢(單個查詢)。
(2)接口須要指定快遞單號的快遞公司編碼,格式不對或則編碼錯誤都會返失敗的信息。
如:EMS物流單號應選擇快遞公司編碼(EMS)查看快遞公司編碼
(3)返回的物流跟蹤信息按照發生的時間升序排列。
(4)接口指令1002。
(5)接口支持的消息接收方式爲HTTP POST,請求方法的編碼格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。
(6)測試地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json
(7)正式地址:http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx
請求系統級參數說明:api
備註:R-必填(Required),O-可選(Optional),C-報文中該參數在必定條件下可選(Conditional)
【接口參數】
請求內容字段定義:安全
返回參數定義:併發
【快遞單號查詢接口示例】app
沒有物流軌跡的
{
"EBusinessID": "1109259",
"Traces": [],
"OrderCode": "",
"ShipperCode": "SF",
"LogisticCode": "118461988807",
"Success": false,
"Reason": null
}
有物流軌跡的
{
"EBusinessID": "1109259",
"OrderCode": "",
"ShipperCode": "SF",
"LogisticCode": "118461988807",
"Success": true,
"State": 3,
"Reason": null,
"Traces": [
{
"AcceptTime": "2014/06/25 08:05:37",
"AcceptStation": "正在派件..(派件人:鄧裕富,電話:18718866310)[深圳 市]",
"Remark": null
},
{
"AcceptTime": "2014/06/25 04:01:28",
"AcceptStation": "快件在 深圳集散中心 ,準備送往下一站 深圳 [深圳市]",
"Remark": null
},
{
"AcceptTime": "2014/06/25 01:41:06",
"AcceptStation": "快件在 深圳集散中心 [深圳市]",
"Remark": null
},
{
"AcceptTime": "2014/06/24 20:18:58",
"AcceptStation": "已收件[深圳市]",
"Remark": null
},
{
"AcceptTime": "2014/06/24 20:55:28",
"AcceptStation": "快件在 深圳 ,準備送往下一站 深圳集散中心 [深圳市]",
"Remark": null
},
{
"AcceptTime": "2014/06/25 10:23:03",
"AcceptStation": "派件已簽收[深圳市]",
"Remark": null
},
{
"AcceptTime": "2014/06/25 10:23:03",
"AcceptStation": "簽收人是:已簽收[深圳市]",
"Remark": null
}
]
}ide
【接入流程】
快遞鳥單號自動識別接口(API)接入視頻教程
快遞鳥單號查詢接口(API)接入視頻教程
登陸快遞鳥官網註冊頁面註冊快遞鳥帳號
登陸快遞鳥用戶管理後臺
注:登陸快遞鳥用戶管理後臺後得到用戶ID和APIKey對應各demo中的EBusinessID、AppKey。
小知識:EBusinessID跟APIKey是什麼?EBusinessID跟APIKey您在快遞鳥網站註冊以後快遞鳥分配的密鑰(對應官網上的用戶ID和API key),用於保證應用來源的可靠性,避免應用僞造,被不法使用。
3.進入「個人會員中心」進行實名認證
3.一、認證類型、應用類型根據用戶實際狀況選擇便可,接口返回數據與選擇結果無關;
3.二、標記爲*的爲必填,要求上傳清晰、jpg格式且小於2M的證件圖片;
3.三、技術對接人信息爲用戶方對接工程師的信息;
3.四、若有其餘疑問可進入快遞鳥官網加入右側的QQ羣進行諮詢。
4.認證成功後,進入「產品服務管理」,開通相關會員服務
4.一、物流查詢(免費版)會員套餐爲免費版,有效期1年結束後,如在近3個月內有數據交互系統會自動免費續期;
4.二、若有其餘疑問可進入官網加入商務合做羣(羣號:616310430)進行諮詢。
5.開發對接
5.一、即時查詢(RequestType:1002/8001)日查詢次數<=3000次對接即時查詢接口
5.1.一、請求接口以前須要先實名認證,開通相關會員服務,不然會請求失敗並返回提示「未申請開通接口」;
5.1.二、接口開發能夠下載「快遞鳥接口技術文檔」進行參考;即時查詢,參考技術文檔中的4.1或5.1.1部分;
5.1.三、接口開發能夠下載「即時查詢demo」進行參考(僅提供了.NET、Java、PHP三種語言demo);
5.1.四、查看快遞公司對應快遞鳥的編碼能夠下載「2018快遞鳥接口支持快遞公司編碼列表.xlsx」。
5.1.五、接入過程當中若有疑問請先參考快遞鳥官網常見問題進行解決,也能夠進入快遞鳥官網加入技術對接羣進行諮詢。
5.二、物流跟蹤(RequestType:1008/8008)日查詢次數>3000次對接物流跟蹤接口
5.2.一、請求接口以前須要先實名認證,開通相關會員服務,不然會請求失敗並返回提示「未申請開通接口」;
5.2.二、接口開發需下載「快遞鳥接口技術文檔」進行查看;物流跟蹤,參考技術文檔中的4.2或5.1.2部分;
5.2.三、開發訂閱接口:
5.2.3.一、能夠下載「物流跟蹤demo」進行參考(僅提供了.NET、Java、PHP三種語言的demo),
其餘語言開發的用戶須要根據技術文檔自行開發;
5.2.3.二、測試訂閱接口,對照技術文檔正確返回表明訂閱接口對接成功,詳情可見技術文檔。
5.2.四、開發推送接口:
5.2.4.一、無demo提供,推送時會推送requestType、requestData和DataSign三個參數,您開發一個推送接口接收這三個參數就行,成功接收後須要在5S內給快遞鳥返回成
功收數據的報文,不然超時。RequestData中包含應用級參數,即物流軌跡(詳情看技術文檔);
5.2.4.二、在沙箱調試平臺(沙箱調試平臺地址:http://kdniao.com/UserCenter/v2/SandBox/PushQueryParam.aspx)配置回調地址,測試推送接口。回調地址是用戶提供,
用於接收快遞鳥推送的物流信息的,只要是外網能夠訪問的就行。測試、配置步驟以下:
a、填寫回調地址:
b、點擊【生成】後 應用級參數報文(RequestData)就是推送到用戶第一步時填寫的回調地址上的測試物流信息。
c、點擊【調用】,用戶接收到測試的物流信息後,用戶須要在 應用級參數報文區域 返回成功接收的信號給快遞鳥(注:字段間不要存在空格,空格會影響返回結果),
返回格式:{"EBusinessID":"1237100","UpdateTime":"2015-03-11 16:26:11","Success":true,"Reason": ""}
d、調用結果顯示爲請求成功後即用戶開發的推送接口經過測試。
e、測試經過後回到第一步填寫回調地址的位置點擊【配置】,彈出彈框,填寫手機號(必須是註冊快遞鳥帳號的手機號)、驗證碼、
回調地址,點擊【保存】配置成功便可在正式環境使用,下次若是須要修改回調地址同初次配置回調地址步驟一致。
5.2.五、訂閱接口、推送接口分別測試成功後,可以使用正式地址進行訂閱真實的快遞單號,快遞鳥通常會在2-12小時內推送物流信息至您已經配置好的回調地址上;
5.2.六、接口開發查看快遞公司對應快遞鳥的編碼能夠下載「2019快遞鳥接口支持快遞公司編碼列表.xlsx」;
5.2.七、接入過程當中若有疑問請先參考快遞鳥官網常見問題進行解決,也能夠進入快遞鳥官網加入技術對接羣進行諮詢。
【你可能還關心的問題】
一、問題:快遞鳥接口有併發要求嗎?
快遞鳥即時查詢接口併發不超過10次/秒,物流跟蹤接口訂閱不超過30次/秒,電子面單接口下單不超過20次/秒。
二、問題:快遞鳥api收費標準是什麼?
快遞鳥查詢接口和電子面單等接口都是免費提供的,若是您對數據的狀態時效、服務等有特別的需求,可聯繫快遞鳥工做人員,爲您量身定製專屬解決方案,具體收費會根據您的需求進行商定。
三、問題:快遞鳥數據更新實時性如何?
即時查詢接口:實時獲取當前最新軌跡信息,數據與官網信息一致。
物流跟蹤接口:快遞鳥每2小時到快遞公司獲取軌跡,若是您訂閱的單號沒有軌跡更新,間隔2小時後再次到快遞公司獲取軌跡,依次循環直到有物流軌跡更新,獲取到新軌跡後進行排隊序列推送。
四、問題:快遞鳥數據準確性,會不會存在物流狀態不許確的問題?
軌跡信息準確度大於99.9%。物流軌跡信息保持與快遞公司官網一致,偶爾存在快遞公司提供的接口數據與官網不一致的狀況,不一致狀況小於0.1%。
五、問題:快遞鳥即時查詢接口和物流跟蹤接口有什麼區別?
(1)接入方式不同:
即時查詢接口,根據快遞單號和快遞公司編碼實時查詢物流軌跡信息。
物流跟蹤接口,用戶訂閱快遞號,快遞鳥系統會定時推送新的物流信息。
(2)實現的功能不同:
即時查詢接口,單次請求只能查詢一個單的物流信息,支持10次/S的併發請求。
物流跟蹤接口,訂閱推送的模式獲取軌跡信息,發起一次訂閱後,快遞鳥會持續監控推送更新的軌跡信息,直到簽收。
(3)查詢單量不同:
即時查詢每日查詢次數<=3000次,物流跟蹤不限制訂閱單量,並可一直得到每一個單號的更新信息。
六、問題: 快遞鳥物流跟蹤數據的時效性怎樣?
在接收到新的快遞單後,會當即加入監控隊列,有結果的話會即時內返回,沒有結果的話,會等待必定時間(如2小時)再進行下一次監控。對於這些後續的監控,若是某運單號在快遞公司官網對應的結果B,B最新一條狀態所對應的時間爲T1,快遞鳥將B推送給貴公司的時間爲T2,那麼|T2-T1|通常在0~2~4 個小時之內,但我方會不斷地向貴方進行推送,使運單狀態能持續地更新。
七、問題:快遞鳥物流跟蹤是須要咱們本身開發接收接口是嗎?
對接物流跟蹤接口,你須要開發訂閱接口(將單號和快遞公司編碼訂閱給快遞鳥。有訂閱接口的.net,php和java版本demo,你能夠參考下。還有本身開發一個推送接口(接收快遞鳥推送的物流軌跡),開發完後登陸快遞鳥沙箱後臺調試推送接口,調試成功後可在沙箱後臺自助配置推送接口。
八、問題:快遞鳥物流跟蹤的推送接口怎麼作?
推送接口是用於接收推送的物流信息,推送接口是咱們調用你的接口,你只須要接收參數,在沙箱後臺配置你的回調地址就行,RequestData中包含應用級參數,即物流軌跡,推送時會推送requestType、requestData和DataSign三個參數(詳情看技術文檔),您開發一個推送接口接收這三個參數就行。
九、問題:快遞鳥的物流跟蹤API實現原理是什麼?
訂閱接口的工做原理是:用戶將快遞單號訂閱給咱們,咱們即刻加入隊列去物流公司官方接口查詢,查詢有軌跡就給用戶推送。若是沒有更新數據,兩個小時後會再次去物流公司官方接口查詢,有新數據就將全量數據推送給用戶,若是沒有更新數據,兩個小時後再重複上述動做,直到運單簽收。
十、問題:快遞鳥支持哪些快遞物流公司查詢接口?
快遞鳥支持418家快遞物流公司的接口,具體在快遞鳥官網下載《2019快遞鳥接口支持快遞公司編碼.xlsx》查看。
1 接口規範說明
1.1 接口規範及說明
1.1.1 報文及報文編碼
報文格式:Json格式
請求方法的編碼格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"
交互協議上統一用UTF-8,避免傳遞中文數據出現亂碼。
1.1.2 接口數據包結構
圖例- 數據包結構(系統級{數據})
1.1.3 JSON示例
string used = "1237100";//僅做爲示例ID,不可用來實際使用
//加密私鑰,由快遞鳥提供
string keyValue = "56da2cf8-c8a2-44b2-b6fa-476cd7d1ba17";//僅做爲示例Key,不可用來實際使用
//請求地址
string url = "http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx";
//2-json
string DataType = "2";
//字符編碼採用UTF-8
string charset = "UTF-8";
//JSON字符串string
string jsonStr = "{\"OrderCode\":\"\",\"ShipperCode\":\"SF\",\"LogisticCode\":\"118461988807\"}";
//把(jsonStr+APIKey)進行MD5加密,而後Base64編碼,最後 進行URL(utf-8)編碼
datasign = HttpUtility.UrlEncode(base64(MD5(jsonStr + keyValue, "UTF-8"), "UTF-8"), Encoding.UTF8);
//請求報文參數
string PostStr = "RequestType=1002&EBusinessID= used &RequestData=jsonStr &DataSign= datasign&DataType=DataType";
//通信協議使用Http協議Post請求方式
string post = this.DoPost(url, PostStr);
1.1.4 系統級參數
*快遞全部接口統一使用此係統級參數,根據不一樣的請求接口指令接入不一樣的接口。
1.1.5 流程示意圖
1.1.6 名詞定義
必需要求
說明
R
必填(Required)。
O
可選(Optional)
C
必定條件下可選(Conditional)
1.2 簽名說明
1.2.1 關於簽名
快遞鳥和第三方電子商務公司系統進行對接,有必定的安全機制。採用IP認證加簽名的方式對接,具體方案以下:
1.防止數據被篡改
在POST請求中會傳遞5個必須(R)參數
RequestData==數據內容(URL編碼:UTF-8)
EBusinessID==用戶ID
RequestType=請求指令類型
DataSign== 數據內容簽名:把(請求內容(未編碼)+ApiKey)進行MD5加密,而後Base64編碼,最後進行URL(utf-8)編碼
DataType==2(返回數據類型爲json)
注:
DataSign生成後,對方接收到數據後,以一樣的算法進行簽名(推送接口RequestType爲101/102不須要進行URL編碼),生成摘要,對比二者的摘要是否相同,若是不一樣,說明傳遞過程當中發生數據篡改。
2.調用接口的身份認證
註冊成爲快遞鳥用戶後,會生成對應的用戶ID和APIKey,用戶ID至關於用戶名,APIKey至關於密碼。
舉例:
1.假設
RequestData (JSON)內容爲:
{'OrderCode':'','ShipperCode':'SF','LogisticCode':'118954907573'}
通過URL(UTF-8)編碼的內容爲:
%7b%27OrderCode%27%3a%27%27%2c%27ShipperCode%27%3a%27SF%27%2c%27LogisticCode%27%3a%27118954907573%27%7d;
EBusinessID=1237100【示例ID,不可用來實際使用】
APIKey=56da2cf8-c8a2-44b2-b6fa-476cd7d1ba17【示例Key,不可用來實際使用】
2.那麼DataSign簽名的內容爲
{'OrderCode':'','ShipperCode':'SF','LogisticCode':'118954907573'}56da2cf8-c8a2-44b2-b6fa-476cd7d1ba17
通過md5和base64後的內容就爲:OWFhM2I5N2ViM2U2MGRkMjc4YzU2NmVlZWI3ZDk0MmE=,
在通過URL(UTF-8)編碼的內容爲:OWFhM2I5N2ViM2U2MGRkMjc4YzU2NmVlZWI3ZDk0MmE%3d
最終要發送的數據爲:
RequestType=1002&EBusinessID=1237100&RequestData =%7b%27OrderCode%27%3a%27%27%2c%27ShipperCode%27%3a%27SF%27%2c%27LogisticCode%27%3a%27118954907573%27%7d&DataSign=OWFhM2I5N2ViM2U2MGRkMjc4YzU2NmVlZWI3ZDk0MmE%3d&DataType=2
3.接收方收到數據後,得到
EBusinessID 和RequestData和DataSign等這幾個數據。
4.接收方對EBusinessID獲得APIKey,RequestData+APIKey的數據進行
md5和base64後的內容就爲
OWFhM2I5N2ViM2U2MGRkMjc4YzU2NmVlZWI3ZDk0MmE=
5.接收方判斷簽名後的數據跟傳遞過來的DataSign是否一致,若是一致進行業務操做,若是不一致返回錯誤。
1.2.2 (C#)DataSign簽名加密代碼
///<summary>
///電商Sign簽名
///</summary>
///<param name="content">內容</param>
///<param name="keyValue">APIkey</param>
///<param name="charset">URL編碼 </param>
///<returns>DataSign簽名</returns>
Public String Encrypt (String content, String keyValue, String charset)
{
if (keyValue != null)
{
return base64(MD5(content + keyValue, charset), charset);
}
return base64(MD5(content, charset), charset);
}
///<summary>
/// 字符串MD5加密
///</summary>
///<param name="Text">要加密的字符串</param>
///<returns>密文</returns>
Private string MD5(string Text, string charset)
{
byte[] buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(Text);
try
{
System.Security.Cryptography.MD5CryptoServiceProvider check;
check = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] somme = check.ComputeHash(buffer);
string ret = "";
foreach (byte a in somme)
{
if (a < 16)
ret += "0" + a.ToString("X");
else
ret += a.ToString("X");
}
return ret.ToLower();
}
catch
{
throw;
}
}
Private static string base64(String str, String charset)
{
returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));
}
1.3 接入步驟
1.快遞鳥官網註冊帳號成爲快遞鳥用戶;
快遞鳥提供的用戶ID是調用接口服務的身份證實,不可更改、不可轉用,API Key是應用訪問API的簽名附加密鑰,必須妥善保存。二者關係相似於用戶名和密碼,二者都會在簽名和業務參數中使用。
官網登陸網址:
官網註冊網址:
官網接口介紹網址:
2.登錄用戶後臺,進行實名認證,並開通會員服務;
3.根據技術文檔進行開發並在調試平臺測試聯調;
快遞鳥提供各個API接口的DEMO(包括:.Net版本、Java版本、PHP版本)供開發參考。
DEMO下載地址:http://www.kdniao.com/documents-demo
4.系統發佈上線。
注意:測試環境中獲取的測試快遞單號不可用於實際發貨。