apzl_leasing/src_cmb/com/tenwa/sdk/utils/HttpRequest.java
2019-12-23 17:26:53 +08:00

519 lines
18 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.tenwa.sdk.utils;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import com.amarsoft.awe.Configure;
import com.tenwa.sdk.VO.SDKCheckCallBackVO;
import com.tenwa.sdk.VO.SDKCheckCallDetail;
import com.tenwa.sdk.VO.SDKCheckCallInfoVO;
import com.tenwa.sdk.VO.SDKCheckPayDateBackVO;
import com.tenwa.sdk.VO.SDKCheckPayDateDetail;
import com.tenwa.sdk.VO.SDKCheckPayDateInfoVO;
import com.tenwa.sdk.VO.SDKPayCallBackVO;
import com.tenwa.sdk.VO.SDKPayCallDetail;
import com.tenwa.sdk.VO.SDKPayCallInfoVO;
public class HttpRequest {
private String ipAddr ;
private int timeout ;
public String getIpAddr() {
return ipAddr;
}
public void setIpAddr(String ipAddr) {
this.ipAddr = ipAddr;
}
public int getTimeout() {
return timeout;
}
public void setTimeout(int timeout) {
this.timeout = timeout;
}
public HttpRequest(String ipAddr) {
this.ipAddr = ipAddr;
}
public HttpRequest() throws Exception {
Configure config = Configure.getInstance();
this.ipAddr = config.getConfigure("SDK_CMB_URL") ;
this.timeout = Integer.parseInt(config.getConfigure("SDK_CMB_TIME_OUT") );
}
public SDKPayCallBackVO sendPayRequest(String data) {
SDKPayCallBackVO callBack = new SDKPayCallBackVO();
SDKPayCallInfoVO info = new SDKPayCallInfoVO();
String result = "";
try {
URL url = new URL(this.ipAddr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(this.timeout);
connection.setReadTimeout(this.timeout);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "application/xml");
connection.setRequestProperty("Content-Type", "application/xml");
connection.connect();
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "GBK");
out.append(data);
out.flush();
out.close();
int code = connection.getResponseCode();
InputStream is = null;
if (code == 200) {
is = connection.getInputStream();
} else {
is = connection.getErrorStream();
}
int length = (int) connection.getContentLength();
if (length != -1) {
byte[] datas = new byte[length];
byte[] temp = new byte[512];
int readLen = 0;
int destPos = 0;
while ((readLen = is.read(temp)) > 0) {
System.arraycopy(temp, 0, datas, destPos, readLen);
destPos += readLen;
}
result = new String(datas, "GBK");
}
is.close();
// System.out.println("----");
// System.out.println(result);
// System.out.println("----");
} catch (MalformedURLException e) {
info.setSTATUS(-1);
info.setERRMSG("URLЭ<EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
} catch (UnsupportedEncodingException e) {
info.setSTATUS(-1);
info.setERRMSG("<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
} catch (ProtocolException e) {
info.setSTATUS(-1);
info.setERRMSG("Э<EFBFBD><EFBFBD><EFBFBD>");
} catch (IOException e) {
info.setSTATUS(-1);
info.setERRMSG("<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>ʱ");
}
if (info.getSTATUS() != -1) {
info.setSTATUS(1);
info.setXML(result);
}
callBack.setInfo(info);
return toPayObj(callBack);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private SDKPayCallBackVO toPayObj(SDKPayCallBackVO vo) {
if (vo.getInfo().getSTATUS() != -1) {
SDKPayCallInfoVO info = vo.getInfo();
String result = vo.getInfo().getXML();
if (result != null && result.length() > 0) {
XmlPacket pktRsp = XmlPacket.valueOf(result);
if (pktRsp != null) {
String sRetCod = pktRsp.getRETCOD();
String sFunnam = pktRsp.getFUNNAM();
String sDattpy = pktRsp.getDATTYP();
String sErrmsg = pktRsp.getERRMSG();
info.setRETCOD(sRetCod);
info.setFUNNAM(sFunnam);
info.setDATTYP(sDattpy);
Vector<Map> vec = null ;
if (sRetCod.equals("0")) {
vec = pktRsp.getProperty("NTQPAYRQZ");
if(vec!=null && vec.size()>0) {
List<SDKPayCallDetail> details = new ArrayList<SDKPayCallDetail>();
for (Map propPayResult : vec) {
SDKPayCallDetail detail_one = new SDKPayCallDetail();
String REQSTS = (String) propPayResult.get("REQSTS");
String RTNFLG = (String) propPayResult.get("RTNFLG");
String SQRNBR = (String) propPayResult.get("SQRNBR");
String YURREF = (String) propPayResult.get("YURREF");
String REQNBR = (String) propPayResult.get("REQNBR");
String OPRSQN = (String) propPayResult.get("OPRSQN");
String OPRALS = (String) propPayResult.get("OPRALS");
String ERRCOD = (String) propPayResult.get("ERRCOD");
String ERRTXT = (String) propPayResult.get("ERRTXT");
detail_one.setERRCOD(ERRCOD);
detail_one.setERRTXT(ERRTXT);
detail_one.setOPRALS(OPRALS);
detail_one.setOPRSQN(OPRSQN);
detail_one.setREQNBR(REQNBR);
detail_one.setREQSTS(REQSTS);
detail_one.setRTNFLG(RTNFLG);
detail_one.setSQRNBR(SQRNBR);
detail_one.setYURREF(YURREF);
if (REQSTS.equals("FIN") && RTNFLG.equals("F")) {
detail_one.setERRTXT("֧<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>" + ERRTXT);
} else {
detail_one.setERRTXT("֧<EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>" + REQSTS + "<EFBFBD><EFBFBD>");
}
details.add(detail_one);
}
vo.setDetails(details);
}
} else if (sRetCod.equals("-9")) {
info.setERRMSG("֧<EFBFBD><EFBFBD>δ֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>" + sErrmsg);
} else {
info.setERRMSG("֧<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>" + sErrmsg);
}
} else {
info.setERRMSG("<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
}
}
vo.setInfo(info);
}
return vo;
}
public SDKCheckCallBackVO sendCheckRequest(String data) {
SDKCheckCallBackVO callBack = new SDKCheckCallBackVO();
SDKCheckCallInfoVO info = new SDKCheckCallInfoVO();
String result = "";
try {
URL url = new URL(this.ipAddr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(this.timeout);
connection.setReadTimeout(this.timeout);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "application/xml");
connection.setRequestProperty("Content-Type", "application/xml");
connection.connect();
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "GBK");
out.append(data);
out.flush();
out.close();
int code = connection.getResponseCode();
InputStream is = null;
if (code == 200) {
is = connection.getInputStream();
} else {
is = connection.getErrorStream();
}
int length = (int) connection.getContentLength();
if (length != -1) {
byte[] datas = new byte[length];
byte[] temp = new byte[512];
int readLen = 0;
int destPos = 0;
while ((readLen = is.read(temp)) > 0) {
System.arraycopy(temp, 0, datas, destPos, readLen);
destPos += readLen;
}
result = new String(datas, "GBK");
}
is.close();
System.out.println("----");
System.out.println(result);
System.out.println("----");
} catch (MalformedURLException e) {
info.setSTATUS(-1);
info.setERRMSG("URLЭ<EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
} catch (UnsupportedEncodingException e) {
info.setSTATUS(-1);
info.setERRMSG("<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
} catch (ProtocolException e) {
info.setSTATUS(-1);
info.setERRMSG("Э<EFBFBD><EFBFBD><EFBFBD>");
} catch (IOException e) {
info.setSTATUS(-1);
info.setERRMSG("<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>ʱ");
}
if (info.getSTATUS() != -1) {
info.setSTATUS(1);
info.setXML(result);
}
callBack.setInfo(info);
return toCheckObj(callBack);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private SDKCheckCallBackVO toCheckObj(SDKCheckCallBackVO vo) {
if (vo.getInfo().getSTATUS() != -1) {
SDKCheckCallInfoVO info = vo.getInfo();
String result = vo.getInfo().getXML();
if (result != null && result.length() > 0) {
XmlPacket pktRsp = XmlPacket.valueOf(result);
if (pktRsp != null) {
String sRetCod = pktRsp.getRETCOD();
String sFunnam = pktRsp.getFUNNAM();
String sDattpy = pktRsp.getDATTYP();
String sErrmsg = pktRsp.getERRMSG();
info.setRETCOD(sRetCod);
info.setFUNNAM(sFunnam);
info.setDATTYP(sDattpy);
Vector<Map> vec = null ;
if (sRetCod.equals("0")) {
vec = pktRsp.getProperty("NTQPAYQYZ");
if(vec!=null && vec.size()>0) {
List<SDKCheckCallDetail> details = new ArrayList<SDKCheckCallDetail>();
for (Map propPayResult : vec) {
SDKCheckCallDetail detail_one = new SDKCheckCallDetail();
String BUSCOD = (String) propPayResult.get("BUSCOD");
String BUSMOD = (String) propPayResult.get("BUSMOD");
String DBTBBK = (String) propPayResult.get("DBTBBK");
String DBTACC = (String) propPayResult.get("DBTACC");
String DBTNAM = (String) propPayResult.get("DBTNAM");
String DBTBNK = (String) propPayResult.get("DBTBNK");
String CRTACC = (String) propPayResult.get("CRTACC");
String CRTNAM = (String) propPayResult.get("CRTNAM");
String CRTBNK = (String) propPayResult.get("CRTBNK");
String CCYNBR = (String) propPayResult.get("CCYNBR");
String TRSAMT = (String) propPayResult.get("TRSAMT");
String YURREF = (String) propPayResult.get("YURREF");
String REQNBR = (String) propPayResult.get("REQNBR");
String REQSTS = (String) propPayResult.get("REQSTS");
String RTNFLG = (String) propPayResult.get("RTNFLG");
String RTNNAR = (String) propPayResult.get("RTNNAR");
detail_one.setBUSCOD(BUSCOD);
detail_one.setBUSMOD(BUSMOD);
detail_one.setDBTBBK(DBTBBK);
detail_one.setDBTACC(DBTACC);
detail_one.setDBTNAM(DBTNAM);
detail_one.setDBTBNK(DBTBNK);
detail_one.setCRTACC(CRTACC);
detail_one.setCRTNAM(CRTNAM);
detail_one.setCRTBNK(CRTBNK);
detail_one.setCCYNBR(CCYNBR);
detail_one.setTRSAMT(TRSAMT);
detail_one.setYURREF(YURREF);
detail_one.setREQNBR(REQNBR);
detail_one.setYURREF(YURREF);
detail_one.setREQSTS(REQSTS);
detail_one.setRTNFLG(RTNFLG);
detail_one.setRTNNAR(RTNNAR);
details.add(detail_one);
}
vo.setDetails(details);
}
} else if (sRetCod.equals("-9")) {
info.setERRMSG("֧<EFBFBD><EFBFBD>δ֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>" + sErrmsg);
} else {
info.setERRMSG("֧<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>" + sErrmsg);
}
} else {
info.setERRMSG("<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
}
}
vo.setInfo(info);
}
return vo;
}
public SDKCheckPayDateBackVO sendPayDateRequest(String data) {
SDKCheckPayDateBackVO callBack = new SDKCheckPayDateBackVO();
SDKCheckPayDateInfoVO info = new SDKCheckPayDateInfoVO();
String result = "";
try {
URL url = new URL(this.ipAddr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(this.timeout);
connection.setReadTimeout(this.timeout);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "application/xml");
connection.setRequestProperty("Content-Type", "application/xml");
connection.connect();
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "GBK");
out.append(data);
out.flush();
out.close();
int code = connection.getResponseCode();
InputStream is = null;
if (code == 200) {
is = connection.getInputStream();
} else {
is = connection.getErrorStream();
}
int length = (int) connection.getContentLength();
if (length != -1) {
byte[] datas = new byte[length];
byte[] temp = new byte[512];
int readLen = 0;
int destPos = 0;
while ((readLen = is.read(temp)) > 0) {
System.arraycopy(temp, 0, datas, destPos, readLen);
destPos += readLen;
}
result = new String(datas, "GBK");
}
is.close();
System.out.println("----");
System.out.println(result);
System.out.println("----");
} catch (MalformedURLException e) {
info.setSTATUS(-1);
info.setERRMSG("URLЭ<EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
} catch (UnsupportedEncodingException e) {
info.setSTATUS(-1);
info.setERRMSG("<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
} catch (ProtocolException e) {
info.setSTATUS(-1);
info.setERRMSG("Э<EFBFBD><EFBFBD><EFBFBD>");
} catch (IOException e) {
info.setSTATUS(-1);
info.setERRMSG("<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>ʱ");
}
if (info.getSTATUS() != -1) {
info.setSTATUS(1);
info.setXML(result);
}
callBack.setInfo(info);
return toCheckPayDate(callBack);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private SDKCheckPayDateBackVO toCheckPayDate(SDKCheckPayDateBackVO vo) {
if (vo.getInfo().getSTATUS() != -1) {
SDKCheckPayDateInfoVO info = vo.getInfo();
String result = vo.getInfo().getXML();
if (result != null && result.length() > 0) {
XmlPacket pktRsp = XmlPacket.valueOf(result);
if (pktRsp != null) {
String sRetCod = pktRsp.getRETCOD();
String sFunnam = pktRsp.getFUNNAM();
String sDattpy = pktRsp.getDATTYP();
String sErrmsg = pktRsp.getERRMSG();
info.setRETCOD(sRetCod);
info.setFUNNAM(sFunnam);
info.setDATTYP(sDattpy);
Vector<Map> vec = null ;
if (sRetCod.equals("0")) {
vec = pktRsp.getProperty("NTQTSINFZ");
if(vec!=null && vec.size()>0) {
List<SDKCheckPayDateDetail> details = new ArrayList<SDKCheckPayDateDetail>();
for (Map propPayResult : vec) {
SDKCheckPayDateDetail detail_one = new SDKCheckPayDateDetail();
String ETYDAT = (String) propPayResult.get("ETYDAT");
String ETYTIM = (String) propPayResult.get("ETYTIM");
String VLTDAT = (String) propPayResult.get("VLTDAT");
String TRSCOD = (String) propPayResult.get("TRSCOD");
String NARYUR = (String) propPayResult.get("NARYUR");
String TRSAMTD = (String) propPayResult.get("TRSAMTD");
String TRSAMTC = (String) propPayResult.get("TRSAMTC");
String AMTCDR = (String) propPayResult.get("AMTCDR");
String TRSBLV = (String) propPayResult.get("TRSBLV");
String REFNBR = (String) propPayResult.get("REFNBR");
String REQNBR = (String) propPayResult.get("REQNBR");
String BUSNAM = (String) propPayResult.get("BUSNAM");
String NUSAGE = (String) propPayResult.get("NUSAGE");
String YURREF = (String) propPayResult.get("YURREF");
String BUSNAR = (String) propPayResult.get("BUSNAR");
String OTRNAR = (String) propPayResult.get("OTRNAR");
String C_RPYBBK = (String) propPayResult.get("C_RPYBBK");
String RPYNAM = (String) propPayResult.get("RPYNAM");
String RPYACC = (String) propPayResult.get("RPYACC");
String RPYBBN = (String) propPayResult.get("RPYBBN");
String RPYBNK = (String) propPayResult.get("RPYBNK");
String RPYADR = (String) propPayResult.get("RPYADR");
String C_GSBBBK = (String) propPayResult.get("C_GSBBBK");
String GSBACC = (String) propPayResult.get("GSBACC");
String GSBNAM = (String) propPayResult.get("GSBNAM");
String INFFLG = (String) propPayResult.get("INFFLG");
String ATHFLG = (String) propPayResult.get("ATHFLG");
String CHKNBR = (String) propPayResult.get("CHKNBR");
String RSVFLG = (String) propPayResult.get("RSVFLG");
String NAREXT = (String) propPayResult.get("NAREXT");
String TRSANL = (String) propPayResult.get("TRSANL");
String REFSUB = (String) propPayResult.get("REFSUB");
String FRMCOD = (String) propPayResult.get("FRMCOD");
detail_one.setETYDAT(ETYDAT);
detail_one.setETYTIM(ETYTIM);
detail_one.setVLTDAT(VLTDAT);
detail_one.setTRSCOD(TRSCOD);
detail_one.setNARYUR(NARYUR);
detail_one.setTRSAMTD(TRSAMTD);
detail_one.setTRSAMTC(TRSAMTC);
detail_one.setAMTCDR(AMTCDR);
detail_one.setTRSBLV(TRSBLV);
detail_one.setREFNBR(REFNBR);
detail_one.setREQNBR(REQNBR);
detail_one.setBUSNAM(BUSNAM);
detail_one.setNUSAGE(NUSAGE);
detail_one.setYURREF(YURREF);
detail_one.setBUSNAR(BUSNAR);
detail_one.setOTRNAR(OTRNAR);
detail_one.setC_RPYBBK(C_RPYBBK);
detail_one.setRPYNAM(RPYNAM);
detail_one.setRPYACC(RPYACC);
detail_one.setRPYBBN(RPYBBN);
detail_one.setRPYBNK(RPYBNK);
detail_one.setRPYADR(RPYADR);
detail_one.setGSBACC(GSBACC);
detail_one.setGSBNAM(GSBNAM);
detail_one.setINFFLG(INFFLG);
detail_one.setATHFLG(ATHFLG);
detail_one.setCHKNBR(CHKNBR);
detail_one.setNAREXT(NAREXT);
detail_one.setTRSANL(TRSANL);
detail_one.setREFSUB(REFSUB);
detail_one.setFRMCOD(FRMCOD);
details.add(detail_one);
}
vo.setDetails(details);
}
} else if (sRetCod.equals("-9")) {
info.setERRMSG("֧<EFBFBD><EFBFBD>δ֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>" + sErrmsg);
} else {
info.setERRMSG("֧<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>" + sErrmsg);
}
} else {
info.setERRMSG("<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
}
}
vo.setInfo(info);
}
return vo;
}
}