免費(fèi)快遞查詢接口文檔

上傳人:daj****de 文檔編號(hào):158977539 上傳時(shí)間:2022-10-07 格式:DOCX 頁數(shù):12 大?。?5.45KB
收藏 版權(quán)申訴 舉報(bào) 下載
免費(fèi)快遞查詢接口文檔_第1頁
第1頁 / 共12頁
免費(fèi)快遞查詢接口文檔_第2頁
第2頁 / 共12頁
免費(fèi)快遞查詢接口文檔_第3頁
第3頁 / 共12頁

下載文檔到電腦,查找使用更方便

0 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《免費(fèi)快遞查詢接口文檔》由會(huì)員分享,可在線閱讀,更多相關(guān)《免費(fèi)快遞查詢接口文檔(12頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、免費(fèi)快遞查詢接口文檔-快遞鳥 API 1. 報(bào)文及報(bào)文編碼 接口提供:快遞鳥 報(bào)文格式:Json格式 請(qǐng)求方法的編碼格式(utf-8): "application/x-www-form-urlencoded;charset=utf-8" 交互協(xié)議上統(tǒng)一用UTF-8,避免傳遞中文數(shù)據(jù)出現(xiàn)亂碼。 2. 應(yīng)用場(chǎng)景 (1) 電商網(wǎng)站用戶打開“我的訂單”時(shí)調(diào)用此API顯示物流信息詳情。 (2) 電商管理后臺(tái)的物流系統(tǒng),客服在對(duì)賬前查詢所有運(yùn)單的簽收狀態(tài),并追蹤問題 (3) 每日調(diào)用次數(shù)限制不超過3000次,如超過該限制,可對(duì)接物流跟蹤API。 (4) 全流程的物流狀態(tài)跟蹤I

2、 3. 關(guān)于簽名 采用 IP 認(rèn)證加簽名 的方式對(duì)接,具體方案如下: 1) 防止數(shù)據(jù)被篡改 在POST請(qǐng)求中會(huì)傳遞5個(gè)必須(R)參數(shù) RequestData==S據(jù)內(nèi)容(URL 編碼:UTF-8) EBusinessID==用戶 ID RequestType=i請(qǐng)求指令類型 DataSign==數(shù)據(jù)內(nèi)容簽名:把(請(qǐng)求內(nèi)容(未編碼)+ApiKey)進(jìn)行MD5加密,然后Base64編 碼,最后進(jìn)行URL(utf-8)編碼。8上8丁丫卩6==返回?cái)?shù)據(jù)類型(2-json) 注: DataSign 生成后,對(duì)方接收到數(shù)據(jù)后,以同樣的算法進(jìn)行簽名,生成摘要,對(duì)比兩者的摘 要是否相同,如

3、果不同,說明傳遞過程中發(fā)生數(shù)據(jù)篡改。 2) 調(diào)用接口的身份認(rèn)證 注冊(cè)成為接口用戶后,會(huì)生成對(duì)應(yīng)的用戶ID和APIKey,用戶ID相當(dāng)于用戶名,APIKey相 當(dāng)于密碼。 4. 接入步驟 1)接口網(wǎng)注冊(cè)賬號(hào)成為用戶; 提供的用戶ID是調(diào)用接口服務(wù)的身份證明,不可更改、不可轉(zhuǎn)用,API Key是應(yīng)用訪問API 的簽名附加密鑰,必須妥善保存。兩者關(guān)系類似于用戶名和密碼,兩者都會(huì)在簽名和業(yè)務(wù)參 數(shù)中使用。 2) 登陸用戶后臺(tái), 登陸用戶后臺(tái), 進(jìn)行 實(shí)名認(rèn)證, 并 開通會(huì)員服務(wù); 3) 根據(jù)技術(shù)文檔進(jìn)行開發(fā)并在調(diào)試平臺(tái)測(cè)試聯(lián)調(diào); 根據(jù)技術(shù)文檔進(jìn)行開發(fā)并在調(diào)試平臺(tái)測(cè) 試聯(lián)調(diào); API接口

4、的DEMO(包括:.Net版本、Java版本、PHP版本)供開發(fā)參考。 4) 系統(tǒng)發(fā)布上線。 系統(tǒng)發(fā)布上線。 注意:測(cè)試環(huán)境中 獲取 的測(cè)試快遞單號(hào)不可用于實(shí)際發(fā)貨。 5.Demo 1).NET開發(fā) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Net; using System.IO; namespace KdGoldAPI { public class KdApiSearchD

5、emo { 〃電商ID private string EBusinessID = "1237100"; //電商加密私鑰,注意保管,不要泄漏 private string AppKey = "518a73d8-1f7f-441a-b644-33e77b49d846"; //請(qǐng)求 url private string ReqURL = "http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx"; ///

/// Json 方式 查詢訂單物流軌跡 /// ///

6、s> public string getOrderTracesByJson() { string requestData = "{'OrderCode':'','ShipperCode':'SF','LogisticCode':'589707398027'}"; Dictionary param = new Dictionary(); param.Add("RequestData", HttpUtility.UrlEncode(requestData, Encoding.UTF8)); param.A

7、dd("EBusinessID", EBusinessID); param.Add("RequestType", "1002"); string dataSign = encrypt(requestData, AppKey, "UTF-8"); param.Add("DataSign", HttpUtility.UrlEncode(dataSign, Encoding.UTF8)); param.Add("DataType", "2"); string result = sendPost(ReqURL, param); //根據(jù)公司業(yè)務(wù)處理返回的信息 return result;

8、} ///

/// Post方式提交數(shù)據(jù),返回網(wǎng)頁的源代碼 /// /// /// W 求的參數(shù)集合 ///遠(yuǎn)程資源的響應(yīng)結(jié)果 private string sendPost(string url, Dictionary param) { string result = ""; StringBuilder postData = new Str

9、ingBuilder(); if (param != null && param.Count > 0) { foreach (var p in param) { if (postData.Length > 0) { postData.Append("&"); } postData.Append(p.Key); postData.Append("="); postData.Append(p.Value); } } byte[] byteData = Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString());

10、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

11、.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 = (H

12、ttpWebResponse)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) { resul

13、t = ex.Message; } return result; } ///

///電商Sign簽名 /// 〃/ 內(nèi)容 ///Appkey ///URL編碼 〃/DataSign 簽名

14、harset) { if (keyValue != null) { return base64(MD5(content + keyValue, charset), charset); } return base64(MD5(content, charset), charset); } ///

/// 字符串 MD5 加密 /// 〃/要加密的字符串 〃/^ 碼方式 < /param> 〃/ 密 文 pr

15、ivate 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

16、); 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; } } ///

/// base64 編碼 /// /// 內(nèi)容 /// ^ 碼方式 < /para

17、m> /// private string base64(String str, String charset) { return Convert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str)); } } } 2)PHP 開發(fā)

18、or define('AppKey', '請(qǐng)到官網(wǎng)申請(qǐng) //請(qǐng)求 url defined('ReqURL') or define('ReqURL', 'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx'); //調(diào)用查詢物流軌跡 // $logisticResult=getOrderTracesByJson(); echo logisticResult; // / post 提交數(shù)據(jù) * @param string $url 請(qǐng)求 Url * @param array $datas 提交的數(shù)據(jù) * @r

19、eturn url 響應(yīng)返回的 html */ function sendPost($url, $datas) { * Json 方式 查詢訂單物流軌跡 */ function getOrderTracesByJson(){ $requestData= "{'OrderCode':'','ShipperCode':'YTO','LogisticCode':'12345678'}"; $datas = array( 'EBusinessID' => EBusinessID, 'RequestType' => '1002', 'RequestData' => urlencod

20、e($requestData) , 'DataType' => '2', ); $datas['DataSign'] = encrypt($requestData, AppKey); $result=sendPost(ReqURL, $datas); //根據(jù)公司業(yè)務(wù)處理返回的信息 return $result; } $temps = array(); foreach ($datas as $key => $value) { $temps[] = sprintf('%s=%s', $key, $value); } $post_data = implode('&', $t

21、emps); $url_info = parse_url($url); if(empty($url_info['port'])) { $url_info['port']=80; } $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n"; $httpheader.= "Host:" . $url_info['host'] . "\r\n"; $httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n"; $httpheader.= "Conte

22、nt-Length:" . strlen($post_data) . "\r\n"; $httpheader.= "Connection:close\r\n\r\n"; $httpheader.= $post_data; $fd = fsockopen($url_info['host'], $url_info['port']); fwrite($fd, $httpheader); $gets = ""; $headerFlag = true; while (!feof($fd)) { if (($header = @fgets($fd)) && ($header == "\r\n

23、" || $header == "\n")) { break; } } while (!feof($fd)) { $gets.= fread($fd, 128); } fclose($fd); return $gets; } /** * 電商 Sign 簽名生成 * @param data 內(nèi)容 * @param appkey Appkey * @return DataSign 簽名 */ function encrypt($data, $appkey) { return urlencode(base64_encode(md5($data.$appkey)));

24、} ?> 3) JAVA開發(fā) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import .HttpURLConnection; import .URL; import .URLEncoder; import java.security.MessageDigest; impor

25、t java.util.HashMap; import java.util.Map; public class KdniaoTrackQueryAPI { //DEMO public static void main(String[] args) { KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI(); try { String result = api.getOrderTracesByJson("ANE", "210001633605"); System.out.print(result); } catch (Excepti

26、on e) { e.printStackTrace(); } } //電商 ID private String EBusinesslD="請(qǐng)申請(qǐng)"; //電商加密私鑰,注意保管,不要泄漏 private String AppKey="請(qǐng)申請(qǐng)"; //請(qǐng)求 url private String ReqURL="http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx"; /** * Json 方式 查詢訂單物流軌跡 * @throws Exception */ public String getOrderTrac

27、esByJson(String expCode, String expNo) throws Exception{ String requestData= "{'OrderCode':'','ShipperCode':'" + expCode + "','LogisticCode':'" + expNo + "'}"; Map params = new HashMap(); params.put("RequestData", urlEncoder(requestData, "UTF-8")); params.put("EBusin

28、essID", EBusinessID); params.put("RequestType", "1002"); String dataSign=encrypt(requestData, AppKey, "UTF-8"); params.put("DataSign", urlEncoder(dataSign, "UTF-8")); params.put("DataType", "2"); String result=sendPost(ReqURL, params); //根據(jù)公司業(yè)務(wù)處理返回的信息 return result; } /** * MD5 加密 * @param s

29、tr 內(nèi)容 * @param charset 編碼方式 * @throws Exception */ @SuppressWarnings("unused") private String MD5(String str, String charset) throws Exception { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(str.getBytes(charset)); byte[] result = md.digest(); StringBuffer sb = new StringBuff

30、er(32); for (int i = 0; i < result.length; i++) { int val = result[i] & 0xff; if (val <= 0xf) { sb.append("0"); } sb.append(Integer.toHexString(val)); } return sb.toString().toLowerCase(); } /** * base64 編碼 * @param str 內(nèi)容 * @param charset 編碼方式 * @throws UnsupportedEncodingException */

31、 private String base64(String str, String charset) throws UnsupportedEncodingException{ String encoded = base64Encode(str.getBytes(charset)); return encoded; } @SuppressWarnings("unused") private String urlEncoder(String str, String charset) throws UnsupportedEncodingException{ String result = U

32、RLEncoder.encode(str, charset); return result; } / 向指定 URL 發(fā)送 POST 方法的請(qǐng)求 * @param url 發(fā)送請(qǐng)求的 URL * @param params 請(qǐng)求的參數(shù)集合 * @return 遠(yuǎn)程資源的響應(yīng)結(jié)果 */ @SuppressWarnings("unused") private String sendPost(String url, Map params) { OutputStreamWriter out = null; BufferedReader in = n

33、ull; StringBuilder result = new StringBuilder(); try { URL realUrl = new URL(url); HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection(); //發(fā)送POST請(qǐng)求必須設(shè)置如下兩行 * 電商 Sign 簽名生成 * @param content 內(nèi)容 * @param keyValue Appkey * @param charset 編碼方式 * @throws UnsupportedEncodingExcept

34、ion ,Exception * @return DataSign 簽名 */ @SuppressWarnings("unused") private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception { if (keyValue != null) { return base64(MD5(content + keyValue, charset), charset); } return base64(MD

35、5(content, charset), charset); } conn.setDoOutput(true); conn.setDoInput(true); // POST 方法 conn.setRequestMethod("POST"); // 設(shè)置通用的請(qǐng)求屬性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible

36、; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.connect(); // 獲取 URLConnection 對(duì)象對(duì)應(yīng)的輸出流 out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); // 發(fā)送請(qǐng)求參數(shù) if (params != null) { StringBuilder param = new StringBuilder

37、(); for (Map.Entry entry : params.entrySet()) { if(param.length()>0){ param.append("&"); } param.append(entry.getKey()); param.append("="); param.append(entry.getValue()); //System.out.println(entry.getKey()+":"+entry.getValue()); } //System.out.println("param:"+param.toString

38、()); out.write(param.toString()); } // flush 輸出流的緩沖 out.flush(); //定義BufferedReader輸入流來讀取URL的響應(yīng) in = new BufferedReader( new InputStreamReader(conn.getInputStream(), "UTF-8")); String line; while ((line = in.readLine()) != null) { result.append(line); } } catch (Exception e) { e.printSta

39、ckTrace(); } //使用 finally 塊來關(guān)閉輸出流、輸入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result.toString(); } private static char[] base64EncodeChars = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'

40、, 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' }; public s

41、tatic String base64Encode(byte[] data) { StringBuffer sb = new StringBuffer(); int len = data.length; int i = 0; int b1, b2, b3; while (i < len) { b1 = data[i++] & 0xff; if (i == len) { sb.append(base64EncodeChars[b1 >>> 2]); sb.append(base64EncodeChars[(b1 & 0x3) << 4]); sb.append("=="); b

42、reak; } b2 = data[i++] & 0xff; if (i == len) { sb.append(base64EncodeChars[b1 >>> 2]); sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]); sb.append(base64EncodeChars[(b2 & 0x0f) << 2]); sb.append("="); break; } b3 = data[i++] & 0xff; sb.append(base64EncodeChars[b1 >>> 2]); sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]); sb.append(base64EncodeChars[((b2 & 0x0f) << 2) | ((b3 & 0xc0) >>> 6)]); sb.append(base64EncodeChars[b3 & 0x3f]); } return sb.toString(); } }

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!