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,176 @@
|
|||
package it.acxent.bank.servlet.setefi;
|
||||
|
||||
import it.acxent.bank.setefi.SetefiReq;
|
||||
import it.acxent.bank.setefi.SetefiResp;
|
||||
import it.acxent.db.ResParm;
|
||||
import it.acxent.servlet.AcServlet;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public abstract class MonetaOnlineSvlt extends AcServlet {
|
||||
protected static final String CMD_GET_RES = "res";
|
||||
|
||||
protected static final String CMD_SEND_REQ = "send";
|
||||
|
||||
protected final void callJsp(HttpServletRequest req, HttpServletResponse res) {
|
||||
setJspPageRelative(getResponsePage(req, res), req);
|
||||
try {
|
||||
RequestDispatcher rd = getServletContext()
|
||||
.getRequestDispatcher(getJspPage(req));
|
||||
rd.forward((ServletRequest)req, (ServletResponse)res);
|
||||
} catch (Exception e) {
|
||||
handleDebug(e);
|
||||
}
|
||||
}
|
||||
|
||||
protected String getResponsePage(HttpServletRequest req, HttpServletResponse res) {
|
||||
String temp = getParm("MONETAONLINE_RESPONSE_PAGE")
|
||||
.getTesto();
|
||||
if (temp.isEmpty())
|
||||
return "http://www.miodominio.it/xxx_response-#-@.html";
|
||||
return temp;
|
||||
}
|
||||
|
||||
protected void processRequest(HttpServletRequest req, HttpServletResponse res) {
|
||||
String cmd = getCmd(req).toLowerCase();
|
||||
if (cmd.equals("send")) {
|
||||
sendRequest(req, res);
|
||||
} else if (getCmd(req).equals("risultato") ||
|
||||
getCmd(req).equals("result")) {
|
||||
preparePaymentResultPage(req, res);
|
||||
setJspPage(getResponseJsp(req, res), req);
|
||||
callJsp(req, res);
|
||||
} else {
|
||||
getResponse(req, res);
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean isSecureServlet(HttpServletRequest req) {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected void sendRequest(HttpServletRequest req, HttpServletResponse res) {
|
||||
try {
|
||||
boolean testMode = (getParm("TEST").getNumeroInt() == 1);
|
||||
SetefiReq setefiReq = new SetefiReq();
|
||||
fillObject(req, setefiReq);
|
||||
String theUrl = "https://test.monetaonline.it/monetaweb/hosted/init/http";
|
||||
if (testMode) {
|
||||
theUrl = "https://test.monetaonline.it/monetaweb/hosted/init/http";
|
||||
setefiReq.setId(getParm("MONETAONLINE_ID").getTesto());
|
||||
setefiReq.setPassword(getParm("MONETAONLINE_PASSWORD")
|
||||
.getTesto());
|
||||
} else {
|
||||
setefiReq.setId("99999999");
|
||||
setefiReq.setPassword("99999999");
|
||||
}
|
||||
setefiReq.setResponseurl(getResponseUrl(req, res));
|
||||
String rawData = setefiReq.getRawdata();
|
||||
if (!rawData.equals("")) {
|
||||
String type = "application/x-www-form-urlencoded";
|
||||
String encodedData = rawData;
|
||||
URL u = new URL("https://test.monetaonline.it/monetaweb/hosted/init/http");
|
||||
HttpURLConnection conn = (HttpURLConnection)u.openConnection();
|
||||
conn.setDoInput(true);
|
||||
conn.setDoOutput(true);
|
||||
conn.setUseCaches(false);
|
||||
conn.setRequestMethod("POST");
|
||||
conn.setRequestProperty("Content-Type", type);
|
||||
conn.setRequestProperty("Content-Length",
|
||||
String.valueOf(encodedData.length()));
|
||||
conn.connect();
|
||||
DataOutputStream os = new DataOutputStream(
|
||||
conn.getOutputStream());
|
||||
os.writeBytes(encodedData);
|
||||
os.flush();
|
||||
os.close();
|
||||
BufferedReader read = new BufferedReader(new InputStreamReader(
|
||||
conn.getInputStream()));
|
||||
String line = read.readLine();
|
||||
String html = "";
|
||||
while (line != null) {
|
||||
html = html + html;
|
||||
line = read.readLine();
|
||||
}
|
||||
int idx2dot = html.indexOf(":");
|
||||
String paymentId = html.substring(0, html.indexOf(":"));
|
||||
String url = html.substring(idx2dot + 1, html.length());
|
||||
String paymentUrl = url + "?paymentid=" + url;
|
||||
System.out.println(paymentUrl);
|
||||
ResParm rp = recordPaymentId(req, res, paymentId);
|
||||
if (rp.getStatus()) {
|
||||
res.sendRedirect(paymentUrl);
|
||||
} else {
|
||||
setJspPageRelative(getResponsePage(req, res), req);
|
||||
sendMessage(req, rp.getErrMsg());
|
||||
getResponse(req, res);
|
||||
callJsp(req, res);
|
||||
}
|
||||
} else {
|
||||
setJspPageRelative(getResponsePage(req, res), req);
|
||||
String temp = "ERRORE!!MonetaOnline Svlt! Impossibile creare url di richiesta!";
|
||||
sendMessage(req, temp);
|
||||
getResponse(req, res);
|
||||
handleDebug(temp, 2);
|
||||
callJsp(req, res);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
handleDebug(e);
|
||||
}
|
||||
}
|
||||
|
||||
protected String getResponseJsp(HttpServletRequest req, HttpServletResponse res) {
|
||||
String temp = getParm("MONETAONLINE_RESPONSE_JSP").getTesto();
|
||||
if (temp.isEmpty())
|
||||
return "/payResMO.jsp";
|
||||
return temp;
|
||||
}
|
||||
|
||||
protected abstract ResParm recordPaymentId(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse, String paramString);
|
||||
|
||||
protected String getResponseUrl(HttpServletRequest req, HttpServletResponse res) {
|
||||
String temp = getParm("MONETAONLINE_RESPONSE_URL").getTesto();
|
||||
if (temp.isEmpty())
|
||||
return "http://www.miodoninio.it/RicevutaMO.abl";
|
||||
return temp;
|
||||
}
|
||||
|
||||
protected abstract void preparePaymentResultPage(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse);
|
||||
|
||||
protected abstract void checkPaymentId(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse, SetefiResp paramSetefiResp);
|
||||
|
||||
protected void getResponse(HttpServletRequest req, HttpServletResponse res) {
|
||||
try {
|
||||
req.setAttribute("responsecode", "000");
|
||||
req.setAttribute("result", "Accepted");
|
||||
req.setAttribute("trackid", "6");
|
||||
req.setAttribute("paymentid", "316061656072333389");
|
||||
req.setAttribute("tranid", "316061656072333389");
|
||||
SetefiResp setefiResp = new SetefiResp();
|
||||
fillObject(req, setefiResp);
|
||||
checkPaymentId(req, res, setefiResp);
|
||||
String theUrl = getResponsePage(req, res).replace("#",
|
||||
setefiResp.getTrackid());
|
||||
theUrl = theUrl.replace("@",
|
||||
String.valueOf(setefiResp.getPaymentid()));
|
||||
System.out.println("redirect url :" + theUrl);
|
||||
sendHtmlMsgResponse(req, res, "redirect=" + theUrl);
|
||||
} catch (Exception e) {
|
||||
setJspPageRelative(getResponsePage(req, res), req);
|
||||
String temp = "ERRORE!!MONETAONLINE ! Risposta non valida: ";
|
||||
sendMessage(req, temp);
|
||||
handleDebug(temp, 2);
|
||||
setJspPage(getResponsePage(req, res), req);
|
||||
callJsp(req, res);
|
||||
callJsp(req, res);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue