基于JAVA的快遞查詢API接口調(diào)用代碼示例_第1頁(yè)
基于JAVA的快遞查詢API接口調(diào)用代碼示例_第2頁(yè)
基于JAVA的快遞查詢API接口調(diào)用代碼示例_第3頁(yè)
基于JAVA的快遞查詢API接口調(diào)用代碼示例_第4頁(yè)
基于JAVA的快遞查詢API接口調(diào)用代碼示例_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于java的快遞查詢API接口調(diào)用代碼示例· 1、應(yīng)用場(chǎng)景· (1)電商網(wǎng)站用戶打開(kāi)“我的訂單”時(shí)調(diào)用此API顯示物流信息詳情。(2)電商管理后臺(tái)的物流系統(tǒng),客服在對(duì)賬前查詢所有運(yùn)單的簽收狀態(tài),并追蹤問(wèn)題。(3)每日調(diào)用次數(shù)限制不超過(guò)3000次,如超過(guò)該限制,請(qǐng)對(duì)接訂閱推送API。· 2、是否需要授權(quán)· 要Free申請(qǐng)服務(wù)· 3、接口描述/說(shuō)明· (1)查詢接口支持按照運(yùn)單號(hào)查詢(單個(gè)查詢)。(2)接口需要指定快遞單號(hào)的快遞公司編碼,格式不對(duì)或則編碼錯(cuò)誤都會(huì)返失敗的信息。如:EMS物流單號(hào)應(yīng)選擇快遞公司編碼(EMS)查看快遞公司編碼

2、(3)返回的物流跟蹤信息按照發(fā)生的時(shí)間升序排列。(4)接口指令1002。(5)接口支持的消息接收方式為HTTP POST,請(qǐng)求方法的編碼格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。(6)請(qǐng)求系統(tǒng)級(jí)參數(shù)說(shuō)明:參數(shù)名稱類型說(shuō)明必須要求RequestDataString請(qǐng)求內(nèi)容需進(jìn)行URL(utf-8)編碼。請(qǐng)求內(nèi)容JSON格式,須和DataType一致。REBusinessIDString商戶ID,請(qǐng)?jiān)谖业姆?wù)頁(yè)面查看。RRequestTypeString請(qǐng)求指令類型:1002RDataSignStri

3、ng數(shù)據(jù)內(nèi)容簽名:把(請(qǐng)求內(nèi)容(未編碼)+AppKey)進(jìn)行MD5加密,然后Base64編碼,最后進(jìn)行URL(utf-8)編碼。詳細(xì)過(guò)程請(qǐng)查看Demo。RDataTypeString請(qǐng)求、返回?cái)?shù)據(jù)類型:2-json;O· 備注:R-必填(Required),O-可選(Optional),C-報(bào)文中該參數(shù)在一定條件下可選(Conditional)。(7)接口地址:API ID:點(diǎn)擊申請(qǐng)API Key:點(diǎn)擊申請(qǐng)API地址:http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx· 4、接口參數(shù)· (1)請(qǐng)求內(nèi)容字段

4、定義參數(shù)類型說(shuō)明必須要求OrderCodeString訂單編號(hào)OShipperCodeString快遞公司編碼RLogisticCodeString物流單號(hào)R· (3)返回參數(shù)定義參數(shù)名稱類型說(shuō)明必須要求EBusinessIDString用戶IDROrderCodeString訂單編號(hào)OShipperCodeString快遞公司編碼RLogisticCodeString物流運(yùn)單號(hào)RSuccessBool成功與否RReasonString失敗原因OStateString物流狀態(tài):2-在途中,3-簽收,4-問(wèn)題件RTracesTraceAcceptTimeString時(shí)間RAcceptS

5、tationString描述RRemarkString備注O· 5、示例· (1)請(qǐng)求示例JSON格式show sourceview sourceprint?1    2    "OrderCode": "",    3    "ShipperCode": "SF",    4    &q

6、uot;LogisticCode": "118650888018"5(2)返回示例JSON格式show sourceview sourceprint?01沒(méi)有物流軌跡的0203    "EBusinessID": "1109259",04    "Traces": ,05    "OrderCode": "",06   

7、; "ShipperCode": "SF",07    "LogisticCode": "118461988807",08    "Success": false,09    "Reason": null1011有物流軌跡的1213    "EBusinessID": "1109

8、259",14    "OrderCode": "",15    "ShipperCode": "SF",16    "LogisticCode": "118461988807",17    "Success": true,18    "S

9、tate": 3,19    "Reason": null,20    "Traces": 21        22            "AcceptTime": "2014/06/25 08:05:37",23 &

10、#160;          "AcceptStation": "正在派件.(派件人:鄧裕富,電話深圳 市",24            "Remark": null25        ,26  

11、;      27            "AcceptTime": "2014/06/25 04:01:28",28            "AcceptStation": "快件在 深圳集散中心 ,準(zhǔn)備送往下一站 深圳 深圳市

12、",29            "Remark": null30        ,31        32            "AcceptTime&quo

13、t;: "2014/06/25 01:41:06",33            "AcceptStation": "快件在 深圳集散中心 深圳市",34            "Remark": null35      

14、  ,36        37            "AcceptTime": "2014/06/24 20:18:58",38            "AcceptStation": "

15、已收件深圳市",39            "Remark": null40        ,41        42            "AcceptTi

16、me": "2014/06/24 20:55:28",43            "AcceptStation": "快件在 深圳 ,準(zhǔn)備送往下一站 深圳集散中心 深圳市",44            "Remark": null45   

17、     ,46        47            "AcceptTime": "2014/06/25 10:23:03",48            "AcceptSta

18、tion": "派件已簽收深圳市",49            "Remark": null50        ,51        52           

19、 "AcceptTime": "2014/06/25 10:23:03",53            "AcceptStation": "簽收人是:已簽收深圳市",54            "Remark": null55  &

20、#160;     56    57· 6、單號(hào)識(shí)別接口Demo工具.JAVA版DEMOimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .URL;

21、import .URLEncoder;import java.security.MessageDigest;import java.util.HashMap;import java.util.Map; /* * * 快遞鳥(niǎo)單號(hào)識(shí)別接口 * * 技術(shù)QQ群: 456320272 * copyright: 深圳市快金數(shù)據(jù)技術(shù)服務(wù)有限公司 * * * ID和Key請(qǐng)到官網(wǎng)申請(qǐng): */public class KdApiOrderDistinguish /DEMOpublic static void main(String args) KdApiOrderDistinguish api = new K

22、dApiOrderDistinguish();try String result = api.getOrderTracesByJson("3967950525457");System.out.print(result); catch (Exception e) e.printStackTrace();/電商IDprivate String EBusinessID="請(qǐng)到快遞鳥(niǎo)官網(wǎng)申請(qǐng)/電商加密私鑰,快遞鳥(niǎo)提供,注意保管,不要泄漏private String AppKey="請(qǐng)到快遞鳥(niǎo)官網(wǎng)申請(qǐng)/請(qǐng)求urlprivate String ReqURL=&quo

23、t;http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx" /* * Json方式 單號(hào)識(shí)別 * throws Exception */public String getOrderTracesByJson(String expNo) throws ExceptionString requestData= "'LogisticCode':'" + expNo + "'"Map<String, String> params = new HashMa

24、p<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8");params.put("EBusinessID", EBusinessID);params.put("RequestType", "2002");String dataSign=encrypt(requestData, AppKey, "UTF-8");params.put("DataSign&qu

25、ot;, 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, Str

26、ing charset) 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 & 0xff; if (val <= 0xf) sb.append("

27、0"); sb.append(Integer.toHexString(val); return sb.toString().toLowerCase();/* * base64編碼 * param str 內(nèi)容 * param charset 編碼方式 * throws UnsupportedEncodingException */private String base64(String str, String charset) throws UnsupportedEncodingExceptionString encoded = base64Encode(str.getBytes(c

28、harset);return encoded; SuppressWarnings("unused")private String urlEncoder(String str, String charset) throws UnsupportedEncodingExceptionString result = URLEncoder.encode(str, charset);return result;/* * 電商Sign簽名生成 * param content 內(nèi)容 * param keyValue Appkey * param charset 編碼方式 * throws

29、UnsupportedEncodingException ,Exception * return DataSign簽名 */SuppressWarnings("unused")private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exceptionif (keyValue != null)return base64(MD5(content + keyValue, charset), charset);retur

30、n base64(MD5(content, charset), charset); /* * 向指定 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<String, String> params) OutputStreamWriter out = null; BufferedReader in = null; Stri

31、ngBuilder result = new StringBuilder(); try URL realUrl = new URL(url); HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection(); / 發(fā)送POST請(qǐng)求必須設(shè)置如下兩行 conn.setDoOutput(true); conn.setDoInput(true); / POST方法 conn.setRequestMethod("POST"); / 設(shè)置通用的請(qǐng)求屬性 conn.setRequestProperty("

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

33、-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(); for (Map.Entry<String, String> entry : params.entrySet() if(param.length()>0) param.

34、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(); / 定義B

35、ufferedReader輸入流來(lái)讀取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.printStackTrace(); /使用finally塊來(lái)關(guān)閉輸出流、輸入流 finally try if(out!=null) out.close(); if(in!=null

36、) 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'

37、, '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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論