电子面单api接口_JAVA调用示例
生活随笔
收集整理的這篇文章主要介紹了
电子面单api接口_JAVA调用示例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? 電子面單是一種通過熱敏紙打印輸出紙質(zhì)×××的物流服務(wù)。通過熱感應(yīng)顯示文字,打印速度比傳統(tǒng)針式打印速度提升4~6倍。電子面單以接口形式嵌入到自己的系統(tǒng)、網(wǎng)站上,可以在自己的平臺操作打印電子面單。
? ? 目前電子面單接口類型有:快遞公司自行提供接口、菜鳥電子面單接口、快遞鳥電子面單接口。菜鳥電子面單接口、快遞鳥電子面單接口接入方式類似,都支持15家快遞查詢,其中菜鳥不支持順豐電子面單打印,快遞鳥不支持天天、快捷等快遞電子面單打印。以下先做快遞鳥電子面單接口的JAVA接入示例,后面逐漸介紹其他接口其他語言的對接方式。
import?java.io.BufferedReader; import?java.io.IOException;? import?java.io.InputStreamReader; import?java.io.OutputStreamWriter; import?java.io.UnsupportedEncodingException; import?java.net.HttpURLConnection; import?java.net.URL; import?java.net.URLEncoder; import?java.util.HashMap; import?java.util.Map; import?com.sun.org.apache.xerces.internal.impl.dv.util.Base64; import?java.security.MessageDigest;?/****?快遞鳥電子面單接口**?@技術(shù)QQ:?4009633321*?@技術(shù)QQ群:?200121393*?@see:?http://www.kdniao.com/MiandanAPI.aspx*?@copyright:?深圳市快金數(shù)據(jù)技術(shù)服務(wù)有限公司*?*?ID和Key請到官網(wǎng)申請:http://www.kdniao.com/ServiceApply.aspx*/public?class?KdGoldAPIDemo?{//電商IDprivate?String?EBusinessID="請到快遞鳥官網(wǎng)申請http://www.kdniao.com/ServiceApply.aspx"; //電商加密私鑰,快遞鳥提供,注意保管,不要泄漏private?String?AppKey="請到快遞鳥官網(wǎng)申請http://www.kdniao.com/ServiceApply.aspx"; //請求url,?正式環(huán)境地址:http://api.kdniao.cc/api/Eorderserviceprivate?String?ReqURL="http://testapi.kdniao.cc:8081/api/Eorderservice"; /***?Json方式?電子面單*?@throws?Exception?*/public?String?orderOnlineByJson()?throws?Exception{String?requestData=?"{'OrderCode':?'012657700387',"?+"'ShipperCode':'EMS',"?+"'PayType':1,"?+"'ExpType':1,"?+"'Cost':1.0,"?+"'OtherCost':1.0,"?+"'Sender':"?+"{"?+"'Company':'LV','Name':'Taylor','Mobile':'15018442396','ProvinceName':'上海','CityName':'上海','ExpAreaName':'青浦區(qū)','Address':'明珠路73號'},"?+"'Receiver':"?+"{"?+"'Company':'GCCUI','Name':'Yann','Mobile':'15018442396','ProvinceName':'北京','CityName':'北京','ExpAreaName':'朝陽區(qū)','Address':'三里屯街道雅秀大廈'},"?+"'Commodity':"?+"[{"?+"'GoodsName':'鞋子','Goodsquantity':1,'GoodsWeight':1.0}],"?+"'Weight':1.0,"?+"'Quantity':1,"?+"'Volume':0.0,"?+"'Remark':'小心輕放',"?+"'IsReturnPrintTemplate':1}";Map<String,?String>?params?=?new?HashMap<String,?String>();params.put("RequestData",?urlEncoder(requestData,?"UTF-8"));params.put("EBusinessID",?EBusinessID);params.put("RequestType",?"1007");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?str?內(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?StringBuffer(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?*/private?String?base64(String?str,?String?charset)?throws?UnsupportedEncodingException{String?encoded?=?Base64.encode(str.getBytes(charset));return?encoded;????} @SuppressWarnings("unused")private?String?urlEncoder(String?str,?String?charset)?throws?UnsupportedEncodingException{String?result?=?URLEncoder.encode(str,?charset);return?result;}/***?電商Sign簽名生成*?@param?content?內(nèi)容???*?@param?keyValue?Appkey??*?@param?charset?編碼方式*?@throws?UnsupportedEncodingException?,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(MD5(content,?charset),?charset);}/***?向指定?URL?發(fā)送POST方法的請求?????*?@param?url?發(fā)送請求的?URL????*?@param?params?請求的參數(shù)集合?????*?@return?遠程資源的響應(yīng)結(jié)果*/@SuppressWarnings("unused")private?String?sendPost(String?url,?Map<String,?String>?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è)置如下兩行conn.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",?"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<String,?String>?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的響應(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塊來關(guān)閉輸出流、輸入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}}catch(IOException?ex){ex.printStackTrace();}}return?result.toString();} }轉(zhuǎn)載于:https://blog.51cto.com/11798217/1795946
總結(jié)
以上是生活随笔為你收集整理的电子面单api接口_JAVA调用示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 设计模式(可复用面向对象软件的基
- 下一篇: mac office