Example usage for com.liferay.portal.kernel.io.unsync UnsyncPrintWriter UnsyncPrintWriter

List of usage examples for com.liferay.portal.kernel.io.unsync UnsyncPrintWriter UnsyncPrintWriter

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.io.unsync UnsyncPrintWriter UnsyncPrintWriter.

Prototype

public UnsyncPrintWriter(Writer writer) 

Source Link

Usage

From source file:com.liferay.shopping.ShoppingPortlet.java

License:Open Source License

public void paypalNotification(ActionRequest request, ActionResponse response) throws Exception {

    String invoice = null;/* ww  w .j  ava 2  s  .c  om*/

    _log.error("Receiving notification from PayPal");

    try {
        if (_log.isDebugEnabled()) {
            _log.debug("Receiving notification from PayPal");
        }

        String query = "cmd=_notify-validate";

        Enumeration<String> enu = request.getParameterNames();

        while (enu.hasMoreElements()) {
            String name = enu.nextElement();

            String value = request.getParameter(name);

            query = query + "&" + name + "=" + HttpUtil.encodeURL(value);
        }

        if (_log.isDebugEnabled()) {
            _log.debug("Sending response to PayPal " + query);
        }

        URL url = new URL("https://www.paypal.com/cgi-bin/webscr");

        URLConnection urlc = url.openConnection();

        urlc.setDoOutput(true);
        urlc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        PrintWriter pw = new UnsyncPrintWriter(urlc.getOutputStream());

        pw.println(query);

        pw.close();

        UnsyncBufferedReader unsyncBufferedReader = new UnsyncBufferedReader(
                new InputStreamReader(urlc.getInputStream()));

        String payPalStatus = unsyncBufferedReader.readLine();

        unsyncBufferedReader.close();
        String itemName = ParamUtil.getString(request, "item_name");
        String itemNumber = ParamUtil.getString(request, "item_number");
        invoice = ParamUtil.getString(request, "invoice");
        String txnId = ParamUtil.getString(request, "txn_id");
        String paymentStatus = ParamUtil.getString(request, "payment_status");
        double paymentGross = ParamUtil.getDouble(request, "mc_gross");
        String receiverEmail = ParamUtil.getString(request, "receiver_email");
        String payerEmail = ParamUtil.getString(request, "payer_email");

        _log.error("Receiving response from PayPal " + payPalStatus);
        if (_log.isDebugEnabled()) {
            _log.debug("Receiving response from PayPal");
            _log.debug("Item name " + itemName);
            _log.debug("Item number " + itemNumber);
            _log.debug("Invoice " + invoice);
            _log.debug("Transaction ID " + txnId);
            _log.debug("Payment status " + paymentStatus);
            _log.debug("Payment gross " + paymentGross);
            _log.debug("Receiver email " + receiverEmail);
            _log.debug("Payer email " + payerEmail);
        }

        if (payPalStatus.equals("VERIFIED") && validate(request)) {
            ShoppingOrderLocalServiceUtil.completeOrder(invoice, txnId, paymentStatus, paymentGross,
                    receiverEmail, payerEmail, true);
        } else if (payPalStatus.equals("INVALID")) {
        }
    } catch (Exception e) {
        PortalUtil.sendError(e, request, response);
    }
}