www in docker support
This commit is contained in:
parent
539a848e95
commit
c227fce036
2145 changed files with 399596 additions and 58 deletions
|
|
@ -0,0 +1,182 @@
|
|||
package it.acxent.bank.servlet.paypalcheckout;
|
||||
|
||||
import com.paypal.http.HttpResponse;
|
||||
import com.paypal.http.serializer.Json;
|
||||
import com.paypal.orders.Order;
|
||||
import it.acxent.bank.paypalcheckout.PayPalOrder;
|
||||
import it.acxent.bank.paypalcheckout.PayPalReq;
|
||||
import it.acxent.db.DBAdapter;
|
||||
import it.acxent.servlet.AcServlet;
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PaypalCheckoutSvlt extends AcServlet {
|
||||
private static final long serialVersionUID = 5690568301539954108L;
|
||||
|
||||
public static final String CMD_CREATE_ORDER = "createOrder";
|
||||
|
||||
public static final String CMD_GET_ORDER_DETAILS = "getOrderDetails";
|
||||
|
||||
protected static final String CMD_GET_RES = "res";
|
||||
|
||||
protected static final String BEAN_PAYPALRES = "payPalResp";
|
||||
|
||||
private static final boolean debug = false;
|
||||
|
||||
protected final void callJsp(HttpServletRequest req, HttpServletResponse res) {
|
||||
setJspPageRelative(getJspOkPage(req, res), req);
|
||||
try {
|
||||
RequestDispatcher rd = getServletContext().getRequestDispatcher(getJspPage(req));
|
||||
rd.forward((ServletRequest)req, (ServletResponse)res);
|
||||
} catch (Exception e) {
|
||||
handleDebug(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void _createOrder(HttpServletRequest req, HttpServletResponse res) {
|
||||
PayPalReq pReq = getPayPalReq(req, res);
|
||||
pReq.setPaypalClientId(getApplicationClientId());
|
||||
pReq.setPaypalClientSecret(getApplicationClienteSecret());
|
||||
pReq.setUseSandbox(isUseSandbox(req));
|
||||
try {
|
||||
HttpResponse<Order> respOrd = new PayPalOrder(pReq).createOrder(false);
|
||||
String orderId = ((Order)respOrd.result()).id();
|
||||
String result = "{\"orderID\":\"" + orderId + "\"}";
|
||||
System.out.println(String.valueOf(DBAdapter.getNow()) + " _createOrder paypalcheckoutsvlt: " + String.valueOf(DBAdapter.getNow()));
|
||||
pReq.setPaypalOrderId(orderId);
|
||||
updatePaypalOrderId(req, pReq);
|
||||
sendHtmlMsgResponse(req, res, result);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println(String.valueOf(DBAdapter.getNow()) + " _createOrder paypalcheckoutsvlt: exception; " + String.valueOf(DBAdapter.getNow()));
|
||||
}
|
||||
}
|
||||
|
||||
private String getJspOkPage(HttpServletRequest req, HttpServletResponse res) {
|
||||
String temp = getParm("PAYPAL_OK").getTesto();
|
||||
if (temp.isEmpty())
|
||||
return "payPalRes.jsp";
|
||||
return temp;
|
||||
}
|
||||
|
||||
private String getCancelURL(HttpServletRequest req, HttpServletResponse res) {
|
||||
String temp = getParm("PAYPAL_CANCELURL").getTesto();
|
||||
if (temp.isEmpty())
|
||||
return "http://localhost/cc/PayPalCOResp.abl";
|
||||
return temp;
|
||||
}
|
||||
|
||||
protected void processRequest(HttpServletRequest req, HttpServletResponse res) {
|
||||
try {
|
||||
String cmd = getCmd(req);
|
||||
if (cmd.equals("createOrder")) {
|
||||
_createOrder(req, res);
|
||||
} else {
|
||||
_getPayerDatails(req, res);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
handleDebug(e);
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean isSecureServlet(HttpServletRequest req) {
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isUseSandbox(HttpServletRequest req) {
|
||||
return getParm("P_PAYPAL_CHECKOUT_USE_SANDBOX").isTrue();
|
||||
}
|
||||
|
||||
protected void recordOrder(HttpServletRequest req, HttpServletResponse res, JSONObject jso) {}
|
||||
|
||||
private String getApplicationClientId() {
|
||||
String temp = getParm("PAYPAL_CHECKOUT_APPLICATION_CLIENT_ID").getTesto();
|
||||
if (temp.isEmpty())
|
||||
return "ASB7x1BxlkomVZ1BM0OesK2SuCLjRq9R4dyc5rtCVBzM7nHB0eunZyyxO4758BgXnZBV9JSCZ3bqpFw9";
|
||||
return temp;
|
||||
}
|
||||
|
||||
private String getApplicationClienteSecret() {
|
||||
String temp = getParm("PAYPAL_CHECKOUT_APPLICATION_CLIENT_SECRET").getTesto();
|
||||
if (temp.isEmpty())
|
||||
return "EFiYhkh4tgv1d3Wnx2qUAG1_BtxddWoGhZTlV7EseRfP4uKFMRAub_5G9D9PIgTObVjB54SZd2UNyXlZ";
|
||||
return temp;
|
||||
}
|
||||
|
||||
private String getCurrency() {
|
||||
String temp = getParm("PAYPAL_CURRENCY").getTesto();
|
||||
if (temp.isEmpty())
|
||||
return "EUR";
|
||||
return temp;
|
||||
}
|
||||
|
||||
private String getReturnURL(HttpServletRequest req, HttpServletResponse res) {
|
||||
String temp = getParm("PAYPAL_RETURNURL").getTesto();
|
||||
if (temp.isEmpty())
|
||||
return "http://localhost/cc/PayPalCOResp.abl";
|
||||
return temp;
|
||||
}
|
||||
|
||||
private void _getPayerDatails(HttpServletRequest req, HttpServletResponse res) {
|
||||
PayPalReq preq = new PayPalReq();
|
||||
fillObject(req, preq);
|
||||
preq.setPaypalClientId(getApplicationClientId());
|
||||
preq.setPaypalClientSecret(getApplicationClienteSecret());
|
||||
preq.setUseSandbox(isUseSandbox(req));
|
||||
System.out.println("PAYPALCHECKOUT _getPayerDatails .... ");
|
||||
try {
|
||||
String orderIdJson = IOUtils.toString(req.getReader());
|
||||
JSONObject jso = new JSONObject(orderIdJson);
|
||||
String orderId = jso.getString("orderID");
|
||||
HttpResponse<Order> respOrd = new PayPalOrder(preq).getOrder(orderId);
|
||||
JSONObject jsonRespObj = new JSONObject(new Json().serialize(respOrd.result()));
|
||||
String json = jsonRespObj.toString(4);
|
||||
String status = jsonRespObj.getString("status");
|
||||
System.out.println("PAYPALCHECKOUT _getPayerDatails status: " + status);
|
||||
if (status.equals("COMPLETED"))
|
||||
recordOrder(req, res, jsonRespObj);
|
||||
sendHtmlMsgResponse(req, res, json);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
protected PayPalReq getPayPalReq(HttpServletRequest req, HttpServletResponse res) {
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void updatePaypalOrderId(HttpServletRequest req, PayPalReq pReq) {}
|
||||
|
||||
protected String extractTransactionId(JSONObject jo) {
|
||||
String transactionId = "";
|
||||
if (jo == null)
|
||||
return transactionId;
|
||||
try {
|
||||
if (!jo.has("purchase_units"))
|
||||
return transactionId;
|
||||
JSONArray purchaseUnits = jo.optJSONArray("purchase_units");
|
||||
if (purchaseUnits == null || purchaseUnits.isEmpty())
|
||||
return transactionId;
|
||||
JSONObject firstPurchaseUnit = purchaseUnits.optJSONObject(0);
|
||||
if (firstPurchaseUnit == null)
|
||||
return transactionId;
|
||||
JSONObject payments = firstPurchaseUnit.optJSONObject("payments");
|
||||
if (payments == null)
|
||||
return transactionId;
|
||||
JSONArray captures = payments.optJSONArray("captures");
|
||||
if (captures == null || captures.isEmpty())
|
||||
return transactionId;
|
||||
JSONObject firstCapture = captures.optJSONObject(0);
|
||||
if (firstCapture == null)
|
||||
return transactionId;
|
||||
transactionId = firstCapture.optString("id", "");
|
||||
} catch (Exception e) {}
|
||||
return transactionId;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue