New file |
| | |
| | | package com.jilongda.common.Ticket; |
| | | |
| | | |
| | | import cn.hutool.crypto.digest.DigestUtil; |
| | | import org.apache.http.HttpEntity; |
| | | import org.apache.http.NameValuePair; |
| | | import org.apache.http.client.config.RequestConfig; |
| | | import org.apache.http.client.entity.UrlEncodedFormEntity; |
| | | import org.apache.http.client.methods.CloseableHttpResponse; |
| | | import org.apache.http.client.methods.HttpPost; |
| | | import org.apache.http.impl.client.CloseableHttpClient; |
| | | import org.apache.http.impl.client.HttpClients; |
| | | import org.apache.http.message.BasicNameValuePair; |
| | | import org.apache.http.util.EntityUtils; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | |
| | | |
| | | public class TicketUtil { |
| | | |
| | | public static final String URL = "http://api.feieyun.cn/Api/Open/";//不需要修改 |
| | | |
| | | public static final String USER = "yanduyanjing@163.com";//*必填*:账号名 |
| | | public static final String UKEY = "C8cNbhZ63YWtQDGQ";//*必填*: 飞鹅云后台注册账号后生成的UKEY 【备注:这不是填打印机的KEY】 |
| | | public static final String SN = "*********";//*必填*:打印机编号,必须要在管理后台里添加打印机或调用API接口添加之后,才能调用API |
| | | |
| | | |
| | | //**********测试时,打开下面注释掉方法的即可,更多接口文档信息,请访问官网开放平台查看********** |
| | | public static void main(String[] args) throws Exception{ |
| | | |
| | | //==================添加打印机接口(支持批量)================== |
| | | //***返回值JSON字符串*** |
| | | //正确例子:{"msg":"ok","ret":0,"data":{"ok":["sn#key#remark#carnum","316500011#abcdefgh#快餐前台"],"no":["316500012#abcdefgh#快餐前台#13688889999 (错误:识别码不正确)"]},"serverExecutedTime":3} |
| | | //错误:{"msg":"参数错误 : 该帐号未注册.","ret":-2,"data":null,"serverExecutedTime":37} |
| | | |
| | | //提示:打印机编号(必填) # 打印机识别码(必填) # 备注名称(选填) # 流量卡号码(选填),多台打印机请换行(\n)添加新打印机信息,每次最多100行(台)。 |
| | | // String snlist = "922440578#XZacTCZT#测试添加打印机"; |
| | | // String method = addprinter(snlist); |
| | | // System.out.println(method); |
| | | // String snlist = "922440578#XZacTCZT#测试添加打印机"; |
| | | // String method = editprinter("922440578","修改名称"); |
| | | // System.out.println(method); |
| | | |
| | | TAddOptometryVO tAddOptometryVO = new TAddOptometryVO(); |
| | | List<TOptometryDetailVO> temp = new ArrayList<>(); |
| | | TOptometryDetailVO t1 = new TOptometryDetailVO(); |
| | | t1.setType(3); |
| | | t1.setBallMirror(-1.00D); |
| | | t1.setColumnMirror(-0.10D); |
| | | t1.setAxis("30"); |
| | | t1.setPupilDistance("33"); |
| | | t1.setStatus(1); |
| | | temp.add(t1); |
| | | TOptometryDetailVO t2 = new TOptometryDetailVO(); |
| | | t2.setType(3); |
| | | t2.setBallMirror(-1.00D); |
| | | t2.setColumnMirror(-0.10D); |
| | | t2.setAxis("30"); |
| | | t2.setPupilDistance("33"); |
| | | t2.setStatus(2); |
| | | temp.add(t2); |
| | | TOptometryDetailVO t3 = new TOptometryDetailVO(); |
| | | t3.setType(2); |
| | | t3.setBallMirror(-1.00D); |
| | | t3.setColumnMirror(-0.10D); |
| | | t3.setAxis("30"); |
| | | t3.setPupilDistance("33"); |
| | | t3.setCorrect("1.0"); |
| | | t3.setStatus(1); |
| | | temp.add(t3); |
| | | TOptometryDetailVO t4 = new TOptometryDetailVO(); |
| | | t4.setType(2); |
| | | t4.setBallMirror(-1.00D); |
| | | t4.setColumnMirror(-0.10D); |
| | | t4.setAxis("30"); |
| | | t4.setPupilDistance("33"); |
| | | t4.setCorrect("1.0"); |
| | | t4.setStatus(2); |
| | | temp.add(t4); |
| | | TOptometryDetailVO t5 = new TOptometryDetailVO(); |
| | | t5.setType(1); |
| | | t5.setBallMirror(-1.00D); |
| | | t5.setColumnMirror(-0.10D); |
| | | t5.setAxis("30"); |
| | | t5.setAddS("50"); |
| | | t5.setPupilHeight("50"); |
| | | t5.setPupilDistance("33"); |
| | | t5.setCorrect("1.0"); |
| | | t5.setStatus(1); |
| | | temp.add(t5); |
| | | TOptometryDetailVO t6 = new TOptometryDetailVO(); |
| | | t6.setType(1); |
| | | t6.setBallMirror(-1.00D); |
| | | t6.setColumnMirror(-0.10D); |
| | | t6.setAxis("30"); |
| | | t6.setAddS("50"); |
| | | t6.setPupilHeight("50"); |
| | | t6.setPupilDistance("33"); |
| | | t6.setCorrect("1.0"); |
| | | t6.setStatus(2); |
| | | temp.add(t6); |
| | | |
| | | tAddOptometryVO.setOptometryDetailVOS(temp); |
| | | tAddOptometryVO.setShopName("天府新谷门店"); |
| | | tAddOptometryVO.setOptometristName("无关风月"); |
| | | tAddOptometryVO.setTime("2025-11-11"); |
| | | tAddOptometryVO.setPhone("19983174515"); |
| | | tAddOptometryVO.setSn("922440578"); |
| | | String method = print(tAddOptometryVO); |
| | | System.out.println(method); |
| | | |
| | | |
| | | //==================方法1.小票机打印订单接口================== |
| | | //***返回值JSON字符串*** |
| | | //成功:{"msg":"ok","ret":0,"data":"xxxxxxx_xxxxxxxx_xxxxxxxx","serverExecutedTime":5} |
| | | //失败:{"msg":"错误描述","ret":非0,"data":"null","serverExecutedTime":5} |
| | | |
| | | // String method1 = print(SN);//该接口只能是小票机使用,如购买的是标签机请使用下面方法2,调用打印 |
| | | // System.out.println(method1); |
| | | |
| | | |
| | | |
| | | //==================方法2.标签机专用打印订单接口================== |
| | | //***返回值JSON字符串*** |
| | | //成功:{"msg":"ok","ret":0,"data":"xxxxxxx_xxxxxxxx_xxxxxxxx","serverExecutedTime":5} |
| | | //失败:{"msg":"错误描述","ret":非0,"data":"null","serverExecutedTime":5} |
| | | |
| | | // String method2 = printLabelMsg(SN);//打开注释调用标签机打印接口进行打印,该接口只能是标签机使用,其它型号打印机请勿使用该接口 |
| | | // System.out.println(method2); |
| | | |
| | | |
| | | |
| | | //===========方法3.查询某订单是否打印成功============= |
| | | //***返回值JSON字符串*** |
| | | //成功:{"msg":"ok","ret":0,"data":true,"serverExecutedTime":2}//data:true为已打印,false为未打印 |
| | | //失败:{"msg":"错误描述","ret":非0, "data":null,"serverExecutedTime":7} |
| | | |
| | | // String orderid = "xxxxxxx_xxxxxxxx_xxxxxxxx";//订单ID,从方法1返回值data获取 |
| | | // String method3 = queryOrderState(orderid); |
| | | // System.out.println(method3); |
| | | |
| | | |
| | | |
| | | //===========方法4.查询指定打印机某天的订单详情============ |
| | | //***返回值JSON字符串*** |
| | | //成功:{"msg":"ok","ret":0,"data":{"print":6,"waiting":1},"serverExecutedTime":9}//print已打印,waiting为打印 |
| | | //失败:{"msg":"错误描述","ret":非0,"data":"null","serverExecutedTime":5} |
| | | |
| | | // String strdate = "2016-11-12";//注意时间格式为"yyyy-MM-dd" |
| | | // String method4 = queryOrderInfoByDate(SN,strdate); |
| | | // System.out.println(method4); |
| | | |
| | | |
| | | |
| | | //===========方法5.查询打印机的状态========================== |
| | | //***返回值JSON字符串*** |
| | | //成功:{"msg":"ok","ret":0,"data":"状态","serverExecutedTime":4} |
| | | //失败:{"msg":"错误描述","ret":非0,"data":"null","serverExecutedTime":5} |
| | | |
| | | // String method5 = queryPrinterStatus(SN); |
| | | // System.out.println(method5); |
| | | |
| | | } |
| | | public static String unescapeUnicode(String input) { |
| | | Pattern pattern = Pattern.compile("\\\\u([0-9a-fA-F]{4})"); |
| | | Matcher matcher = pattern.matcher(input); |
| | | StringBuffer sb = new StringBuffer(); |
| | | |
| | | while (matcher.find()) { |
| | | int codePoint = Integer.parseInt(matcher.group(1), 16); |
| | | matcher.appendReplacement(sb, String.valueOf((char) codePoint)); |
| | | } |
| | | matcher.appendTail(sb); |
| | | |
| | | return sb.toString(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //=====================以下是函数实现部分================================================ |
| | | |
| | | public static String addprinter(String snlist){ |
| | | |
| | | //通过POST请求,发送打印信息到服务器 |
| | | RequestConfig requestConfig = RequestConfig.custom() |
| | | .setSocketTimeout(30000)//读取超时 |
| | | .setConnectTimeout(30000)//连接超时 |
| | | .build(); |
| | | |
| | | CloseableHttpClient httpClient = HttpClients.custom() |
| | | .setDefaultRequestConfig(requestConfig) |
| | | .build(); |
| | | |
| | | HttpPost post = new HttpPost(URL); |
| | | List<NameValuePair> nvps = new ArrayList<NameValuePair>(); |
| | | nvps.add(new BasicNameValuePair("user",USER)); |
| | | String STIME = String.valueOf(System.currentTimeMillis()/1000); |
| | | nvps.add(new BasicNameValuePair("stime",STIME)); |
| | | nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME))); |
| | | nvps.add(new BasicNameValuePair("apiname","Open_printerAddlist"));//固定值,不需要修改 |
| | | nvps.add(new BasicNameValuePair("printerContent",snlist)); |
| | | |
| | | CloseableHttpResponse response = null; |
| | | String result = null; |
| | | try |
| | | { |
| | | post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8")); |
| | | response = httpClient.execute(post); |
| | | int statecode = response.getStatusLine().getStatusCode(); |
| | | if(statecode == 200){ |
| | | HttpEntity httpentity = response.getEntity(); |
| | | if (httpentity != null){ |
| | | result = EntityUtils.toString(httpentity); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | e.printStackTrace(); |
| | | } |
| | | finally{ |
| | | try { |
| | | if(response!=null){ |
| | | response.close(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | post.abort(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | httpClient.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | // 解析JSON字符串 |
| | | return unescapeUnicode(result); |
| | | |
| | | } |
| | | public static String editprinter(String sn,String name){ |
| | | |
| | | //通过POST请求,发送打印信息到服务器 |
| | | RequestConfig requestConfig = RequestConfig.custom() |
| | | .setSocketTimeout(30000)//读取超时 |
| | | .setConnectTimeout(30000)//连接超时 |
| | | .build(); |
| | | |
| | | CloseableHttpClient httpClient = HttpClients.custom() |
| | | .setDefaultRequestConfig(requestConfig) |
| | | .build(); |
| | | |
| | | HttpPost post = new HttpPost(URL); |
| | | List<NameValuePair> nvps = new ArrayList<NameValuePair>(); |
| | | nvps.add(new BasicNameValuePair("user",USER)); |
| | | String STIME = String.valueOf(System.currentTimeMillis()/1000); |
| | | nvps.add(new BasicNameValuePair("stime",STIME)); |
| | | nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME))); |
| | | nvps.add(new BasicNameValuePair("apiname","Open_printerEdit"));//固定值,不需要修改 |
| | | nvps.add(new BasicNameValuePair("sn",sn)); |
| | | nvps.add(new BasicNameValuePair("name",name)); |
| | | |
| | | CloseableHttpResponse response = null; |
| | | String result = null; |
| | | try |
| | | { |
| | | post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8")); |
| | | response = httpClient.execute(post); |
| | | int statecode = response.getStatusLine().getStatusCode(); |
| | | if(statecode == 200){ |
| | | HttpEntity httpentity = response.getEntity(); |
| | | if (httpentity != null){ |
| | | result = EntityUtils.toString(httpentity); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | e.printStackTrace(); |
| | | } |
| | | finally{ |
| | | try { |
| | | if(response!=null){ |
| | | response.close(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | post.abort(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | httpClient.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return unescapeUnicode(result); |
| | | |
| | | } |
| | | |
| | | |
| | | //方法1 |
| | | public static String print(TAddOptometryVO dto){ |
| | | //标签说明: |
| | | //单标签: |
| | | //"<BR>"为换行,"<CUT>"为切刀指令(主动切纸,仅限切刀打印机使用才有效果) |
| | | //"<LOGO>"为打印LOGO指令(前提是预先在机器内置LOGO图片),"<PLUGIN>"为钱箱或者外置音响指令 |
| | | //成对标签: |
| | | //"<CB></CB>"为居中放大一倍,"<B></B>"为放大一倍,"<C></C>"为居中,<L></L>字体变高一倍 |
| | | //<W></W>字体变宽一倍,"<QR></QR>"为二维码,"<BOLD></BOLD>"为字体加粗,"<RIGHT></RIGHT>"为右对齐 |
| | | //拼凑订单内容时可参考如下格式 |
| | | //根据打印纸张的宽度,自行调整内容的格式,可参考下面的样例格式 |
| | | |
| | | StringBuilder content; |
| | | content=new StringBuilder("<BOLD>"); |
| | | content.append("隼目验光单<BR>"); |
| | | content.append(dto.getShopName()).append("<BR>"); |
| | | content.append("验光师:").append(dto.getOptometristName()).append("<BR>"); |
| | | content.append("验光时间:").append(dto.getTime()).append("<BR>"); |
| | | content.append("--------------------------------<BR>"); |
| | | content.append("客户电话:").append(dto.getPhone()).append("<BR>"); |
| | | content.append("--------------------------------<BR>"); |
| | | List<TOptometryDetailVO> optometryDetailVOS = dto.getOptometryDetailVOS(); |
| | | // 使用 List.sort 和 Comparator 进行多字段倒序排序 |
| | | optometryDetailVOS.sort( |
| | | Comparator.comparingInt(TOptometryDetailVO::getType) |
| | | .thenComparingInt(TOptometryDetailVO::getStatus).reversed() |
| | | ); |
| | | for (TOptometryDetailVO s : optometryDetailVOS) { |
| | | switch (s.getType()){ |
| | | case 3: |
| | | if (s.getStatus()==2){ |
| | | content.append("<BOLD>旧镜信息<BR>"); |
| | | content.append("R:<BR>"); |
| | | content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); |
| | | content.append("瞳距:"+s.getPupilDistance()+"<BR>"); |
| | | }else if (s.getStatus()==1){ |
| | | content.append("L:<BR>"); |
| | | content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); |
| | | content.append("瞳距:"+s.getPupilDistance()+"<BR>"); |
| | | content.append("--------------------------------<BR>"); |
| | | } |
| | | break; |
| | | case 2: |
| | | if (s.getStatus()==2){ |
| | | content.append("完全矫正<BR>"); |
| | | content.append("R:<BR>"); |
| | | content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); |
| | | content.append("瞳距:"+s.getPupilDistance()+" 矫正:"+s.getCorrect()+"<BR>"); |
| | | }else if (s.getStatus()==1){ |
| | | content.append("L:<BR>"); |
| | | content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); |
| | | content.append("瞳距:"+s.getPupilDistance()+" 矫正:"+s.getCorrect()+"<BR>"); |
| | | content.append("--------------------------------<BR>"); |
| | | } |
| | | break; |
| | | case 1: |
| | | if (s.getStatus()==2){ |
| | | content.append("配镜处方<BR>"); |
| | | content.append("R:<BR>"); |
| | | content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); |
| | | content.append("ADD:"+s.getAddS()+" 瞳距:"+s.getPupilDistance()+" 瞳高:"+s.getPupilHeight()+"<BR>"); |
| | | content.append("矫正:"+s.getCorrect()+"<BR>"); |
| | | }else if (s.getStatus()==1){ |
| | | content.append("L:<BR>"); |
| | | content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); |
| | | content.append("ADD:"+s.getAddS()+" 瞳距:"+s.getPupilDistance()+" 瞳高:"+s.getPupilHeight()+"<BR>"); |
| | | content.append("矫正:"+s.getCorrect()+"<BR>"); |
| | | content.append("--------------------------------<BR>"); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | content.append("</BOLD>"); |
| | | //通过POST请求,发送打印信息到服务器 |
| | | RequestConfig requestConfig = RequestConfig.custom() |
| | | .setSocketTimeout(30000)//读取超时 |
| | | .setConnectTimeout(30000)//连接超时 |
| | | .build(); |
| | | |
| | | CloseableHttpClient httpClient = HttpClients.custom() |
| | | .setDefaultRequestConfig(requestConfig) |
| | | .build(); |
| | | |
| | | HttpPost post = new HttpPost(URL); |
| | | List<NameValuePair> nvps = new ArrayList<NameValuePair>(); |
| | | nvps.add(new BasicNameValuePair("user",USER)); |
| | | String STIME = String.valueOf(System.currentTimeMillis()/1000); |
| | | nvps.add(new BasicNameValuePair("stime",STIME)); |
| | | nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME))); |
| | | nvps.add(new BasicNameValuePair("apiname","Open_printMsg"));//固定值,不需要修改 |
| | | nvps.add(new BasicNameValuePair("sn",dto.getSn())); |
| | | nvps.add(new BasicNameValuePair("content", content.toString())); |
| | | nvps.add(new BasicNameValuePair("times","1"));//打印联数 |
| | | |
| | | CloseableHttpResponse response = null; |
| | | String result = null; |
| | | try |
| | | { |
| | | post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8")); |
| | | response = httpClient.execute(post); |
| | | int statecode = response.getStatusLine().getStatusCode(); |
| | | if(statecode == 200){ |
| | | HttpEntity httpentity = response.getEntity(); |
| | | if (httpentity != null){ |
| | | //服务器返回的JSON字符串,建议要当做日志记录起来 |
| | | result = EntityUtils.toString(httpentity); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | e.printStackTrace(); |
| | | } |
| | | finally{ |
| | | try { |
| | | if(response!=null){ |
| | | response.close(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | post.abort(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | httpClient.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return unescapeUnicode(result); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | //方法2 |
| | | public static String printLabelMsg(String sn){ |
| | | |
| | | String content; |
| | | content = "<DIRECTION>1</DIRECTION>";//设定打印时出纸和打印字体的方向,n 0 或 1,每次设备重启后都会初始化为 0 值设置,1:正向出纸,0:反向出纸, |
| | | content += "<TEXT x='9' y='10' font='12' w='1' h='2' r='0'>#001 五号桌 1/3</TEXT><TEXT x='80' y='80' font='12' w='2' h='2' r='0'>可乐鸡翅</TEXT><TEXT x='9' y='180' font='12' w='1' h='1' r='0'>张三先生 13800138000</TEXT>";//40mm宽度标签纸打印例子,打开注释调用标签打印接口打印 |
| | | |
| | | //通过POST请求,发送打印信息到服务器 |
| | | RequestConfig requestConfig = RequestConfig.custom() |
| | | .setSocketTimeout(30000)//读取超时 |
| | | .setConnectTimeout(30000)//连接超时 |
| | | .build(); |
| | | |
| | | CloseableHttpClient httpClient = HttpClients.custom() |
| | | .setDefaultRequestConfig(requestConfig) |
| | | .build(); |
| | | |
| | | HttpPost post = new HttpPost(URL); |
| | | List<NameValuePair> nvps = new ArrayList<NameValuePair>(); |
| | | nvps.add(new BasicNameValuePair("user",USER)); |
| | | String STIME = String.valueOf(System.currentTimeMillis()/1000); |
| | | nvps.add(new BasicNameValuePair("stime",STIME)); |
| | | nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME))); |
| | | nvps.add(new BasicNameValuePair("apiname","Open_printLabelMsg"));//固定值,不需要修改 |
| | | nvps.add(new BasicNameValuePair("sn",sn)); |
| | | nvps.add(new BasicNameValuePair("content",content)); |
| | | nvps.add(new BasicNameValuePair("times","1"));//打印联数 |
| | | |
| | | CloseableHttpResponse response = null; |
| | | String result = null; |
| | | try |
| | | { |
| | | post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8")); |
| | | response = httpClient.execute(post); |
| | | int statecode = response.getStatusLine().getStatusCode(); |
| | | if(statecode == 200){ |
| | | HttpEntity httpentity = response.getEntity(); |
| | | if (httpentity != null){ |
| | | //服务器返回的JSON字符串,建议要当做日志记录起来 |
| | | result = EntityUtils.toString(httpentity); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | e.printStackTrace(); |
| | | } |
| | | finally{ |
| | | try { |
| | | if(response!=null){ |
| | | response.close(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | post.abort(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | httpClient.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return result; |
| | | |
| | | } |
| | | |
| | | |
| | | //方法3 |
| | | public static String queryOrderState(String orderid){ |
| | | |
| | | //通过POST请求,发送打印信息到服务器 |
| | | RequestConfig requestConfig = RequestConfig.custom() |
| | | .setSocketTimeout(30000)//读取超时 |
| | | .setConnectTimeout(30000)//连接超时 |
| | | .build(); |
| | | |
| | | CloseableHttpClient httpClient = HttpClients.custom() |
| | | .setDefaultRequestConfig(requestConfig) |
| | | .build(); |
| | | |
| | | HttpPost post = new HttpPost(URL); |
| | | List<NameValuePair> nvps = new ArrayList<NameValuePair>(); |
| | | nvps.add(new BasicNameValuePair("user",USER)); |
| | | String STIME = String.valueOf(System.currentTimeMillis()/1000); |
| | | nvps.add(new BasicNameValuePair("stime",STIME)); |
| | | nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME))); |
| | | nvps.add(new BasicNameValuePair("apiname","Open_queryOrderState"));//固定值,不需要修改 |
| | | nvps.add(new BasicNameValuePair("orderid",orderid)); |
| | | |
| | | CloseableHttpResponse response = null; |
| | | String result = null; |
| | | try |
| | | { |
| | | post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8")); |
| | | response = httpClient.execute(post); |
| | | int statecode = response.getStatusLine().getStatusCode(); |
| | | if(statecode == 200){ |
| | | HttpEntity httpentity = response.getEntity(); |
| | | if (httpentity != null){ |
| | | //服务器返回 |
| | | result = EntityUtils.toString(httpentity); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | e.printStackTrace(); |
| | | } |
| | | finally{ |
| | | try { |
| | | if(response!=null){ |
| | | response.close(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | post.abort(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | httpClient.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return result; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | //方法4 |
| | | public static String queryOrderInfoByDate(String sn,String strdate){ |
| | | |
| | | //通过POST请求,发送打印信息到服务器 |
| | | RequestConfig requestConfig = RequestConfig.custom() |
| | | .setSocketTimeout(30000)//读取超时 |
| | | .setConnectTimeout(30000)//连接超时 |
| | | .build(); |
| | | |
| | | CloseableHttpClient httpClient = HttpClients.custom() |
| | | .setDefaultRequestConfig(requestConfig) |
| | | .build(); |
| | | |
| | | HttpPost post = new HttpPost(URL); |
| | | List<NameValuePair> nvps = new ArrayList<NameValuePair>(); |
| | | nvps.add(new BasicNameValuePair("user",USER)); |
| | | String STIME = String.valueOf(System.currentTimeMillis()/1000); |
| | | nvps.add(new BasicNameValuePair("stime",STIME)); |
| | | nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME))); |
| | | nvps.add(new BasicNameValuePair("apiname","Open_queryOrderInfoByDate"));//固定值,不需要修改 |
| | | nvps.add(new BasicNameValuePair("sn",sn)); |
| | | nvps.add(new BasicNameValuePair("date",strdate));//yyyy-MM-dd格式 |
| | | |
| | | CloseableHttpResponse response = null; |
| | | String result = null; |
| | | try |
| | | { |
| | | post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8")); |
| | | response = httpClient.execute(post); |
| | | int statecode = response.getStatusLine().getStatusCode(); |
| | | if(statecode == 200){ |
| | | HttpEntity httpentity = response.getEntity(); |
| | | if (httpentity != null){ |
| | | //服务器返回 |
| | | result = EntityUtils.toString(httpentity); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | e.printStackTrace(); |
| | | } |
| | | finally{ |
| | | try { |
| | | if(response!=null){ |
| | | response.close(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | post.abort(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | httpClient.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return result; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | //方法5 |
| | | public static String queryPrinterStatus(String sn){ |
| | | |
| | | //通过POST请求,发送打印信息到服务器 |
| | | RequestConfig requestConfig = RequestConfig.custom() |
| | | .setSocketTimeout(30000)//读取超时 |
| | | .setConnectTimeout(30000)//连接超时 |
| | | .build(); |
| | | |
| | | CloseableHttpClient httpClient = HttpClients.custom() |
| | | .setDefaultRequestConfig(requestConfig) |
| | | .build(); |
| | | |
| | | HttpPost post = new HttpPost(URL); |
| | | List<NameValuePair> nvps = new ArrayList<NameValuePair>(); |
| | | nvps.add(new BasicNameValuePair("user",USER)); |
| | | String STIME = String.valueOf(System.currentTimeMillis()/1000); |
| | | nvps.add(new BasicNameValuePair("stime",STIME)); |
| | | nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME))); |
| | | nvps.add(new BasicNameValuePair("apiname","Open_queryPrinterStatus"));//固定值,不需要修改 |
| | | nvps.add(new BasicNameValuePair("sn",sn)); |
| | | |
| | | CloseableHttpResponse response = null; |
| | | String result = null; |
| | | try |
| | | { |
| | | post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8")); |
| | | response = httpClient.execute(post); |
| | | int statecode = response.getStatusLine().getStatusCode(); |
| | | if(statecode == 200){ |
| | | HttpEntity httpentity = response.getEntity(); |
| | | if (httpentity != null){ |
| | | //服务器返回 |
| | | result = EntityUtils.toString(httpentity); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | e.printStackTrace(); |
| | | } |
| | | finally{ |
| | | try { |
| | | if(response!=null){ |
| | | response.close(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | post.abort(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | httpClient.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return result; |
| | | |
| | | } |
| | | |
| | | |
| | | //生成签名字符串 |
| | | public static String signature(String USER,String UKEY,String STIME){ |
| | | String s = DigestUtil.sha1Hex(USER+UKEY+STIME); |
| | | return s; |
| | | } |
| | | |
| | | |
| | | } |