豐網速運單號查詢快遞鳥API接口-豐網速運


前言

順豐斥資1000萬成立深圳豐網速運有限公司。其中,順豐速運出資800萬,持股80%,中金出資200萬,持股20%。

據悉,該公司成立時間為2020年4月7日,法人代表為吳國忠,楊尊淼、李祥樂任董事,馬立軍任監事。

經營范圍包括:國際貨運代理;經濟技術咨詢;技術信息咨詢;以特許經營方式從事商業活動;經營進出口業務;機械設備租賃;汽車租賃;房屋租賃業務;商務服務、商務代理;過境貨物運輸代理;3C產品檢測、維修服務。許可經營項目是:國內、國際快遞;國際供應鏈;普通貨運;貨物專用運輸,大型物件運輸;倉儲服務。

接下來給大家講解一下如何對接豐網速運的快遞查詢接口。

調用快遞鳥的豐網速運查詢API接口,能查詢到豐網速運單號從收件、運輸,到轉運中心,派送到簽收等各個環節的物流發貨狀態。快遞鳥api接口不區分開發語言,支持Java,C#,PHP,Python,ObjectC等開發語言的程序調用。下面具體講解實現過程.

目錄

1.完成前期准備工作

2.API接口

3.請求參數(Headers)

4.請求參數(Body)

5.返回參數(Return)

6.請求完整報文(示例)

7.成功返回報文(示例)

8.失敗返回報文(示例)

9.無軌跡返回報文(示例)

10.分步講解(C#版本)

11.順豐快遞查詢接口應用效果

12.關於簽名

13.返回碼定義

 

1.完成前期准備工作

1.1,去快遞鳥官網免費注冊一個賬號

1.2,免費獲得一個apiKey(接口權限驗證需要)

1.3,完成實名認證流程

1.4,訂購一個免費套餐

2.API接口


2.1,測試調用地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json

2.2,正式調用地址:http://api.kdniao.com/api/dist

2.3,請求方式:POST

2.4,編碼格式(utf-8):application/x-www-form-urlencoded;charset=utf-8

2.5,返回類型:JSON

2.6,調試頁面:http://kdniao.com/UserCenter/v2/SandBox/TrackQuery.aspx

2.7,調試工具:去調試(使用快遞鳥賬號登錄)

 

3.請求參數(Headers)

參數名稱 類型 說明 必須要求
RequestData String 請求內容需進行URL(utf-8)編碼,請求內容JSON格式,須和DataType一致 必填
EBusinessID String 用戶ID,查看用戶ID和ApiKey 必填
RequestType String 請求指令類型:1002  必填

DataSign String 簽名數據,(Body+ApiKey)進行MD5加密,再進行Base64編碼,最后進行URL(utf-8)編碼 必填
DataType String 求、返回數據類型:2-json ,默認Json 選填

 

 

4.請求參數(Body)

參數名稱 類型 說明 必須要求
OrderCode String 訂單編號 選填
ShipperCode String 快遞公司編碼,豐網速運:SF 必填
LogisticCode String 物流運單號 必填

 

5.返回參數(Return)

參數名稱 類型 說明 必須要求
EBusinessID String 用戶ID  必填
ShipperCode String 快遞公司編碼  必填
LogisticCode String 物流運單號 選填
Success String 成功與否 必填
Reason String 失敗原因 選填
State String 物流狀態:2-在途中,3-簽收,4-問題件 必填
Traces  String 時間  
AcceptTime String   必填
AcceptStation String 描述  選填
Remark String 備注 必填

 

 

6.請求完整報文(示例)

RequestData=%0d%0a++++++++++++%7b%27OrderCode%27%3a%27%27%2c%27ShipperCode%27%3a%27SF%27%2c%27LogisticCode%27%3a%27295734066970%27%2c%27CustomerName
%27%3a%276073%27%7d%0d%0a++++++++&EBusinessID=1264783&RequestType=1002&DataSign=ZTJlZWU0NjI1YTljNTlmYzY5Y2M4YjMzYjcxYWU3MDA%3d&DataType=2

 

7.成功返回報文(示例)

復制代碼

豐網速運單號295734066970的返回報文信息

{

"LogisticCode": "295734066970",

"ShipperCode": "SF",

"Traces": [{

"AcceptStation": "順豐速運 已收取快件",

"AcceptTime": "2020-02-13 18:39:21"

}, {

"AcceptStation": "快件在【衡水桃城區集收客戶營業部】已裝車,准備發往 【石家庄高開集散中心】",

"AcceptTime": "2020-02-13 18:39:31"

}, {

"AcceptStation": "快件已發車",

"AcceptTime": "2020-02-13 19:15:24"

}, {

"AcceptStation": "快件到達 【石家庄高開集散中心】",

"AcceptTime": "2020-02-14 04:27:00"

}, {

"AcceptStation": "快件在【石家庄高開集散中心】已裝車,准備發往 【長沙星沙集散中心】",

"AcceptTime": "2020-02-14 08:36:14"

}, {

"AcceptStation": "快件已發車",

"AcceptTime": "2020-02-14 18:34:31"

}, {

"AcceptStation": "快件到達 【長沙星沙集散中心】",

"AcceptTime": "2020-02-16 09:58:05"

}, {

"AcceptStation": "快件在【長沙星沙集散中心】已裝車,准備發往 【懷化盈口集散點】",

"AcceptTime": "2020-02-16 11:03:53"

}, {

"AcceptStation": "快件已發車",

"AcceptTime": "2020-02-16 11:50:35"

}, {

"AcceptStation": "快件到達 【懷化盈口集散點】",

"AcceptTime": "2020-02-16 20:20:42"

}, {

"AcceptStation": "快件在【懷化盈口集散點】已裝車,准備發往 【沅陵縣御鑫城營業點】",

"AcceptTime": "2020-02-17 05:33:23"

}, {

"AcceptStation": "快件已發車",

"AcceptTime": "2020-02-17 05:33:37"

}, {

"AcceptStation": "快件到達 【沅陵縣御鑫城營業點】",

"AcceptTime": "2020-02-17 07:55:20"

}, {

"AcceptStation": "快件在【沅陵縣御鑫城營業點】已裝車,准備發往 【懷化市沅陵縣二酉苗族鄉合作點】",

"AcceptTime": "2020-02-17 09:31:53"

}, {

"AcceptStation": "快件到達 【懷化市沅陵縣二酉苗族鄉合作點】",

"AcceptTime": "2020-02-17 09:32:16"

}, {

"AcceptStation": "正在派送途中,請您准備簽收(派件人:鄧小雲,電話:13298660182)",

"AcceptTime": "2020-02-17 09:32:31"

}, {

"AcceptStation": "快件交給鄧小雲,正在派送途中(聯系電話:13298660182,順豐已開啟“安全呼叫”保護您的電話隱私,請放心接聽!)",

"AcceptTime": "2020-02-17 09:33:26"

}, {

"AcceptStation": "已簽收,感謝使用順豐,期待再次為您服務(主單總件數:1件)",

"AcceptTime": "2020-02-17 22:41:24"

}, {

"AcceptStation": "在官網\"運單資料&簽收圖\",可查看簽收人信息",

"AcceptTime": "2020-02-17 22:41:26"

}],

"State": "3",

"EBusinessID": "1264783",

"Success": true

}

 
復制代碼

8.失敗返回報文(示例)

復制代碼

{

"LogisticCode": "295734066970",

"ShipperCode": "SF",

"Traces": [],

"State": "0",

"EBusinessID": "1264783",

"Reason": "業務錯誤[沒有可用套餐]",

"Success": false

}

復制代碼

說明:未實名認證,未訂購套餐,套餐可用查詢量已經用完 都會返回此報文信息
去實名認證 / 了解套餐詳情

9.無軌跡返回報文(示例)

復制代碼

{

"LogisticCode": "295734066970",

"ShipperCode": "SF",

"Traces": [],

"State": "0",

"EBusinessID": "1264783",

"Reason": "暫無軌跡信息",

"Success": true

}

復制代碼

 

10.分步講解(C#版本)

10.1,請求數據包結構

在這里插入圖片描述

10.2,C#調用代碼示例

//電商ID
string eEBusinessID = "test1617571";
 //電商加密私鑰,快遞鳥提供,注意保管,不要泄漏
string appKey= "554343b2-7252-439b-b4eb-1af42c8f2175"; //請求url string reqURL = "http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json"; //請求指令 string reqType="1002"; //2-json string dataType = "2"; //字符編碼采用UTF-8 string charset = "UTF-8"; //JSON字符串string string jsonStr = "{\"OrderCode\":\"\",\"ShipperCode\":\"JTSD\",\"LogisticCode\":\"JT0000052600488\"}" ; //把(jsonStr+APIKey)進行MD5加密 string md5Str=MD5(jsonStr + apiKey, charset); //把md5Str 進行Base64編碼 string base64Str=base64(md5Str,charset); //進行URL編碼 (utf-8) string datasign = HttpUtility.UrlEncode(base64Str, charset); //請求報文參數 string postStr = "RequestType=reqType&EBusinessID= eEBusinessID&RequestData=jsonStr &DataSign= datasign&DataType=dataType"; //通訊協議使用Http協議Post請求方式 返回軌跡數據 string post = SendPost(reqURL, postStr); //獲取到的post數據就是快遞鳥返回的完整報文,接下來自己寫一個解析json的方法就能獲取到里面的字段信息。

 

10.3,C#調用方法

///<summary>
    /// 字符串MD5加密
    ///</summary>
    ///<param name="str">要加密的字符串</param>
    ///<param name="charset">編碼方式</param>
    ///<returns>密文</returns>
    private string MD5(string str, string charset)
    {
        byte[] buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(str); 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; } } /// <summary> /// base64編碼 /// </summary> /// <param name="str">內容</param> /// <param name="charset">編碼方式</param> /// <returns></returns> private string base64(String str, String charset) { return Convert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str)); } /// <summary> /// Post方式提交數據,返回網頁的源代碼 /// </summary> /// <param name="url">發送請求的 URL</param> /// <param name="postData">請求報文參數</param> /// <returns>遠程資源的響應結果</returns> private string SendPost(string url, string postData) { string result = ""; byte[] byteData = Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString()); try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.ContentType = "application/x-www-form-urlencoded"; request.Referer = url; request.Accept = "*/*"; request.Timeout = 30 * 1000; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"; request.Method = "POST"; request.ContentLength = byteData.Length; Stream stream = request.GetRequestStream(); stream.Write(byteData, 0, byteData.Length); stream.Flush(); stream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream backStream = response.GetResponseStream(); StreamReader sr = new StreamReader(backStream, Encoding.GetEncoding("UTF-8")); result = sr.ReadToEnd(); sr.Close(); backStream.Close(); response.Close(); request.Abort(); } catch (Exception ex) { result = ex.ToString(); } return result; }

 

11.豐網速運查詢接口應用

 

 

 

12.關於簽名

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

 

防止數據被篡改 
在 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 編碼),生成摘要,對比兩者的摘要是否相同,如果不同,說明傳遞過程中發生數據篡改。 調用接口的身份認證 注冊成為快遞鳥用戶后,會生成對應的用戶 ID 和 APIKey,用戶 ID 相當於用戶名, APIKey 相當於密碼。

13.返回碼定義

編碼 說明
100 成功
101 缺少必要參數
102 校驗問題
103 格式問題

 

     去申請調用API接口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM