/** * 查询本电政策和价格(动态本电账号) * * @param pnr 大编码或者小编码 * @param bigpnr 1 大编码 0 小编码 * @param air 航空公司编码 如果是小编码,此项可以为空 * @param b2bUser b2b用户 * @param b2bPass b2b密码 * @return 注:入库后的PNR不能再查询此信息(查询失败:查价格失败,该PNR已经入库!) */ public static AlidzResult queryPriceByPnrex( String pnr, int bigpnr, String air, String b2bUser, String b2bPwd) { String backInf = ""; AlidzResult ar = new AlidzResult(); String httpRequest = BASE_HTTP + "cmd=querypricebypnrex&pnr=" + pnr.toUpperCase() + "&bigpnr=" + bigpnr + "&air=" + air.toUpperCase() + "&b2buser="******"&b2bPwd=" + b2bPwd + "&fmt=xml"; backInf = backInf(httpRequest); if (backInf.contains("<exception>")) { ar.setStatus(0); ar.setMessage("查询操作失败:" + subStringXML(backInf, "exception")); return ar; } if (backInf.contains("<errorInfo>")) { ar.setStatus(0); ar.setMessage("查询失败:" + subStringXML(backInf, "errorInfo")); } else { ar.setStatus(1); ar.setMessage( "查询结果:\n" + "pnr:" + subStringXML(backInf, "pnr") + "\n" + "票面价:" + subStringXML(backInf, "ticketprice") + "\n" + "所有税费:" + subStringXML(backInf, "totaltax") + "\n" + "返点:" + subStringXML(backInf, "policynum") + "\n" + "支付总价(全部含燃油):" + subStringXML(backInf, "payprice")); } return ar; }
/** * 检测本票通是否在运行 * * @return */ public static AlidzResult isRunning() { AlidzResult ar = new AlidzResult(); String httpRequest = BASE_HTTP + "cmd=checkclt&fmt=xml"; String backInf = backInf(httpRequest); if (backInf.contains("<exception>")) { ar.setStatus(0); ar.setMessage("本票通未运行:" + subStringXML(backInf, "exception")); return ar; } if (backInf.contains("<Code>1</Code>")) { ar.setStatus(1); ar.setMessage("本票通正在运行"); } else { ar.setStatus(0); ar.setMessage("本票通未运行"); } return ar; }
/** * 自动支付(导入本电系统,针对已经配置好本票通) * * @param pnr 大编码或者小编码 * @param bigpnr 1 大编码 0 小编码 * @param air 航空公司编码 * @param b2bUser b2b用户 * @param b2bPwd b2b密码 * @param srcticketprice 票面价 * @return */ public static AlidzResult order( String pnr, int bigpnr, String air, String b2bUser, String b2bPwd, float srcticketprice) { String backInf = ""; AlidzResult ar = new AlidzResult(); String httpRequest = BASE_HTTP + "cmd=order&pnr=" + pnr.toUpperCase() + "&bigpnr=" + bigpnr + "&air=" + air.toUpperCase() + "&b2buser="******"&b2bPwd=" + b2bPwd + "&srcticketprice=" + srcticketprice + "&autopayflag=1"; backInf = backInf(httpRequest); if (backInf.contains("<exception>")) { ar.setStatus(0); ar.setIsPaySuccess(0); ar.setMessage("支付操作失败:" + subStringXML(backInf, "exception")); return ar; } if (backInf.contains("<paystatus>1</paystatus>")) { ar.setStatus(1); ar.setIsPaySuccess(1); ar.setMessage("支付成功,支付金额:" + subStringXML(backInf, "payprice")); } else if (backInf.contains("<errorInfo>")) { ar.setStatus(0); ar.setIsPaySuccess(0); ar.setMessage("支付失败:" + subStringXML(backInf, "errorInfo")); } else { ar.setStatus(0); ar.setIsPaySuccess(0); ar.setMessage("支付失败"); } return ar; }
/** * 查询本电订单状态 * * @param pnr 大编码或者小编码 * @param bigpnr 1 大编码 0 小编码 * @param air 航空公司编码 * @return */ public static AlidzResult queryorder(String pnr, int bigpnr, String air) { String backInf = ""; AlidzResult ar = new AlidzResult(); StringBuffer message = new StringBuffer(); String httpRequest = BASE_HTTP + "cmd=queryorder&pnr=" + pnr.toUpperCase() + "&bigpnr=" + bigpnr + "&air=" + air.toUpperCase() + "&fmt=xml"; backInf = backInf(httpRequest); if (backInf.contains("<exception>")) { ar.setStatus(0); ar.setPayStatus(2); ar.setMessage("查询操作失败:" + subStringXML(backInf, "exception")); // System.out.println("exception----------"); return ar; } if (backInf.contains("<code>1</code>")) { message.append("查询成功:\n"); message.append("订单号:" + subStringXML(backInf, "orderno") + "\n"); String payStatu = subStringXML(backInf, "paystatus"); ar.setPayStatus(Integer.parseInt(payStatu)); if ("1".equals(payStatu)) { message.append("支付状态:已支付\n"); } else if ("0".equals(payStatu)) { message.append("支付状态:未支付\n"); } else { message.append("支付状态:查询支付状态出错\n"); } String orderStatu = subStringXML(backInf, "orderstatus"); ar.setOrderstatus(Integer.parseInt(orderStatu)); if ("1".equals(orderStatu)) { message.append("出票状态:出票成功\n"); } else if ("0".equals(orderStatu)) { message.append("出票状态:未出票\n"); } else if ("7".equals(orderStatu)) { message.append("出票状态:取消入库\n"); } else if ("9".equals(orderStatu)) { message.append("出票状态:其他状态\n"); } else { message.append("出票状态:其他状态\n"); } backInf = subStringXML(backInf, "tickets"); String[] ticket = backInf.split("</ticket>"); String passenger = ""; String tktno = ""; for (int i = 0; i < ticket.length; i++) { passenger = subStringXML(ticket[i], "passenger"); tktno = subStringXML(ticket[i], "tktno"); message.append("乘客名:" + passenger + "\n"); message.append("tktno:" + tktno + "\n"); } ar.setStatus(1); ar.setMessage(message.toString()); } else { message.append("查询失败:"); if (backInf.contains("<errorInfo>")) { message.append(subStringXML(backInf, "errorInfo")); } ar.setStatus(0); ar.setPayStatus(2); ar.setMessage(message.toString()); // System.out.println("失败:支付状态"+ar.getPayStatus()); } return ar; }