List of usage examples for org.apache.commons.httpclient.methods PostMethod setRequestEntity
public void setRequestEntity(RequestEntity paramRequestEntity)
From source file:com.salesmanager.core.module.impl.integration.payment.PsigateTransactionImpl.java
public GatewayTransactionVO refundTransaction(IntegrationKeys keys, IntegrationProperties props, MerchantStore store, Order order, GatewayTransactionVO trx, Customer customer, CoreModuleService cis, BigDecimal amount) throws TransactionException { // Get refundable transaction PostMethod httppost = null; try {/*from w w w .j a va 2s . c om*/ String host = cis.getCoreModuleServiceProdDomain(); String protocol = cis.getCoreModuleServiceProdProtocol(); String port = cis.getCoreModuleServiceProdPort(); String url = cis.getCoreModuleServiceProdEnv(); if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { host = cis.getCoreModuleServiceDevDomain(); protocol = cis.getCoreModuleServiceDevProtocol(); port = cis.getCoreModuleServiceDevPort(); url = cis.getCoreModuleServiceDevEnv(); } // String total = CurrencyUtil.getAmount(order.getTotal(), // order.getCurrency()); String total = CurrencyUtil.getAmount(amount, order.getCurrency()); HttpClient client = new HttpClient(); String xml = "<?xml version=\"1.0\"?><AddressValidationRequest xml:lang=\"en-US\"><Request><TransactionReference><CustomerContext>SalesManager Data</CustomerContext><XpciVersion>1.0001</XpciVersion></TransactionReference><RequestAction>AV</RequestAction></Request>"; StringBuffer xmldatabuffer = new StringBuffer(); xmldatabuffer.append("<Order>"); xmldatabuffer.append("<StoreID>").append(keys.getUserid()).append("</StoreID>"); xmldatabuffer.append("<Passphrase>").append(keys.getTransactionKey()).append("</Passphrase>"); xmldatabuffer.append("<PaymentType>").append("CC").append("</PaymentType>"); // 0=Sale, 1=PreAuth, 2=PostAuth, 3=Credit, 4=Forced PostAuth xmldatabuffer.append("<CardAction>").append("3").append("</CardAction>"); // For postauth only xmldatabuffer.append("<OrderID>").append(trx.getInternalGatewayOrderId()).append("</OrderID>"); xmldatabuffer.append("<SubTotal>").append(total).append("</SubTotal>"); xmldatabuffer.append("</Order>"); /** * xmldatabuffer.append("<CardNumber>").append("").append( * "</CardNumber>"); * xmldatabuffer.append("<CardExpMonth>").append("" * ).append("</CardExpMonth>"); * xmldatabuffer.append("<CardExpYear>") * .append("").append("</CardExpYear>"); //CVV * xmldatabuffer.append("<CustomerIP>" * ).append("").append("</CustomerIP>"); * xmldatabuffer.append("<CardIDNumber>" * ).append("").append("</CardIDNumber>"); * xmldatabuffer.append("</Order>"); **/ log.debug("Psigate request " + xmldatabuffer.toString()); httppost = new PostMethod(protocol + "://" + host + ":" + port + url); RequestEntity entity = new StringRequestEntity(xmldatabuffer.toString(), "text/plain", "UTF-8"); httppost.setRequestEntity(entity); PsigateParsedElements pe = null; String stringresult = null; int result = client.executeMethod(httppost); if (result != 200) { log.error("Communication Error with psigate " + protocol + "://" + host + ":" + port + url); // throw new Exception("Psigate Gateway error "); TransactionException te = new TransactionException( "Communication Error with psigate " + protocol + "://" + host + ":" + port + url); te.setErrorcode("01"); throw te; } stringresult = httppost.getResponseBodyAsString(); log.debug("Psigate response " + stringresult); pe = new PsigateParsedElements(); Digester digester = new Digester(); digester.push(pe); digester.addCallMethod("Result/OrderID", "setOrderID", 0); digester.addCallMethod("Result/Approved", "setApproved", 0); digester.addCallMethod("Result/ErrMsg", "setErrMsg", 0); digester.addCallMethod("Result/ReturnCode", "setReturnCode", 0); digester.addCallMethod("Result/TransRefNumber", "setTransRefNumber", 0); digester.addCallMethod("Result/CardType", "setCardType", 0); Reader reader = new StringReader(stringresult); digester.parse(reader); return this.parseResponse(PaymentConstants.REFUND, xmldatabuffer.toString(), stringresult, pe, order, amount); } catch (Exception e) { if (e instanceof TransactionException) { throw (TransactionException) e; } log.error(e); // throw new // Exception("Exception occured while calling Psigate gateway " + // e); TransactionException te = new TransactionException("Communication Error with psigate ", e); te.setErrorcode("01"); throw te; } finally { if (httppost != null) httppost.releaseConnection(); } }
From source file:greenfoot.export.mygame.MyGameClient.java
public final MyGameClient submit(String hostAddress, String uid, String password, String jarFileName, File sourceFile, File screenshotFile, int width, int height, ScenarioInfo info) throws UnknownHostException, IOException { String gameName = info.getTitle(); String shortDescription = info.getShortDescription(); String longDescription = info.getLongDescription(); String updateDescription = info.getUpdateDescription(); String gameUrl = info.getUrl(); HttpClient httpClient = getHttpClient(); httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(20 * 1000); // 20s timeout // Authenticate user and initiate session PostMethod postMethod = new PostMethod(hostAddress + "account/authenticate"); postMethod.addParameter("user[username]", uid); postMethod.addParameter("user[password]", password); int response = httpClient.executeMethod(postMethod); if (response == 407 && listener != null) { // proxy auth required String[] authDetails = listener.needProxyAuth(); if (authDetails != null) { String proxyHost = httpClient.getHostConfiguration().getProxyHost(); int proxyPort = httpClient.getHostConfiguration().getProxyPort(); AuthScope authScope = new AuthScope(proxyHost, proxyPort); Credentials proxyCreds = new UsernamePasswordCredentials(authDetails[0], authDetails[1]); httpClient.getState().setProxyCredentials(authScope, proxyCreds); // Now retry: response = httpClient.executeMethod(postMethod); }/*from w w w .j av a2 s. c o m*/ } if (response > 400) { error(Config.getString("export.publish.errorResponse") + " - " + response); return this; } // Check authentication result if (!handleResponse(postMethod)) { return this; } // Send the scenario and associated info List<String> tagsList = info.getTags(); boolean hasSource = sourceFile != null; //determining the number of parts to send through //use a temporary map holder Map<String, String> partsMap = new HashMap<String, String>(); if (info.isUpdate()) { partsMap.put("scenario[update_description]", updateDescription); } else { partsMap.put("scenario[long_description]", longDescription); partsMap.put("scenario[short_description]", shortDescription); } int size = partsMap.size(); if (screenshotFile != null) { size = size + 1; } //base number of parts is 6 int counter = 6; Part[] parts = new Part[counter + size + tagsList.size() + (hasSource ? 1 : 0)]; parts[0] = new StringPart("scenario[title]", gameName, "UTF-8"); parts[1] = new StringPart("scenario[main_class]", "greenfoot.export.GreenfootScenarioViewer", "UTF-8"); parts[2] = new StringPart("scenario[width]", "" + width, "UTF-8"); parts[3] = new StringPart("scenario[height]", "" + height, "UTF-8"); parts[4] = new StringPart("scenario[url]", gameUrl, "UTF-8"); parts[5] = new ProgressTrackingPart("scenario[uploaded_data]", new File(jarFileName), this); Iterator<String> mapIterator = partsMap.keySet().iterator(); String key = ""; String obj = ""; while (mapIterator.hasNext()) { key = mapIterator.next().toString(); obj = partsMap.get(key).toString(); parts[counter] = new StringPart(key, obj, "UTF-8"); counter = counter + 1; } if (hasSource) { parts[counter] = new ProgressTrackingPart("scenario[source_data]", sourceFile, this); counter = counter + 1; } if (screenshotFile != null) { parts[counter] = new ProgressTrackingPart("scenario[screenshot_data]", screenshotFile, this); counter = counter + 1; } int tagNum = 0; for (Iterator<String> i = tagsList.iterator(); i.hasNext();) { parts[counter] = new StringPart("scenario[tag" + tagNum++ + "]", i.next()); counter = counter + 1; } postMethod = new PostMethod(hostAddress + "upload-scenario"); postMethod.setRequestEntity(new MultipartRequestEntity(parts, postMethod.getParams())); response = httpClient.executeMethod(postMethod); if (response > 400) { error(Config.getString("export.publish.errorResponse") + " - " + response); return this; } if (!handleResponse(postMethod)) { return this; } // Done. listener.uploadComplete(new PublishEvent(PublishEvent.STATUS)); return this; }
From source file:com.salesmanager.core.module.impl.integration.payment.PsigateTransactionImpl.java
private GatewayTransactionVO makeTransaction(String type, IntegrationKeys ik, IntegrationProperties props, MerchantStore store, Order order, Customer customer, CoreModuleService cis) throws TransactionException { PostMethod httppost = null; try {// w w w . j av a 2 s.c o m // determine production - test environment String host = cis.getCoreModuleServiceProdDomain(); String protocol = cis.getCoreModuleServiceProdProtocol(); String port = cis.getCoreModuleServiceProdPort(); String url = cis.getCoreModuleServiceProdEnv(); if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { host = cis.getCoreModuleServiceDevDomain(); protocol = cis.getCoreModuleServiceDevProtocol(); port = cis.getCoreModuleServiceDevPort(); url = cis.getCoreModuleServiceDevEnv(); } HttpClient client = new HttpClient(); String xml = "<?xml version=\"1.0\"?><AddressValidationRequest xml:lang=\"en-US\"><Request><TransactionReference><CustomerContext>SalesManager Data</CustomerContext><XpciVersion>1.0001</XpciVersion></TransactionReference><RequestAction>AV</RequestAction></Request>"; StringBuffer xmldatabuffer = new StringBuffer(); xmldatabuffer.append("<Order>"); xmldatabuffer.append("<StoreID>").append(ik.getUserid()).append("</StoreID>"); xmldatabuffer.append("<Passphrase>").append(ik.getTransactionKey()).append("</Passphrase>"); xmldatabuffer.append("<PaymentType>").append("CC").append("</PaymentType>"); xmldatabuffer.append("<Subtotal>").append(order.getTotal().toString()).append("</Subtotal>"); // 0=Sale, 1=PreAuth, 2=PostAuth, 3=Credit, 4=Forced PostAuth xmldatabuffer.append("<CardAction>").append(type).append("</CardAction>"); xmldatabuffer.append("<CardNumber>").append(order.getCcNumber()).append("</CardNumber>"); xmldatabuffer.append("<CardExpMonth>").append(order.getCcExpires().substring(0, 2)) .append("</CardExpMonth>"); xmldatabuffer.append("<CardExpYear>") .append(order.getCcExpires().substring(2, order.getCcExpires().length())) .append("</CardExpYear>"); // CVV if (props.getProperties3().equals("2")) { xmldatabuffer.append("<CustomerIP>").append(order.getIpAddress()).append("</CustomerIP>"); xmldatabuffer.append("<CardIDNumber>").append("").append("</CardIDNumber>"); } xmldatabuffer.append("</Order>"); /** log data **/ StringBuffer xmllogbuffer = new StringBuffer(); xmllogbuffer.append("<Order>"); xmllogbuffer.append("<StoreID>").append(ik.getUserid()).append("</StoreID>"); xmllogbuffer.append("<Passphrase>").append(ik.getTransactionKey()).append("</Passphrase>"); xmllogbuffer.append("<PaymentType>").append("CC").append("</PaymentType>"); xmllogbuffer.append("<Subtotal>").append(order.getTotal().toString()).append("</Subtotal>"); xmllogbuffer.append("<CardAction>").append(type).append("</CardAction>"); xmllogbuffer.append("<CardNumber>").append(CreditCardUtil.maskCardNumber(order.getCcNumber())) .append("</CardNumber>"); xmllogbuffer.append("<CardExpMonth>").append(order.getCcExpires().substring(0, 2)) .append("</CardExpMonth>"); xmllogbuffer.append("<CardExpYear>") .append(order.getCcExpires().substring(2, order.getCcExpires().length())) .append("</CardExpYear>"); if (props.getProperties3().equals("2")) { xmllogbuffer.append("<CustomerIP>").append(order.getIpAddress()).append("</CustomerIP>"); xmllogbuffer.append("<CardIDNumber>").append("").append("</CardIDNumber>"); } xmllogbuffer.append("</Order>"); log.debug("Psigate request " + xmllogbuffer.toString()); /** log **/ httppost = new PostMethod(protocol + "://" + host + ":" + port + url); RequestEntity entity = new StringRequestEntity(xmldatabuffer.toString(), "text/plain", "UTF-8"); httppost.setRequestEntity(entity); PsigateParsedElements pe = null; String stringresult = null; int result = client.executeMethod(httppost); if (result != 200) { log.error("Communication Error with psigate " + protocol + "://" + host + ":" + port + url); throw new Exception( "Communication Error with psigate " + protocol + "://" + host + ":" + port + url); } stringresult = httppost.getResponseBodyAsString(); log.debug("Psigate response " + stringresult); pe = new PsigateParsedElements(); Digester digester = new Digester(); digester.push(pe); digester.addCallMethod("Result/OrderID", "setOrderID", 0); digester.addCallMethod("Result/Approved", "setApproved", 0); digester.addCallMethod("Result/ErrMsg", "setErrMsg", 0); digester.addCallMethod("Result/ReturnCode", "setReturnCode", 0); digester.addCallMethod("Result/TransRefNumber", "setTransRefNumber", 0); digester.addCallMethod("Result/CardType", "setCardType", 0); Reader reader = new StringReader(stringresult); digester.parse(reader); if (type.equals("0")) { return this.parseResponse(PaymentConstants.CAPTURE, xmldatabuffer.toString(), stringresult, pe, order, order.getTotal()); } else { return this.parseResponse(PaymentConstants.PREAUTH, xmldatabuffer.toString(), stringresult, pe, order, order.getTotal()); } } catch (Exception e) { if (e instanceof TransactionException) { throw (TransactionException) e; } log.error(e); TransactionException te = new TransactionException("Psigate Gateway error ", e); te.setErrorcode("01"); throw te; } finally { if (httppost != null) httppost.releaseConnection(); } }
From source file:edu.harvard.iq.dvn.core.web.servlet.FileDownloadServlet.java
private String dvnRemoteAuth(String remoteHost) { // if successful, this method will return the JSESSION string // for the authenticated session on the remote DVN. String remoteJsessionid = null; String remoteDvnUser = null;/* www .ja v a2 s. co m*/ String remoteDvnPw = null; GetMethod loginGetMethod = null; PostMethod loginPostMethod = null; RemoteAccessAuth remoteAuth = studyService.lookupRemoteAuthByHost(remoteHost); if (remoteAuth == null) { return null; } remoteDvnUser = remoteAuth.getAuthCred1(); remoteDvnPw = remoteAuth.getAuthCred2(); if (remoteDvnUser == null || remoteDvnPw == null) { return null; } int status = 0; try { String remoteAuthUrl = "http://" + remoteHost + "/dvn/faces/login/LoginPage.xhtml"; loginGetMethod = new GetMethod(remoteAuthUrl); loginGetMethod.setFollowRedirects(false); status = getClient().executeMethod(loginGetMethod); InputStream in = loginGetMethod.getResponseBodyAsStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(in)); String line = null; String viewstate = null; String regexpJsession = "jsessionid=([^\"?&]*)"; String regexpViewState = "ViewState\" value=\"([^\"]*)\""; Pattern patternJsession = Pattern.compile(regexpJsession); Pattern patternViewState = Pattern.compile(regexpViewState); Matcher matcher = null; while ((line = rd.readLine()) != null) { matcher = patternJsession.matcher(line); if (matcher.find()) { remoteJsessionid = matcher.group(1); } matcher = patternViewState.matcher(line); if (matcher.find()) { viewstate = matcher.group(1); } } rd.close(); loginGetMethod.releaseConnection(); if (remoteJsessionid != null) { // We have found Jsession; // now we can log in, // has to be a POST method: loginPostMethod = new PostMethod(remoteAuthUrl + ";jsessionid=" + remoteJsessionid); loginPostMethod.setFollowRedirects(false); Part[] parts = { new StringPart("vanillaLoginForm:vdcId", ""), new StringPart("vanillaLoginForm:username", remoteDvnUser), new StringPart("vanillaLoginForm:password", remoteDvnPw), new StringPart("vanillaLoginForm_hidden", "vanillaLoginForm_hidden"), new StringPart("vanillaLoginForm:button1", "Log in"), new StringPart("javax.faces.ViewState", viewstate) }; loginPostMethod.setRequestEntity(new MultipartRequestEntity(parts, loginPostMethod.getParams())); loginPostMethod.addRequestHeader("Cookie", "JSESSIONID=" + remoteJsessionid); status = getClient().executeMethod(loginPostMethod); String redirectLocation = null; if (status == 302) { for (int i = 0; i < loginPostMethod.getResponseHeaders().length; i++) { String headerName = loginPostMethod.getResponseHeaders()[i].getName(); if (headerName.equals("Location")) { redirectLocation = loginPostMethod.getResponseHeaders()[i].getValue(); } } } loginPostMethod.releaseConnection(); int counter = 0; int redirectLimit = 20; // number of redirects we are willing to follow before we give up. while (status == 302 && counter < redirectLimit) { if (counter > 0) { for (int i = 0; i < loginGetMethod.getResponseHeaders().length; i++) { String headerName = loginGetMethod.getResponseHeaders()[i].getName(); if (headerName.equals("Location")) { redirectLocation = loginGetMethod.getResponseHeaders()[i].getValue(); } } } // try following redirects until we get a static page, // or until we exceed the hoop limit. if (redirectLocation.matches(".*TermsOfUsePage.*")) { loginGetMethod = remoteAccessTOU(redirectLocation + "&clicker=downloadServlet", remoteJsessionid, null, null); if (loginGetMethod != null) { status = loginGetMethod.getStatusCode(); } } else { loginGetMethod = new GetMethod(redirectLocation); loginGetMethod.setFollowRedirects(false); loginGetMethod.addRequestHeader("Cookie", "JSESSIONID=" + remoteJsessionid); status = getClient().executeMethod(loginGetMethod); //InputStream in = loginGetMethod.getResponseBodyAsStream(); //BufferedReader rd = new BufferedReader(new InputStreamReader(in)); //rd.close(); loginGetMethod.releaseConnection(); counter++; } } } } catch (IOException ex) { if (loginGetMethod != null) { loginGetMethod.releaseConnection(); } if (loginPostMethod != null) { loginPostMethod.releaseConnection(); } return null; } return remoteJsessionid; }
From source file:es.juntadeandalucia.mapea.proxy.ProxyRedirect.java
/*************************************************************************** * Process the HTTP Post request//from ww w . j a va2 s. c om ***************************************************************************/ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException { boolean checkedContent = false; boolean legend = false; String strErrorMessage = ""; String serverUrl = request.getParameter("url"); log.info("POST param serverUrl: " + serverUrl); if (serverUrl.startsWith("legend")) { serverUrl = serverUrl.replace("legend", ""); serverUrl = serverUrl.replace("?", "&"); serverUrl = serverUrl.replaceFirst("&", "?"); legend = true; } serverUrl = checkTypeRequest(serverUrl); // log.info("serverUrl ckecked: " + serverUrl); if (!serverUrl.equals("ERROR")) { if (serverUrl.startsWith("http://") || serverUrl.startsWith("https://")) { PostMethod httppost = null; try { if (log.isDebugEnabled()) { Enumeration<?> e = request.getHeaderNames(); while (e.hasMoreElements()) { String name = (String) e.nextElement(); String value = request.getHeader(name); log.debug("request header:" + name + ":" + value); } } HttpClient client = new HttpClient(); httppost = new PostMethod(serverUrl); // PATH httppost.setDoAuthentication(false); httppost.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); // FIN_PATH // PATH_MAPEAEDITA_SECURITY - AP // PATCH_TICKET_MJM-20112405-POST String authorizationValue = request.getHeader(AUTHORIZATION); // ADD_SECURITY_20091210 if (authorizationValue == null) { // The 'Authorization' header must be in this form -> // Authorization: Basic <encodedLogin> // 'encodedLogin' is a string in the form 'user:pass' // that has been encoded by way of the Base64 algorithm. // More info on this can be found at // http://en.wikipedia.org/wiki/Basic_access_authentication String user = (String) request.getSession().getAttribute("user"); String pass = (String) request.getSession().getAttribute("pass"); if (user != null && pass != null) { String userAndPass = user + ":" + pass; String encodedLogin = new String( org.apache.commons.codec.binary.Base64.encodeBase64(userAndPass.getBytes())); httppost.addRequestHeader(AUTHORIZATION, "Basic " + encodedLogin); } else { // MJM - 20110520 String ticketParameter = request.getParameter("ticket"); if (ticketParameter != null) { ticketParameter = ticketParameter.trim(); if (!ticketParameter.isEmpty()) { Ticket ticket = TicketFactory.createInstance(); try { Map<String, String> props = ticket.getProperties(ticketParameter); user = props.get("user"); pass = props.get("pass"); String userAndPass = user + ":" + pass; String encodedLogin = new String(org.apache.commons.codec.binary.Base64 .encodeBase64(userAndPass.getBytes())); httppost.addRequestHeader(AUTHORIZATION, "Basic " + encodedLogin); } catch (Exception e) { log.info("-------------------------------------------"); log.info("EXCEPCTION THROWED BY PROXYREDIRECT CLASS"); log.info("METHOD: doPost"); log.info("TICKET VALUE: " + ticketParameter); log.info("-------------------------------------------"); } } } } } else { httppost.addRequestHeader(AUTHORIZATION, authorizationValue); } // FIN_PATH_TICKET_MJM-20112405-POST // FIN_PATH_MAPEAEDITA_SECURITY - AP String body = inputStreamAsString(request.getInputStream()); StringRequestEntity bodyEntity = new StringRequestEntity(body, null, null); if (0 == httppost.getParameters().length) { log.debug("No Name/Value pairs found ... pushing as received"); // PATCH httppost.setRequestEntity(bodyEntity); // PATCH } if (log.isDebugEnabled()) { log.debug("Body = " + body); NameValuePair[] nameValuePairs = httppost.getParameters(); log.debug("NameValuePairs found: " + nameValuePairs.length); for (int i = 0; i < nameValuePairs.length; ++i) { log.debug("parameters:" + nameValuePairs[i].toString()); } } if (!legend) client.getParams().setParameter("http.protocol.content-charset", "UTF-8"); if (soap) { httppost.addRequestHeader("SOAPAction", serverUrl); } client.executeMethod(httppost); // PATH_FOLLOW_REDIRECT_POST int j = 0; String redirectLocation; Header locationHeader = httppost.getResponseHeader("location"); while (locationHeader != null && j < numMaxRedirects) { redirectLocation = locationHeader.getValue(); // AGG 20111304 Aadimos el cuerpo de la peticin POST a // la nueva peticin redirigida // String bodyPost = httppost.getResponseBodyAsString(); StringRequestEntity bodyEntityPost = new StringRequestEntity(body, null, null); httppost.releaseConnection(); httppost = new PostMethod(redirectLocation); // AGG 20110912 Aadidas cabeceras peticin SOAP if (redirectLocation.toLowerCase().contains("wsdl")) { redirectLocation = serverUrl.replace("?wsdl", ""); httppost.addRequestHeader("SOAPAction", redirectLocation); httppost.addRequestHeader("Content-type", "text/xml"); } httppost.setRequestEntity(bodyEntityPost); client.executeMethod(httppost); locationHeader = httppost.getResponseHeader("location"); j++; } log.info("Number of followed redirections: " + j); if (locationHeader != null && j == numMaxRedirects) { log.error("The maximum number of redirects (" + numMaxRedirects + ") is exceed."); } // FIN_PATH_FOLLOW_REDIRECT_POST if (log.isDebugEnabled()) { Header[] responseHeaders = httppost.getResponseHeaders(); for (int i = 0; i < responseHeaders.length; ++i) { String headerName = responseHeaders[i].getName(); String headerValue = responseHeaders[i].getValue(); log.debug("responseHeaders:" + headerName + "=" + headerValue); } } // dump response to out if (httppost.getStatusCode() == HttpStatus.SC_OK) { // PATH_SECURITY_PROXY - AG Header[] respHeaders = httppost.getResponseHeaders(); int compSize = httppost.getResponseBody().length; ArrayList<Header> headerList = new ArrayList<Header>(Arrays.asList(respHeaders)); String headersString = headerList.toString(); checkedContent = checkContent(headersString, compSize, serverUrl); // FIN_PATH_SECURITY_PROXY - AG if (checkedContent == true) { /* * checks if it has requested an getfeatureinfo to modify the response content * type. */ String requesteredUrl = request.getParameter("url"); if (GETINFO_PLAIN_REGEX.matcher(requesteredUrl).matches()) { response.setContentType("text/plain"); } else if (GETINFO_GML_REGEX.matcher(requesteredUrl).matches()) { response.setContentType("application/gml+xml"); } else if (GETINFO_HTML_REGEX.matcher(requesteredUrl).matches()) { response.setContentType("text/html"); } else if (requesteredUrl.toLowerCase().contains("mapeaop=geosearch") || requesteredUrl.toLowerCase().contains("mapeaop=geoprint")) { response.setContentType("application/json"); } else { response.setContentType("text/xml"); } if (legend) { String responseBody = httppost.getResponseBodyAsString(); if (responseBody.contains("ServiceExceptionReport") && serverUrl.contains("LegendGraphic")) { response.sendRedirect("Componente/img/blank.gif"); } else { response.setContentLength(responseBody.length()); PrintWriter out = response.getWriter(); out.print(responseBody); response.flushBuffer(); } } else { // Patch_AGG 20112505 Prevents IE cache if (request.getProtocol().compareTo("HTTP/1.0") == 0) { response.setHeader("Pragma", "no-cache"); } else if (request.getProtocol().compareTo("HTTP/1.1") == 0) { response.setHeader("Cache-Control", "no-cache"); } response.setDateHeader("Expires", -1); // END patch // Copy request to response InputStream st = httppost.getResponseBodyAsStream(); final ServletOutputStream sos = response.getOutputStream(); IOUtils.copy(st, sos); } } else { strErrorMessage += errorType; log.error(strErrorMessage); } } else if (httppost.getStatusCode() == HttpStatus.SC_UNAUTHORIZED) { response.setStatus(HttpStatus.SC_UNAUTHORIZED); response.addHeader(WWW_AUTHENTICATE, httppost.getResponseHeader(WWW_AUTHENTICATE).getValue()); } else { strErrorMessage = "Unexpected failure: ".concat(httppost.getStatusLine().toString()) .concat(" ").concat(httppost.getResponseBodyAsString()); log.error("Unexpected failure: " + httppost.getStatusLine().toString()); } httppost.releaseConnection(); // AGG 20110927 Avoid Throwable (change it with exceptions) } catch (Exception e) { log.error("Error al tratar el contenido de la peticion: " + e.getMessage(), e); } finally { if (httppost != null) { httppost.releaseConnection(); } } } else { strErrorMessage += "Only HTTP(S) protocol supported"; log.error("Only HTTP(S) protocol supported"); // throw new // ServletException("only HTTP(S) protocol supported"); } } // There are errors. if (!strErrorMessage.equals("") || serverUrl.equals("ERROR")) { if (strErrorMessage.equals("") == true) { strErrorMessage = "Error en el parametro url de entrada"; } // String errorXML = strErrorMessage; String errorXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><error><descripcion>" + strErrorMessage + "</descripcion></error>"; response.setContentType("text/xml"); try { PrintWriter out = response.getWriter(); out.print(errorXML); response.flushBuffer(); } catch (Exception e) { log.error(e); } } log.info("-------- End POST method --------"); }
From source file:com.zimbra.client.ZMailbox.java
/** * Uploads HTTP post parts to <tt>FileUploadServlet</tt>. * @return the attachment id/*from w w w . ja v a 2s.c o m*/ */ public String uploadAttachments(Part[] parts, int msTimeout) throws ServiceException { String aid = null; URI uri = getUploadURI(); HttpClient client = getHttpClient(uri); // make the post PostMethod post = new PostMethod(uri.toString()); post.getParams().setSoTimeout(msTimeout); int statusCode; try { if (mCsrfToken != null) { post.setRequestHeader(Constants.CSRF_TOKEN, mCsrfToken); } post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams())); statusCode = HttpClientUtil.executeMethod(client, post); // parse the response if (statusCode == HttpServletResponse.SC_OK) { String response = post.getResponseBodyAsString(); aid = getAttachmentId(response); } else if (statusCode == HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE) { throw ZClientException.UPLOAD_SIZE_LIMIT_EXCEEDED("upload size limit exceeded", null); } else { throw ZClientException.UPLOAD_FAILED("Attachment post failed, status=" + statusCode, null); } } catch (IOException e) { throw ZClientException.IO_ERROR(e.getMessage(), e); } finally { post.releaseConnection(); } return aid; }
From source file:com.salesmanager.core.module.impl.integration.payment.AuthorizeNetTransactionImpl.java
private GatewayTransactionVO makeTransaction(String type, IntegrationKeys ik, IntegrationProperties props, MerchantStore store, Order order, Customer customer, CoreModuleService cis) throws TransactionException { PostMethod httppost = null; try {/* w w w. java 2s. c om*/ String host = cis.getCoreModuleServiceProdDomain(); String protocol = cis.getCoreModuleServiceProdProtocol(); String port = cis.getCoreModuleServiceProdPort(); String url = cis.getCoreModuleServiceProdEnv(); if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { host = cis.getCoreModuleServiceDevDomain(); protocol = cis.getCoreModuleServiceDevProtocol(); port = cis.getCoreModuleServiceDevPort(); url = cis.getCoreModuleServiceDevEnv(); } // sb builds the nv pair to authorize net StringBuffer sb = new StringBuffer(); // mandatory name/value pairs for all AIM CC transactions // as well as some "good to have" values sb.append("x_login=").append(ik.getUserid()).append("&"); // replace // with // your // own sb.append("x_tran_key=").append(ik.getTransactionKey()).append("&"); // replace // with // your // own sb.append("x_version=3.1&");// set to required in the specs // if dev if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { sb.append("x_test_request=TRUE&"); // for testing } sb.append("x_method=CC&");// required, CC or ECHECK sb.append("x_type=").append(type).append("&"); // need ccard number sb.append("x_card_num=").append(order.getCcNumber()).append("&"); sb.append("x_exp_date=").append(order.getCcExpires()).append("&"); sb.append("x_amount=").append(order.getTotal()).append("&"); if (props.getProperties3().equals("2")) { sb.append("x_card_code=").append(order.getCcCvv()).append("&"); } sb.append("x_delim_data=TRUE&"); sb.append("x_delim_char=|&"); sb.append("x_relay_response=FALSE&"); // sx builds the xml for persisting local StringBuffer sx = new StringBuffer(); sx.append("<transaction>"); sx.append("<x_login>").append(ik.getUserid()).append("</x_login>"); // replace // with // your // own sx.append("<x_tran_key>").append(ik.getTransactionKey()).append("</x_tran_key>"); // replace with your own sx.append("<x_version>3.1</x_version>");// set to required in the // specs // if dev if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { sx.append("<x_test_request>TRUE</x_test_request>"); // for // testing } sx.append("<x_method>CC</x_method>");// required, CC or ECHECK sx.append("<x_type>AUTH_ONLY</x_type>"); // need ccard number sx.append("<x_card_num>").append(order.getCcNumber()).append("</x_card_num>");// at least 4 last card digit sx.append("<x_exp_date>").append(order.getCcExpires()).append("</x_exp_date>"); sx.append("<x_amount>").append(order.getTotal()).append("</x_amount>"); if (props.getProperties3().equals("2")) { sx.append("<x_card_code>").append(order.getCcCvv()).append("</x_card_code>"); } sx.append("<x_delim_data>TRUE</x_delim_data>"); sx.append("<x_delim_char>|</x_delim_char>"); sx.append("<x_relay_response>FALSE</x_relay_response>"); sx.append("</transaction>"); /** debug **/ // sb builds the nv pair to authorize net StringBuffer sblog = new StringBuffer(); sblog.append("x_login=").append(ik.getUserid()).append("&"); // replace // with // your // own sblog.append("x_tran_key=").append(ik.getTransactionKey()).append("&"); // replace // own sblog.append("x_version=3.1&");// set to required in the specs if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { sblog.append("x_test_request=TRUE&"); // for testing } sblog.append("x_method=CC&");// required, CC or ECHECK sblog.append("x_type=").append(type).append("&"); sblog.append("x_card_num=").append(CreditCardUtil.maskCardNumber(order.getCcNumber())).append("&"); sblog.append("x_exp_date=").append(order.getCcExpires()).append("&"); sblog.append("x_amount=").append(order.getTotal()).append("&"); if (props.getProperties3().equals("2")) { sblog.append("x_card_code=").append(order.getCcCvv()).append("&"); } sblog.append("x_delim_data=TRUE&"); sblog.append("x_delim_char=|&"); sblog.append("x_relay_response=FALSE&"); log.debug("Transaction sent -> " + sblog.toString()); /** * log */ HttpClient client = new HttpClient(); httppost = new PostMethod(protocol + "://" + host + ":" + port + url); RequestEntity entity = new StringRequestEntity(sb.toString(), "text/plain", "UTF-8"); httppost.setRequestEntity(entity); String stringresult = null; int result = client.executeMethod(httppost); if (result != 200) { log.error("Communication Error with Authorizenet " + protocol + "://" + host + ":" + port + url); throw new Exception( "Communication Error with Authorizenet " + protocol + "://" + host + ":" + port + url); } // stringresult = httppost.getResponseBodyAsString(); // log.debug("AuthorizeNet response " +stringresult); stringresult = httppost.getResponseBodyAsString(); log.debug("AuthorizeNet response " + stringresult); StringBuffer appendresult = new StringBuffer().append(order.getTotal()).append("|") .append(stringresult); // Format to xml // String finalresult = this.readresponse("|", appendresult.toString()); AuthorizeNetParsedElements pe = new AuthorizeNetParsedElements(); Digester digester = new Digester(); digester.push(pe); digester.addCallMethod("transaction/transactionid", "setTransactionId", 0); digester.addCallMethod("transaction/approvalcode", "setApprovalCode", 0); digester.addCallMethod("transaction/responsecode", "setResponseCode", 0); digester.addCallMethod("transaction/amount", "setTransactionAmount", 0); digester.addCallMethod("transaction/reasontext", "setReasontext", 0); digester.addCallMethod("transaction/reasoncode", "setReasonCode", 0); Reader reader = new StringReader(finalresult); digester.parse(reader); // check if you need it // pe.setTransactionId(trx.getTransactionDetails().getMerchantPaymentGwOrderid());//BECAUSE // NOT RETURNED FROM AUTHORIZE NET !!!! if (type.equals("AUTH_CAPTURE")) { return this.parseResponse(PaymentConstants.SALE, sx.toString(), finalresult, pe, order, order.getTotal()); } else {// AUTH_ONLY return this.parseResponse(PaymentConstants.PREAUTH, sx.toString(), finalresult, pe, order, order.getTotal()); } } catch (Exception e) { if (e instanceof TransactionException) { throw (TransactionException) e; } log.error(e); TransactionException te = new TransactionException("AuthorizeNet Gateway error ", e); throw te; } finally { if (httppost != null) { httppost.releaseConnection(); } } }
From source file:com.salesmanager.core.module.impl.integration.payment.AuthorizeNetTransactionImpl.java
public GatewayTransactionVO refundTransaction(IntegrationKeys keys, IntegrationProperties props, MerchantStore store, Order order, GatewayTransactionVO trx, Customer customer, CoreModuleService cis, BigDecimal amount) throws TransactionException { PostMethod httppost = null; try {// ww w. j av a 2 s .co m String host = cis.getCoreModuleServiceProdDomain(); String protocol = cis.getCoreModuleServiceProdProtocol(); String port = cis.getCoreModuleServiceProdPort(); String url = cis.getCoreModuleServiceProdEnv(); if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { host = cis.getCoreModuleServiceDevDomain(); protocol = cis.getCoreModuleServiceDevProtocol(); port = cis.getCoreModuleServiceDevPort(); url = cis.getCoreModuleServiceDevEnv(); } // parse sent elements required AuthorizeNetParsedElements pe = null; pe = new AuthorizeNetParsedElements(); Digester digester = new Digester(); digester.push(pe); digester.addCallMethod("transaction/x_card_num", "setCardnumber", 0); digester.addCallMethod("transaction/approvalcode", "setApprovalCode", 0); digester.addCallMethod("transaction/x_exp_date", "setExpiration", 0); digester.addCallMethod("transaction/x_amount", "setTransactionAmount", 0); digester.addCallMethod("transaction/x_card_code", "setCvv", 0); Reader reader = new StringReader(trx.getTransactionDetails().getGatewaySentDecrypted().trim()); digester.parse(reader); StringBuffer sb = new StringBuffer(); // mandatory name/value pairs for all AIM CC transactions // as well as some "good to have" values sb.append("x_login=").append(keys.getUserid()).append("&"); // replace // with // your // own sb.append("x_tran_key=").append(keys.getTransactionKey()).append("&"); // replace // with // your // own sb.append("x_version=3.1&");// set to required in the specs // if dev if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { sb.append("x_test_request=TRUE&"); // for testing } sb.append("x_method=CC&");// required, CC or ECHECK sb.append("x_type=CREDIT&"); sb.append("x_card_num=").append(pe.getCardnumber()).append("&");// at // least // 4 // last // card // digit sb.append("x_exp_date=").append(pe.getExpiration()).append("&"); sb.append("x_amount=").append(amount.toString()).append("&"); if (pe.getCvv() != null) { sb.append("x_card_code=").append(pe.getCvv()).append("&"); } sb.append("x_delim_data=TRUE&"); sb.append("x_delim_char=|&"); sb.append("x_relay_response=FALSE&"); sb.append("x_trans_id=").append(trx.getTransactionID()).append("&"); /** debug **/ StringBuffer sblog = new StringBuffer(); // mandatory name/value pairs for all AIM CC transactions // as well as some "good to have" values sblog.append("x_login=").append(keys.getUserid()).append("&"); // replace // with // your // own sblog.append("x_tran_key=").append(keys.getTransactionKey()).append("&"); // replace // own sblog.append("x_version=3.1&");// set to required in the specs // if dev if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { sblog.append("x_test_request=TRUE&"); // for testing } sblog.append("x_method=CC&");// required, CC or ECHECK sblog.append("x_type=CREDIT&"); sblog.append("x_card_num=").append(pe.getCardnumber()).append("&");// at // least // 4 // last // card // digit sblog.append("x_exp_date=").append(pe.getExpiration()).append("&"); sblog.append("x_amount=").append(amount.toString()).append("&"); if (pe.getCvv() != null) { sblog.append("x_card_code=").append(pe.getCvv()).append("&"); } sblog.append("x_delim_data=TRUE&"); sblog.append("x_delim_char=|&"); sblog.append("x_relay_response=FALSE&"); sblog.append("x_trans_id=").append(trx.getTransactionID()).append("&"); log.debug("Transaction sent -> " + sblog.toString()); /** debug **/ // sx builds the xml for persisting local StringBuffer sx = new StringBuffer(); sx.append("<transaction>"); sx.append("<x_login>").append(keys.getUserid()).append("</x_login>"); // replace // with // your // own sx.append("<x_tran_key>").append(keys.getTransactionKey()).append("</x_tran_key>"); // replace with your own sx.append("<x_version>3.1</x_version>");// set to required in the // specs // if dev if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { sx.append("<x_test_request>TRUE</x_test_request>"); // for // testing } sx.append("<x_method>CC</x_method>");// required, CC or ECHECK sx.append("<x_type>CREDIT</x_type>"); // need ccard number sx.append("<x_card_num>").append(pe.getCardnumber()).append("</x_card_num>");// at least 4 last card digit sx.append("<x_exp_date>").append(pe.getExpiration()).append("</x_exp_date>"); sx.append("<x_amount>").append(pe.getTransactionAmount()).append("</x_amount>"); if (pe.getCvv() != null) { sx.append("<x_card_code>").append(pe.getCvv()).append("</x_card_code>"); } sx.append("<x_delim_data>TRUE</x_delim_data>"); sx.append("<x_delim_char>|</x_delim_char>"); sx.append("<x_relay_response>FALSE</x_relay_response>"); sx.append("<x_trans_id>").append(trx.getTransactionID()).append("</x_trans_id>"); sx.append("</transaction>"); HttpClient client = new HttpClient(); httppost = new PostMethod(protocol + "://" + host + ":" + port + url); RequestEntity entity = new StringRequestEntity(sb.toString(), "text/plain", "UTF-8"); httppost.setRequestEntity(entity); String stringresult = null; int result = client.executeMethod(httppost); if (result != 200) { log.error("Communication Error with Authorizenet " + protocol + "://" + host + ":" + port + url); throw new Exception( "Communication Error with Authorizenet " + protocol + "://" + host + ":" + port + url); } stringresult = httppost.getResponseBodyAsString(); log.debug("AuthorizeNet response " + stringresult); StringBuffer appendresult = new StringBuffer().append(order.getTotal()).append("|") .append(stringresult); // Format to xml String finalresult = this.readresponse("|", appendresult.toString()); pe = new AuthorizeNetParsedElements(); digester = new Digester(); digester.push(pe); digester.addCallMethod("transaction/transactionid", "setTransactionId", 0); digester.addCallMethod("transaction/approvalcode", "setApprovalCode", 0); digester.addCallMethod("transaction/responsecode", "setResponseCode", 0); digester.addCallMethod("transaction/amount", "setTransactionAmount", 0); digester.addCallMethod("transaction/reasontext", "setReasontext", 0); digester.addCallMethod("transaction/reasoncode", "setReasonCode", 0); reader = new StringReader(finalresult); digester.parse(reader); pe.setTransactionId(trx.getTransactionDetails().getMerchantPaymentGwOrderid());// BECAUSE NOT RETURNED FROM // AUTHORIZE NET !!!! return this.parseResponse(PaymentConstants.REFUND, sx.toString(), finalresult, pe, order, amount); } catch (Exception e) { if (e instanceof TransactionException) { throw (TransactionException) e; } log.error(e); TransactionException te = new TransactionException("AuthorizeNet Gateway error ", e); te.setErrorcode("01"); throw te; } finally { if (httppost != null) { httppost.releaseConnection(); } } }
From source file:com.salesmanager.core.module.impl.integration.payment.AuthorizeNetTransactionImpl.java
public GatewayTransactionVO captureTransaction(IntegrationKeys ik, IntegrationProperties props, MerchantStore store, Order order, GatewayTransactionVO trx, Customer customer, CoreModuleService cis) throws TransactionException { PostMethod httppost = null; try {// w w w. ja va 2 s.c o m if (cis == null) { // throw new // Exception("Central integration services not configured for " // + PaymentConstants.PAYMENT_LINKPOINTNAME + " and country id " // + origincountryid); log.error("Central integration services not configured for " + PaymentConstants.PAYMENT_AUTHORIZENETNAME + " and country id " + store.getCountry()); TransactionException te = new TransactionException( "Central integration services not configured for " + PaymentConstants.PAYMENT_AUTHORIZENETNAME + " and country id " + store.getCountry()); te.setErrorcode("01"); throw te; } String host = cis.getCoreModuleServiceProdDomain(); String protocol = cis.getCoreModuleServiceProdProtocol(); String port = cis.getCoreModuleServiceProdPort(); String url = cis.getCoreModuleServiceProdEnv(); if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { host = cis.getCoreModuleServiceDevDomain(); protocol = cis.getCoreModuleServiceDevProtocol(); port = cis.getCoreModuleServiceDevPort(); url = cis.getCoreModuleServiceDevEnv(); } // parse sent elements required AuthorizeNetParsedElements pe = null; pe = new AuthorizeNetParsedElements(); Digester digester = new Digester(); digester.push(pe); digester.addCallMethod("transaction/x_card_num", "setCardnumber", 0); digester.addCallMethod("transaction/approvalcode", "setApprovalCode", 0); digester.addCallMethod("transaction/x_exp_date", "setExpiration", 0); digester.addCallMethod("transaction/x_amount", "setTransactionAmount", 0); digester.addCallMethod("transaction/x_card_code", "setCvv", 0); Reader reader = new StringReader(trx.getTransactionDetails().getGatewaySentDecrypted().trim()); digester.parse(reader); // sb builds the nv pair to authorize net StringBuffer sb = new StringBuffer(); // mandatory name/value pairs for all AIM CC transactions // as well as some "good to have" values sb.append("x_login=").append(ik.getUserid()).append("&"); // replace // with // your // own sb.append("x_tran_key=").append(ik.getTransactionKey()).append("&"); // replace // with // your // own sb.append("x_version=3.1&");// set to required in the specs // if dev if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { sb.append("x_test_request=TRUE&"); // for testing } sb.append("x_method=CC&");// required, CC or ECHECK sb.append("x_type=CAPTURE_ONLY&"); // need ccard number sb.append("x_card_num=").append(pe.getCardnumber()).append("&");// at // least // 4 // last // card // digit sb.append("x_exp_date=").append(pe.getExpiration()).append("&"); sb.append("x_amount=").append(pe.getTransactionAmount()).append("&"); if (pe.getCvv() != null) { sb.append("x_card_code=").append(pe.getCvv()).append("&"); } sb.append("x_delim_data=TRUE&"); sb.append("x_delim_char=|&"); sb.append("x_relay_response=FALSE&"); sb.append("x_auth_code=").append(trx.getInternalGatewayOrderId()).append("&"); /** debug **/ StringBuffer sblog = new StringBuffer(); sblog.append("x_login=").append(ik.getUserid()).append("&"); // replace // with // your // own sblog.append("x_tran_key=").append(ik.getTransactionKey()).append("&"); // replace // own sblog.append("x_version=3.1&");// set to required in the specs // if dev if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { sblog.append("x_test_request=TRUE&"); // for testing } sblog.append("x_method=CC&");// required, CC or ECHECK sblog.append("x_type=CAPTURE_ONLY&"); // need ccard number sblog.append("x_card_num=").append(CreditCardUtil.maskCardNumber(pe.getCardnumber())).append("&");// at // least // 4 // last // card // digit sblog.append("x_exp_date=").append(pe.getExpiration()).append("&"); sblog.append("x_amount=").append(pe.getTransactionAmount()).append("&"); if (pe.getCvv() != null) { sblog.append("x_card_code=").append(pe.getCvv()).append("&"); } sblog.append("x_delim_data=TRUE&"); sblog.append("x_delim_char=|&"); sblog.append("x_relay_response=FALSE&"); sblog.append("x_auth_code=").append(trx.getInternalGatewayOrderId()).append("&"); log.debug(sblog.toString()); /** log **/ // sx builds the xml for persisting local StringBuffer sx = new StringBuffer(); sx.append("<transaction>"); sx.append("<x_login>").append(ik.getUserid()).append("</x_login>"); // replace // with // your // own sx.append("<x_tran_key>").append(ik.getTransactionKey()).append("</x_tran_key>"); // replace with your own sx.append("<x_version>3.1</x_version>");// set to required in the // specs // if dev if (props.getProperties2().equals(String.valueOf(PaymentConstants.TEST_ENVIRONMENT))) { sx.append("<x_test_request>TRUE</x_test_request>"); // for // testing } sx.append("<x_method>CC</x_method>");// required, CC or ECHECK sx.append("<x_type>CAPTURE_ONLY</x_type>"); // need ccard number sx.append("<x_card_num>").append(pe.getCardnumber()).append("</x_card_num>");// at least 4 last card digit sx.append("<x_exp_date>").append(pe.getExpiration()).append("</x_exp_date>"); sx.append("<x_amount>").append(pe.getTransactionAmount()).append("</x_amount>"); if (pe.getCvv() != null) { sx.append("<x_card_code>").append(pe.getCvv()).append("</x_card_code>"); } sx.append("<x_delim_data>TRUE</x_delim_data>"); sx.append("<x_delim_char>|</x_delim_char>"); sx.append("<x_relay_response>FALSE</x_relay_response>"); sx.append("<x_auth_code>").append(trx.getInternalGatewayOrderId()).append("</x_auth_code>"); sx.append("</transaction>"); // x_encap_char // use cvv x_card_code // x_amount // x_recurring_billing NO // x_customer_ip HttpClient client = new HttpClient(); httppost = new PostMethod(protocol + "://" + host + ":" + port + url); RequestEntity entity = new StringRequestEntity(sb.toString(), "text/plain", "UTF-8"); httppost.setRequestEntity(entity); // open secure connection // URL anurl = new URL(protocol + "://" + host + ":" + port + url); /* * NOTE: If you want to use SSL-specific features,change to: * HttpsURLConnection connection = (HttpsURLConnection) * url.openConnection(); */ String stringresult = null; int result = client.executeMethod(httppost); if (result != 200) { log.error("Communication Error with Authorizenet " + protocol + "://" + host + ":" + port + url); throw new Exception( "Communication Error with Authorizenet " + protocol + "://" + host + ":" + port + url); } // stringresult = httppost.getResponseBodyAsString(); // log.debug("AuthorizeNet response " +stringresult); stringresult = httppost.getResponseBodyAsString(); log.debug("AuthorizeNet response " + stringresult); StringBuffer appendresult = new StringBuffer().append(order.getTotal()).append("|") .append(stringresult); // Format to xml // String finalresult = this.readresponse("|", appendresult.toString()); pe = new AuthorizeNetParsedElements(); digester = new Digester(); digester.push(pe); digester.addCallMethod("transaction/transactionid", "setTransactionId", 0); digester.addCallMethod("transaction/approvalcode", "setApprovalCode", 0); digester.addCallMethod("transaction/responsecode", "setResponseCode", 0); digester.addCallMethod("transaction/amount", "setTransactionAmount", 0); digester.addCallMethod("transaction/reasontext", "setReasontext", 0); digester.addCallMethod("transaction/reasoncode", "setReasonCode", 0); reader = new StringReader(finalresult); digester.parse(reader); pe.setTransactionId(trx.getTransactionDetails().getMerchantPaymentGwOrderid());// BECAUSE NOT RETURNED FROM // AUTHORIZE NET !!!! return this.parseResponse(PaymentConstants.CAPTURE, sx.toString(), finalresult, pe, order, order.getTotal()); } catch (Exception e) { if (e instanceof TransactionException) { throw (TransactionException) e; } log.error(e); TransactionException te = new TransactionException("AuthorizeNet Gateway error ", e); throw te; } finally { if (httppost != null) { httppost.releaseConnection(); } } }