免費快遞查詢接口文檔
《免費快遞查詢接口文檔》由會員分享,可在線閱讀,更多相關《免費快遞查詢接口文檔(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、免費快遞查詢接口文檔-快遞鳥 API1. 報文及報文編碼接口提供:快遞鳥報文格式:Json格式請求方法的編碼格式(utf-8): application/x-www-form-urlencoded;charset=utf-8交互協(xié)議上統(tǒng)一用UTF-8,避免傳遞中文數(shù)據(jù)出現(xiàn)亂碼。2. 應用場景(1)電商網(wǎng)站用戶打開“我的訂單”時調用此API顯示物流信息詳情。(2)電商管理后臺的物流系統(tǒng),客服在對賬前查詢所有運單的簽收狀態(tài),并追蹤問題(3)每日調用次數(shù)限制不超過3000次,如超過該限制,可對接物流跟蹤API。(4)全流程的物流狀態(tài)跟蹤I3. 關于簽名采用 IP 認證加簽名的方式對接,具體方案如下:
2、1)防止數(shù)據(jù)被篡改在POST請求中會傳遞5個必須(R)參數(shù)RequestData=S據(jù)內容(URL 編碼:UTF-8)EBusinessID=用戶 IDRequestType=i請求指令類型DataSign=數(shù)據(jù)內容簽名:把(請求內容(未編碼)+ApiKey)進行MD5加密,然后Base64編 碼,最后進行URL(utf-8)編碼。8上8丁丫卩6=返回數(shù)據(jù)類型(2-json)注:DataSign 生成后,對方接收到數(shù)據(jù)后,以同樣的算法進行簽名,生成摘要,對比兩者的摘 要是否相同,如果不同,說明傳遞過程中發(fā)生數(shù)據(jù)篡改。2)調用接口的身份認證注冊成為接口用戶后,會生成對應的用戶ID和APIKey,
3、用戶ID相當于用戶名,APIKey相 當于密碼。4. 接入步驟1)接口網(wǎng)注冊賬號成為用戶;提供的用戶ID是調用接口服務的身份證明,不可更改、不可轉用,API Key是應用訪問API 的簽名附加密鑰,必須妥善保存。兩者關系類似于用戶名和密碼,兩者都會在簽名和業(yè)務參 數(shù)中使用。2) 登陸用戶后臺, 登陸用戶后臺, 進行 實名認證, 并 開通會員服務;3) 根據(jù)技術文檔進行開發(fā)并在調試平臺測試聯(lián)調; 根據(jù)技術文檔進行開發(fā)并在調試平臺測 試聯(lián)調;API接口的DEMO(包括:.Net版本、Java版本、PHP版本)供開發(fā)參考。4) 系統(tǒng)發(fā)布上線。 系統(tǒng)發(fā)布上線。注意:測試環(huán)境中 獲取 的測試快遞單號不可
4、用于實際發(fā)貨。5.Demo1).NET開發(fā)using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;using System.Net;using System.IO;namespace KdGoldAPIpublic class KdApiSearchDemo電商IDprivate string EBusinessID = 1237100;/電商加密私鑰,注意保管,不要泄漏private string AppKey = 518a73d8-1f7f-441a
5、-b644-33e77b49d846;/請求 urlprivate string ReqURL = http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx;/ / Json 方式 查詢訂單物流軌跡/ / public string getOrderTracesByJson()stringrequestData=OrderCode:,ShipperCode:SF,LogisticCode:589707398027;Dictionary param = new Dictionary(); param.Add(RequestData, Http
6、Utility.UrlEncode(requestData, Encoding.UTF8); param.Add(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);/
7、根據(jù)公司業(yè)務處理返回的信息return result;/ / Post方式提交數(shù)據(jù),返回網(wǎng)頁的源代碼/ / param nameiurl發(fā)送請求的 URL/ W 求的參數(shù)集合/遠程資源的響應結果private string sendPost(string url, Dictionary param)string result = ;StringBuilder postData = new StringBuilder();if (param != null & param.Count 0)foreach (var p in param)if (postData.Length 0)postData
8、.Append(&);postData.Append(p.Key); postData.Append(=);postData.Append(p.Value);byte byteData = Encoding.GetEncoding(UTF-8).GetBytes(postData.ToString(); tryHttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.ContentType = application/x-www-form-urlencoded; request.Referer = url;
9、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.G
10、etRequestStream();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.ReadToE
11、nd();sr.Close();backStream.Close();response.Close();request.Abort();catch (Exception ex)result = ex.Message;return result;/電商Sign簽名/ 內容/Appkey/URL編碼 /DataSign 簽名 /returnsprivate string encrypt(String content, String keyValue, String charset)if (keyValue != null)return base64(MD5(content + keyValue,
12、charset), charset);return base64(MD5(content, charset), charset); / 字符串 MD5 加密/要加密的字符串 / 碼方式 / 密 文private string MD5(string str, string charset)byte buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(str);trySystem.Security.Cryptography.MD5CryptoServiceProvider check; check = new System.Sec
13、urity.Cryptography.MD5CryptoServiceProvider(); byte somme = check.ComputeHash(buffer);string ret = ;foreach (byte a in somme)if (a 16)ret += 0 + a.ToString(X);elseret += a.ToString(X);return ret.ToLower();catchthrow;/ / base64 編碼/ / 內容/ 碼方式 / private string base64(String str, String charset)returnCo
14、nvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str);2)PHP 開發(fā) EBusinessID,RequestType = 1002,RequestData = urlencode($requestData) ,DataType = 2,);$datasDataSign = encrypt($requestData, AppKey); $result=sendPost(ReqURL, $datas);/根據(jù)公司業(yè)務處理返回的信息return $result;$temps = array();fo
15、reach ($datas as $key = $value) $temps = sprintf(%s=%s, $key, $value);$post_data = implode(&, $temps);$url_info = parse_url($url); if(empty($url_infoport)$url_infoport=80;$httpheader = POST . $url_infopath . HTTP/1.0rn;$httpheader.= Host: . $url_infohost . rn;$httpheader.= Content-Type:application/x
16、-www-form-urlencodedrn;$httpheader.= Content-Length: . strlen($post_data) . rn;$httpheader.= Connection:closernrn;$httpheader.= $post_data;$fd = fsockopen($url_infohost, $url_infoport); fwrite($fd, $httpheader);$gets = ;$headerFlag = true;while (!feof($fd) if ($header = fgets($fd) & ($header = rn |
17、$header = n) break;while (!feof($fd) $gets.= fread($fd, 128);fclose($fd);return $gets; /* 電商 Sign 簽名生成* param data 內容* param appkey Appkey* return DataSign 簽名*/function encrypt($data, $appkey) return urlencode(base64_encode(md5($data.$appkey); ?3) JAVA開發(fā)import java.io.BufferedReader;import java.io.I
18、OException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .URL;import .URLEncoder;import java.security.MessageDigest;import java.util.HashMap;import java.util.Map;public class KdniaoTrackQueryAPI /DEMOpu
19、blic static void main(String args) KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI();try String result = api.getOrderTracesByJson(ANE, 210001633605); System.out.print(result); catch (Exception e) e.printStackTrace();/電商 IDprivate String EBusinesslD=請申請;/電商加密私鑰,注意保管,不要泄漏private String AppKey=請申請;/請
20、求 urlprivate String ReqURL=http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx;/* Json 方式 查詢訂單物流軌跡* throws Exception*/public String getOrderTracesByJson(String expCode, String expNo) throws Exception String requestData= OrderCode:,ShipperCode: + expCode + ,LogisticCode: + expNo + ;Map params = n
21、ew HashMap(); params.put(RequestData, urlEncoder(requestData, UTF-8); params.put(EBusinessID, 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, para
22、ms);/根據(jù)公司業(yè)務處理返回的信息 return result;/* MD5 加密* param str 內容* 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();StringB
23、uffer sb = new StringBuffer(32);for (int i = 0; i result.length; i+) int val = resulti & 0xff;if (val = 0xf) sb.append(0); sb.append(Integer.toHexString(val); return sb.toString().toLowerCase();/* base64 編碼* param str 內容* param charset 編碼方式* throws UnsupportedEncodingException*/private String base64
24、(String str, String charset) throws UnsupportedEncodingException String encoded = base64Encode(str.getBytes(charset); return encoded;SuppressWarnings(unused)private String urlEncoder(String str, String charset) throws UnsupportedEncodingExceptionString result = URLEncoder.encode(str, charset);return
25、 result;/ 向指定 URL 發(fā)送 POST 方法的請求* param url 發(fā)送請求的 URL* param params 請求的參數(shù)集合* return 遠程資源的響應結果 */SuppressWarnings(unused) private String sendPost(String url, Map params) OutputStreamWriter out = null;BufferedReader in = null;StringBuilder result = new StringBuilder();try URL realUrl = new URL(url);Htt
26、pURLConnection conn =(HttpURLConnection) realUrl.openConnection(); /發(fā)送POST請求必須設置如下兩行* 電商 Sign 簽名生成* param content 內容* param keyValue Appkey* param charset 編碼方式* throws UnsupportedEncodingException ,Exception* return DataSign 簽名*/SuppressWarnings(unused)private String encrypt (String content, String
27、keyValue, String charset) throws UnsupportedEncodingException, Exceptionif (keyValue != null)return base64(MD5(content + keyValue, charset), charset);return base64(MD5(content, charset), charset);conn.setDoOutput(true);conn.setDoInput(true);/ POST 方法conn.setRequestMethod(POST);/ 設置通用的請求屬性conn.setReq
28、uestProperty(accept, */*); conn.setRequestProperty(connection, Keep-Alive); conn.setRequestProperty(user-agent,Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1);conn.setRequestProperty(Content-Type,application/x-www-form-urlencoded);conn.connect();/ 獲取 URLConnection 對象對應的輸出流out = new OutputStre
29、amWriter(conn.getOutputStream(), UTF-8);/ 發(fā)送請求參數(shù)if (params != null) StringBuilder param = new StringBuilder();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()+:+
30、entry.getValue();/System.out.println(param:+param.toString(); out.write(param.toString();/ flush 輸出流的緩沖out.flush();/定義BufferedReader輸入流來讀取URL的響應in = new BufferedReader(new InputStreamReader(conn.getInputStream(), UTF-8);String line;while (line = in.readLine() != null) result.append(line); catch (Exc
31、eption e) e.printStackTrace();/使用 finally 塊來關閉輸出流、輸入流finallytryif(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,I, J, K, L, M, N, O, P,Q, R, S, T, U, V, W, X,Y,
32、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 static String base64Encode(byte data) StringBuffer sb = new StringBuffer();int len = data.length;int i = 0;int b1, b2, b3;while (i 2); sb.append(base64EncodeChars(b1 & 0x3) 2); sb.append(base64EncodeChars(b1 & 0x03) 4); sb.append(base64EncodeChars(b2 & 0x0f) 2);sb.append(base64EncodeChars(b1 & 0x03) 4);sb.append(base64EncodeChars(b2 & 0x0f) 6); sb.append(base64EncodeCharsb3 & 0x3f);return sb.toString();
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。