这个是在给国付宝服务器发送过去一个连接(带各种参数 你懂的。。),国付宝会自动返回一个XML树,把返回来的XML转换成Java类 GopayWithdraw
前提是我用了httpClient PostMethod发送给国付宝的方式:
public static PostMethod getPostMethod(GopayWithdraw gopay) { PostMethod pMethod = new PostMethod(gopay.getGateWay()); pMethod.addParameter("version",gopay.getVersion()); pMethod.addParameter("tranCode",gopay.getTranCode()); pMethod.addParameter("customerId",gopay.getCustomerId()); pMethod.addParameter("merOrderNum",gopay.getMerOrderNum()); pMethod.addParameter("tranAmt",gopay.getTranAmt()); pMethod.addParameter("recvBankAcctName",gopay.getRecvBankAcctName()); pMethod.addParameter("recvBankProvince",gopay.getRecvBankProvince()); pMethod.addParameter("recvBankCity",gopay.getRecvBankCity()); pMethod.addParameter("recvBankName",gopay.getRecvBankName()); pMethod.addParameter("recvBankBranchName",gopay.getRecvBankBranchName()); pMethod.addParameter("recvBankAcctNum",gopay.getRecvBankAcctNum()); pMethod.addParameter("corpPersonFlag",gopay.getCorpPersonFlag()); pMethod.addParameter("tranDateTime",gopay.getTranDateTime()); pMethod.addParameter("description",""); pMethod.addParameter("merchantEncode",gopay.getMerchantEncode()); pMethod.addParameter("merURL",gopay.getMerURL()); pMethod.addParameter("signValue",gopay.getSignValue()); return pMethod; } <pre name="code" class="java"> GopayWithdraw gopayWith = new GopayWithdraw();
PostMethod pMethod=getPostMethod(gopayWith ) int statusCode = GopayWithdrawHttpClient.executeMethod(pMethod); if (statusCode == HttpStatus.SC_OK) { GopayWithdraw gopayWith =getGopayWithdraw(parser,pMethod);//该方法就是把XML转化成java类 return gopayWith //这个gopayWith 就是把服务器返回来的XML树转化成的Java实体类 }
public static GopayWithdraw getGopayWithdraw(SAXParser parser,PostMethod pMethod) { GopayWithdraw gopayWith = new GopayWithdraw(); try { parser = SAXParserFactory.newInstance().newSAXParser(); Digester digester = new Digester(parser); digester.setValidating(false); digester.addObjectCreate("GopayAPIResp",GopayWithdraw.class); digester.addSetProperties("GopayAPIResp"); // digester.addCallMethod("GopayAPIResp/version","version",// 0); // digester.addCallMethod("GopayAPIResp/tranCode",// "tranCode",1); digester.addBeanPropertySetter("GopayAPIResp/version","version"); digester.addBeanPropertySetter("GopayAPIResp/tranCode","tranCode"); digester.addBeanPropertySetter("GopayAPIResp/customerId","customerId"); digester.addBeanPropertySetter("GopayAPIResp/merOrderNum","merOrderNum"); digester.addBeanPropertySetter("GopayAPIResp/merURL","merURL"); digester.addBeanPropertySetter("GopayAPIResp/tranAmt","tranAmt"); digester.addBeanPropertySetter("GopayAPIResp/recvBankAcctName","recvBankAcctName"); digester.addBeanPropertySetter("GopayAPIResp/recvBankProvince","recvBankProvince"); digester.addBeanPropertySetter("GopayAPIResp/recvBankCity","recvBankCity"); digester.addBeanPropertySetter("GopayAPIResp/recvBankName","recvBankName"); digester.addBeanPropertySetter("GopayAPIResp/recvBankBranchName","recvBankBranchName"); digester.addBeanPropertySetter("GopayAPIResp/recvBankAcctNum","recvBankAcctNum"); digester.addBeanPropertySetter("GopayAPIResp/corpPersonFlag","corpPersonFlag"); digester.addBeanPropertySetter("GopayAPIResp/tranDateTime","tranDateTime"); digester.addBeanPropertySetter("GopayAPIResp/description","description"); digester.addBeanPropertySetter("GopayAPIResp/respCode","respCode"); digester.addBeanPropertySetter("GopayAPIResp/msgExt","msgExt"); digester.addBeanPropertySetter("GopayAPIResp/orderId","orderId"); digester.addBeanPropertySetter("GopayAPIResp/feeAmt","feeAmt"); digester.addBeanPropertySetter("GopayAPIResp/totalAmount","totalAmount"); digester.addBeanPropertySetter("GopayAPIResp/SignValue","signValue"); digester.addBeanPropertySetter("GopayAPIResp/ErrorCode","errorCode"); digester.addBeanPropertySetter("GopayAPIResp/ErrorMsg","errorMsg"); try { gopayWith = (GopayWithdraw) digester .parse(new ByteArrayInputStream(pMethod .getResponseBodyAsString().getBytes())); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } return gopayWith; }