[java]
private List queryOrderInfoByCcb(String orderDate) {
List list = new ArrayList();
String baseUrl = "https://ibsbjstar.ccb.com.cn/app/ccbMain ";
String MERCHANTID = this.getBankCono();
String BRANCHID = this.getBankBranchid();
String POSID = this.getBankPosId();
String ORDERDATE = orderDate;
String BEGORDERTIME = "00:00:00";
String ENDORDERTIME = "23:59:59";
String BEGORDERID = this.getBankPwd();
String ENDORDERID = "9999999999";
String QUPWD = "******";
String TXCODE = "410405";
String SEL_TYPE = "3";
String OPERATOR = "001";
String bankURL = "";
String result = "";
String param = "MERCHANTID=" + MERCHANTID + "&BRANCHID=" + BRANCHID + "&POSID=" + POSID + "&ORDERDATE=" + ORDERDATE
+ "&BEGORDERTIME=" + BEGORDERTIME + "&ENDORDERTIME=" + ENDORDERTIME + "&BEGORDERID=" + BEGORDERID
+ "&ENDORDERID=" + ENDORDERID + "&QUPWD=" + QUPWD + "&TXCODE=" + TXCODE + "&SEL_TYPE=" + SEL_TYPE
+ "&OPERATOR=" + OPERATOR + "&bankURL=" + bankURL + "&result=" + result + "&MAC=";
String tmp = "MERCHANTID=" + MERCHANTID + "&BRANCHID=" + BRANCHID + "&POSID=" + POSID + "&ORDERDATE=" + ORDERDATE
+ "&BEGORDERTIME=" + BEGORDERTIME + "&ENDORDERTIME=" + ENDORDERTIME + "&BEGORDERID=" + BEGORDERID
+ "&ENDORDERID=" + ENDORDERID + "&QUPWD=&TXCODE=" + TXCODE + "&SEL_TYPE=" + SEL_TYPE + "&OPERATOR=" + OPERATOR;
String str
MD5 = ByteUtil.byteToChar(MD5Ccb.encode(tmp.getBytes()));
String xml = null;
try {
String url = baseUrl + param + strMD5;
log.debug("发送建行查询http请求:"+url);
xml = HttpClientUtil.getHtml(url);
} catch(IOException e) {
String msg = "建行对账文件获取HTTP访问失败,异常信息:" + e.getMessage();
log.error(msg);
throw new RuntimeException(msg);
}
if(xml.contains("您所在查询的IP地址有误")){
String msg = "查询日期:"+orderDate+"-建行对账
系统提示信息:您所在查询的IP地址被限制访问,请联系建行将服务器地址加入到访问列表中后再进行对账操作。";
log.error(msg);
throw new RuntimeException(msg);
}
//根据查询条件未找到记录或记录太多
if(xml.contains("根据查询条件未找到记录或记录太多")){
String msg = "查询日期:"+orderDate+"-建行对账系统提示信息:根据查询条件未找到记录或记录太多,请修改查询日期。";
log.error(msg);
return list;
//throw new RuntimeException(msg);
}
xml = xml.trim();
log.debug("建行对账文件HTTP获取成功:xml长度:" + xml.length());
StringReader stringReader = new StringReader(xml);
Document doc = null;
try {
doc = new SAXReader().read(stringReader);
} catch(DocumentException e) {
String msg = "建行对账文件XML解析失败,异常信息:" + e.getMessage();
log.error(msg);
log.error("xml内容:"+xml);
throw new RuntimeException(msg);
}
Element element = doc.getRootElement();
List orders = element.elements();
for(Element el : orders) {
List orderContexts = el.elements();
double money = 0;//金额
String orderNum = null;//订单号
String orderStatus = null;//订单状态
for(Element orderEl : orderContexts) {
//log.debug(orderEl.getName() + " - " + orderEl.getText());
if("ORDERID".equals(orderEl.getName())) {
orderNum = orderEl.getText(