700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 电子面单api接口_JAVA调用示例

电子面单api接口_JAVA调用示例

时间:2022-09-04 07:15:44

相关推荐

电子面单api接口_JAVA调用示例

电子面单是一种通过热敏纸打印输出纸质×××的物流服务。通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍。电子面单以接口形式嵌入到自己的系统、网站上,可以在自己的平台操作打印电子面单。

目前电子面单接口类型有:快递公司自行提供接口、菜鸟电子面单接口、快递鸟电子面单接口。菜鸟电子面单接口、快递鸟电子面单接口接入方式类似,都支持15家快递查询,其中菜鸟不支持顺丰电子面单打印,快递鸟不支持天天、快捷等快递电子面单打印。以下先做快递鸟电子面单接口的JAVA接入示例,后面逐渐介绍其他接口其他语言的对接方式。

importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.io.UnsupportedEncodingException;.HttpURLConnection;.URL;.URLEncoder;importjava.util.HashMap;importjava.util.Map;.apache.xerces.internal.impl.dv.util.Base64;importjava.security.MessageDigest;/****快递鸟电子面单接口**@技术QQ:4009633321*@技术QQ群:200121393*@see:/MiandanAPI.aspx*@copyright:深圳市快金数据技术服务有限公司**ID和Key请到官网申请:/ServiceApply.aspx*/publicclassKdGoldAPIDemo{//电商IDprivateStringEBusinessID="请到快递鸟官网申请/ServiceApply.aspx";//电商加密私钥,快递鸟提供,注意保管,不要泄漏privateStringAppKey="请到快递鸟官网申请/ServiceApply.aspx";//请求url,正式环境地址:/api/EorderserviceprivateStringReqURL=":8081/api/Eorderservice";/***Json方式电子面单*@throwsException*/publicStringorderOnlineByJson()throwsException{StringrequestData="{'OrderCode':'012657700387',"+"'ShipperCode':'EMS',"+"'PayType':1,"+"'ExpType':1,"+"'Cost':1.0,"+"'OtherCost':1.0,"+"'Sender':"+"{"+"'Company':'LV','Name':'Taylor','Mobile':'15018442396','ProvinceName':'上海','CityName':'上海','ExpAreaName':'青浦区','Address':'明珠路73号'},"+"'Receiver':"+"{"+"'Company':'GCCUI','Name':'Yann','Mobile':'15018442396','ProvinceName':'北京','CityName':'北京','ExpAreaName':'朝阳区','Address':'三里屯街道雅秀大厦'},"+"'Commodity':"+"[{"+"'GoodsName':'鞋子','Goodsquantity':1,'GoodsWeight':1.0}],"+"'Weight':1.0,"+"'Quantity':1,"+"'Volume':0.0,"+"'Remark':'小心轻放',"+"'IsReturnPrintTemplate':1}";Map<String,String>params=newHashMap<String,String>();params.put("RequestData",urlEncoder(requestData,"UTF-8"));params.put("EBusinessID",EBusinessID);params.put("RequestType","1007");StringdataSign=encrypt(requestData,AppKey,"UTF-8");params.put("DataSign",urlEncoder(dataSign,"UTF-8"));params.put("DataType","2");Stringresult=sendPost(ReqURL,params);//根据公司业务处理返回的信息......returnresult;}/***MD5加密*@paramstr内容*@paramcharset编码方式*@throwsException*/@SuppressWarnings("unused")privateStringMD5(Stringstr,Stringcharset)throwsException{MessageDigestmd=MessageDigest.getInstance("MD5");md.update(str.getBytes(charset));byte[]result=md.digest();StringBuffersb=newStringBuffer(32);for(inti=0;i<result.length;i++){intval=result[i]&0xff;if(val<=0xf){sb.append("0");}sb.append(Integer.toHexString(val));}returnsb.toString().toLowerCase();}/***base64编码*@paramstr内容*@paramcharset编码方式*@throwsUnsupportedEncodingException*/privateStringbase64(Stringstr,Stringcharset)throwsUnsupportedEncodingException{Stringencoded=Base64.encode(str.getBytes(charset));returnencoded;}@SuppressWarnings("unused")privateStringurlEncoder(Stringstr,Stringcharset)throwsUnsupportedEncodingException{Stringresult=URLEncoder.encode(str,charset);returnresult;}/***电商Sign签名生成*@paramcontent内容*@paramkeyValueAppkey*@paramcharset编码方式*@throwsUnsupportedEncodingException,Exception*@returnDataSign签名*/@SuppressWarnings("unused")privateStringencrypt(Stringcontent,StringkeyValue,Stringcharset)throwsUnsupportedEncodingException,Exception{if(keyValue!=null){returnbase64(MD5(content+keyValue,charset),charset);}returnbase64(MD5(content,charset),charset);}/***向指定URL发送POST方法的请求*@paramurl发送请求的URL*@paramparams请求的参数集合*@return远程资源的响应结果*/@SuppressWarnings("unused")privateStringsendPost(Stringurl,Map<String,String>params){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newStringBuilder();try{URLrealUrl=newURL(url);HttpURLConnectionconn=(HttpURLConnection)realUrl.openConnection();//发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);//POST方法conn.setRequestMethod("POST");//设置通用的请求属性conn.setRequestProperty("accept","*/*");conn.setRequestProperty("connection","Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");conn.connect();//获取URLConnection对象对应的输出流out=newOutputStreamWriter(conn.getOutputStream(),"UTF-8");//发送请求参数if(params!=null){StringBuilderparam=newStringBuilder();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的响应in=newBufferedReader(newInputStreamReader(conn.getInputStream(),"UTF-8"));Stringline;while((line=in.readLine())!=null){result.append(line);}}catch(Exceptione){e.printStackTrace();}//使用finally块来关闭输出流、输入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}}catch(IOExceptionex){ex.printStackTrace();}}returnresult.toString();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。