極兔快遞單號查詢快遞鳥API接口-極兔速遞


前言

看完快遞鳥api極兔快遞j&t對接教程這篇文章,然后把源碼復制到你的項目上,就能快速完成極兔快遞接口對接.到達極兔快遞官網界面顯示的效果,更適合剛入門的菜鳥,調用快遞鳥的極兔快遞查詢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 快遞公司編碼,極兔速遞:JTSD 必填
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=%7b%27OrderCode%27%3a%27%27%2c%27ShipperCode%27%3a%27JTSD%27%2c%27LogisticCode%27%3a%27jt0000052600488%27%7d&
EBusinessID=1264783&RequestType=1002&DataSign=MTYyMDU4NWQ2NmU1ZDI2MDEzNGE5YmVlM2YxYzEzMTM%3d&DataType=2

 

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

復制代碼

{
"LogisticCode": "JT0000052600488",
"ShipperCode": "JTSD",
"Traces": [
{
"AcceptStation": "【蕪湖市】【蕪湖鏡湖網點】的鄧擁軍 17855364213已取件",
"AcceptTime": "2020-03-16 16:26:13"
},
{
"AcceptStation": "【蕪湖市】【蕪湖鏡湖網點】的鄧擁軍 17855364213已取件",
"AcceptTime": "2020-03-16 16:41:33"
},
{
"AcceptStation": "【蕪湖市】【蕪湖鏡湖網點】已收件",
"AcceptTime": "2020-03-16 17:39:21"
},
{
"AcceptStation": "【蕪湖市】快件離開【蕪湖鏡湖網點】已發往【蕪湖轉運中心】",
"AcceptTime": "2020-03-16 17:40:27"
},
{
"AcceptStation": "【蕪湖市】快件到達【蕪湖轉運中心】",
"AcceptTime": "2020-03-16 19:36:32"
},
{
"AcceptStation": "【蕪湖市】快件離開【蕪湖轉運中心】已發往【合肥轉運中心】",
"AcceptTime": "2020-03-16 20:47:03"
},
{
"AcceptStation": "【合肥市】快件到達【合肥轉運中心】",
"AcceptTime": "2020-03-16 23:40:10"
},
{
"AcceptStation": "【合肥市】快件離開【合肥轉運中心】已發往【廣州花都轉運中心】",
"AcceptTime": "2020-03-17 00:10:48"
},
{
"AcceptStation": "【廣州市】快件到達【廣州花都轉運中心】",
"AcceptTime": "2020-03-17 20:45:00"
},
{
"AcceptStation": "【廣州市】快件離開【廣州花都轉運中心】已發往【深圳寶安轉運中心】",
"AcceptTime": "2020-03-18 00:17:55"
},
{
"AcceptStation": "【深圳市】快件到達【深圳寶安轉運中心】",
"AcceptTime": "2020-03-18 03:00:17"
},
{
"AcceptStation": "【深圳市】快件離開【深圳寶安轉運中心】已發往【深圳福田網點】",
"AcceptTime": "2020-03-18 04:44:39"
},
{
"AcceptStation": "【深圳市】【深圳福田網點】的鄒俊林 17679495647正在派件",
"AcceptTime": "2020-03-18 08:10:09"
},
{
"AcceptStation": "【深圳市】【深圳福田網點】的趙凱 15919817730正在派件",
"AcceptTime": "2020-03-18 09:55:19"
},
{
"AcceptStation": "【深圳市】快件已簽收,簽收人是【代收】,如有疑問請聯系:15919817730,期待再次為您服務",
"AcceptTime": "2020-03-18 14:53:54"
}
],
"State": "3",
"EBusinessID": "1264783",
"Success": true
}

 
復制代碼

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

復制代碼
{
"LogisticCode": "JT0000052600488",
"ShipperCode": "JTSD",
"Traces": [],
"State": "0",
"EBusinessID": "1264783",
"Reason": "業務錯誤[沒有可用套餐]",
"Success": false
}
復制代碼

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

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

復制代碼
{
"LogisticCode": "JT0000052600488",
"ShipperCode": "JTSD",
"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