免費快遞查詢接口文檔_第1頁
免費快遞查詢接口文檔_第2頁
免費快遞查詢接口文檔_第3頁
免費快遞查詢接口文檔_第4頁
免費快遞查詢接口文檔_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

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

2、方案如下:1)防止數(shù)據(jù)被篡改在POST請求中會傳遞 5個必須(R疹數(shù)RequestData=數(shù)據(jù)內(nèi)容(URL 編碼:UTF-8)EBusinessID二期戶 IDRequestType= 青求指令類型DataSign=數(shù)據(jù)內(nèi)容簽名:把(請求內(nèi)容(未編碼)+ApiKey)進(jìn)彳f MD5加密,然后 Base64編碼,最后進(jìn)行 URL(utf-8)編碼DataType=i回數(shù)據(jù)類型(2-json)注:DataSign生成后,對方接收到數(shù)據(jù)后,以同樣的算法進(jìn)行簽名,生成摘要,對比兩者的摘要是否相同,如果不同,說明傳遞過程中發(fā)生數(shù)據(jù)篡改。2)調(diào)用接口的身份認(rèn)證注冊成為接口用戶后,會生成對應(yīng)的用戶ID和A

3、PIKey,用戶ID相當(dāng)于用戶名,APIKey相當(dāng)于密碼。.接入步驟1)接口網(wǎng)注冊賬號成為用戶;提供的用戶ID是調(diào)用接口服務(wù)的身份證明,不可更改、不可轉(zhuǎn)用,API Key是應(yīng)用訪問 API的簽名附加密鑰,必須妥善保存。兩者關(guān)系類似于用戶名和密碼,兩者都會在簽名和業(yè)務(wù)參數(shù)中使用。2)登陸用戶后臺,登陸用戶后臺, 進(jìn)行 實名認(rèn)證, 并 開通會員服務(wù);3)根據(jù)技術(shù)文檔進(jìn)行開發(fā)并在調(diào)試平臺測試聯(lián)調(diào);根據(jù)技術(shù)文檔進(jìn)行開發(fā)并在調(diào)試平臺測試聯(lián)調(diào);API接口的DEMO(包括:.Net版本、Java版本、PHP版本)供開發(fā)參考。4)系統(tǒng)發(fā)布上線。系統(tǒng)發(fā)布上線。注意:測試環(huán)境中獲取 的測試快遞單號不可用于實際發(fā)貨

4、。5.Demo.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 KdApiSearchDemo /電商IDprivate string EBusinessID = 1237100;電商加密私鑰,注意保管,不要泄漏private string AppKey = 518a73d8-1f7f-441a-b644

5、-33e77b49d846”; /請求urlprivate string ReqURL = HYPERLINK http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx;/ / Json方式查詢訂單物流軌跡/ / public string getOrderTracesByJson() stringrequestData=OrderCode:,ShipperCode:SF,LogisticCode:589707398027;Dic

6、tionary param = new Dictionary();param.Add(RequestData, HttpUtility.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.Ad

7、d(DataType, 2);string result = sendPost(ReqURL, param);/根據(jù)公司業(yè)務(wù)處理返回的信息.return result;/ / Post方式提交數(shù)據(jù),返回網(wǎng)頁的源代碼/ / 發(fā)送請求的URL/ 請求的參數(shù)集合 / 遠(yuǎn)程資源的響應(yīng)結(jié)果 private string sendPost(string url, Dictionary param) string result = ;StringBuilder postData = new StringBuilder();if (param != null & param.Count 0) foreach

8、(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(); try HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.ContentType = applicatio

9、n/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.ContentLen

10、gth = 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,

11、Encoding.GetEncoding(UTF-8);result = sr.ReadToEnd();sr.Close();backStream.Close();response.Close();request.Abort();)catch (Exception ex) (result = ex.Message;) return result;)/電商Sign簽名/ 內(nèi)容 /Appkey/URL 編碼 /DataSign 簽名 private string encrypt(String content, String keyValue, String charset) (if (keyVal

12、ue != null) (return base64(MD5(content + keyValue, 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); try (System.Security.Cryptograph

13、y.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);elseret += a.ToString(X);return ret.ToLower(); catch (throw;/ / base64 編碼/ / 內(nèi)容 / 編碼方式

14、 / private string base64(String str, String charset) (returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str);PHP開發(fā) EBusinessID,RequestType = 1002,RequestData = urlencode($requestData) ,DataType = 2,);$datasDataSign = encrypt($requestData, AppKey);$result=sendPost(ReqURL

15、, $datas);/根據(jù)公司業(yè)務(wù)處理返回的信息/*return $result;post提交數(shù)據(jù)paramstring $url 請求 Urlparamarray $datas 提交的數(shù)據(jù)* return url響應(yīng)返回的 html*/function sendPost($url, $datas) $temps = array();foreach ($datas as $key = $value) $temps = sprintf(%s=%s, $key, $value);$post_data = implode(&, $temps);$url_info = parse_url($url);

16、if(empty($url_infoport)$url_infoport=80;$httpheader = POST . $url_infopath . HTTP/1.0rn;$httpheader.= Host: . $url_infohost . rn;$httpheader.= Content-Type:application/x-www-form-urlencodedrn;$httpheader.= Content-Length: . strlen($post_data) . rn;$httpheader.= Connection:closernrn;$httpheader.= $po

17、st_data;$fd = fsockopen($url_infohost, $url_infoport);fwrite($fd, $httpheader);$gets =;$headerFlag = true;while (!feof($fd) if ($header = fgets($fd) & ($header = rn | $header = n) break;while (!feof($fd) $gets.= fread($fd, 128);fclose($fd);return $gets;電商Sign簽名生成param data 內(nèi)容param appkey Appkeyretur

18、n DataSign 簽名*/function encrypt($data, $appkey) return urlencode(base64_encode(md5($data.$appkey); ?JAVA開發(fā)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import .HttpURLConnection;

19、import .URL;import .URLEncoder;import java.security.MessageDigest;import java.util.HashMap;import java.util.Map;public class KdniaoTrackQueryAPI /DEMOpublic static void main(String args) KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI();try String result = api.getOrderTracesByJson(ANE, 21000163360

20、5);System.out.print(result); catch (Exception e) e.printStackTrace();電商IDprivate String EBusinessID=請申請 ;電商加密私鑰,注意保管,不要泄漏private String AppKey=請申請;請求urlprivate String ReqURL=http:api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx;/*Json方式 查詢訂單物流軌跡throws Exception/public String getOrderTracesByJson(St

21、ring 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(EBusinessID, EBusinessID);params.put(RequestType, 1002);String dataSign=encryp

22、t(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 str 內(nèi)容param charset 編碼方式throws Exception/SuppressWarnings(unused)private String MD5(String str, String charset)

23、throws Exception MessageDigest md = MessageDigest.getInstance(MD5);md.update(str.getBytes(charset);byte result = md.digest();StringBuffer sb = new StringBuffer(32);for (int i = 0; i result.length; i+) int val = resulti & 0 xff;if (val = 0 xf) sb.append(0);sb.append(Integer.toHexString(val);return sb

24、.toString().toLowerCase();/*base64 編碼param str 內(nèi)容param charset 編碼方式throws UnsupportedEncodingException*/private String base64(String str, String charset) throws UnsupportedEncodingException String encoded = base64Encode(str.getBytes(charset); return encoded;)SuppressWarnings(unused)private String ur

25、lEncoder(String str, String charset) throws UnsupportedEncodingExceptionString result = URLEncoder.encode(str, charset);return result;/*電商Sign簽名生成param content 內(nèi)容param keyValue Appkeyparam charset 編碼方式throws UnsupportedEncodingException .Exceptionreturn DataSign 簽名*/SuppressWarnings(unused)private S

26、tring encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exceptionif (keyValue != null)return base64(MD5(content + keyValue, charset), charset); )return base64(MD5(content, charset), charset);/*向指定URL發(fā)送POST方法的請求param url發(fā)送請求的 URLparam params 請求的參數(shù)集合return遠(yuǎn)

27、程資源的響應(yīng)結(jié)果*/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);HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();/發(fā)送POST請求必須設(shè)置如下兩行con

28、n.setDoOutput(true);conn.setDoInput(true);/ POST方法conn.setRequestMethod(POST);/設(shè)置通用的請求屬性conn.setRequestProperty(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,

29、 application/x-www-form-urlencoded);conn.connect();/獲取URLConnection對象對應(yīng)的輸出流out = new OutputStreamWriter(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()+:+entry.getValue();/System.out.println(param:+param.toString();out.write(param.toString();/ flush輸出流的緩沖 out.flush();/定義BufferedReader輸入流來讀取 URL的響

溫馨提示

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

評論

0/150

提交評論