天天看點

免費物流快遞API接口的要求

免費物流快遞API接口的要求

一家一家快遞公司去對接查詢接口,比較耗時、耗成本,一般都會選擇內建物流接口服務商,淘系用菜鳥,非淘系的用快遞鳥,快遞鳥是第三方物流接口服務商中比較好的,內建了全球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 接口資料包結構

免費物流快遞API接口的要求

圖例- 資料包結構(系統級{資料})

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 系統級參數

免費物流快遞API接口的要求

*快遞所有接口統一使用此系統級參數,根據不同的請求接口指令接入不同的接口。

1.1.5 流程示意圖

1.1.6 名詞定義

必須要求

說明

R

必填(Required)。

O

可選(Optional)

C

一定條件下可選(Conditional)

1.2 簽名說明

1.2.1 關于簽名

快遞鳥和第三方電子商務公司系統進行對接,有一定的安全機制。采用IP認證加簽名的方式對接,具體方案如下:

免費物流快遞API接口的要求

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-all

2.登陸使用者背景,進行實名認證,并開通會員服務;

3.根據技術文檔進行開發并在調試平台測試聯調;

快遞鳥提供各個API接口的DEMO(包括:.Net版本、Java版本、PHP版本)供開發參考。

DEMO下載下傳位址:

http://www.kdniao.com/documents-demo...

4.系統釋出上線。

注意:測試環境中擷取的測試快遞單号不可用于實際發貨。