
一家一家快遞公司去對接查詢接口,比較耗時、耗成本,一般都會選擇內建物流接口服務商,淘系用菜鳥,非淘系的用快遞鳥,快遞鳥是第三方物流接口服務商中比較好的,內建了全球418家物流快遞公司接口,為電商平台、電商系統商(ERP)、倉儲(WMS)、小程式等有系統的使用者提供智選物流、預約取件、實名快遞、電子面單、隐私快遞、快遞單号查詢、快遞單号智能識别、物流評價、物流短信提醒等全流程的物流接口解決方案,接口比較全面,支援的快遞公司多,接口穩定性及時性準确性都有保障,電商平台蘑菇街、拼多多、國美、網易考拉接的就是快遞鳥的接口,也有很多ISV服務商(比如網店管家、商派、E店寶)也對接了快遞鳥API,使用快遞鳥物流查詢API接口的使用者很多(有十幾個千人技術QQ群),淘系用菜鳥,非淘系的用快遞鳥,快遞鳥是第三方物流接口服務商中使用者使用最多的,服務資料量最大的,日服務單在3000萬+以上,服務體系也比較完善,有專門的客服、線上的技術支援、上門的技術服務指導、專業的物流方案服務顧問,在北京上海主要城市設有分公司團隊,和大部分物流快遞公司有接口對接及戰略合作協定,確定資料的安全穩定及時準确,整個對接過程也挺簡單的,到快遞鳥網站注冊申請到ApiKey和商戶ID,對接後聯調測試後上線就可以使用了,在快遞鳥網站也可下載下傳demo,對接更簡單便捷,一次性對接418家物流快遞公司接口。那麼使用快遞鳥api接口有哪些規則呢?
本文檔就各個API接口進行詳細說明,友善使用者快速對接及使用快遞鳥api接口服務。
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的簽名附加密鑰,必須妥善儲存。兩者關系類似于使用者名和密碼,兩者都會在簽名和業務參數中使用。
官網登入網址:
http://www.kdniao.com/官網注冊網址:
http://www.kdniao.com/reg官網接口介紹網址:
http://www.kdniao.com/api-all2.登陸使用者背景,進行實名認證,并開通會員服務;
3.根據技術文檔進行開發并在調試平台測試聯調;
快遞鳥提供各個API接口的DEMO(包括:.Net版本、Java版本、PHP版本)供開發參考。
DEMO下載下傳位址:
http://www.kdniao.com/documents-demo...4.系統釋出上線。
注意:測試環境中擷取的測試快遞單号不可用于實際發貨。