Integracion EPAYCO tomcat




La integración con el botón de pago Epayco, tiene un modelo es diferente al simple pago por el modelo de integración simple que se propone dentro del portal EPAYCO esto se debe que en dicha integración las operaciones que afectan diferentes instancias de la compra solo se pueden hacer después de verificar que efectivamente el pago fue aprobado por el portal EPAYCO, ya se por PSE, Tarjeta Débito o Crédito, Cash etc.

Por ejemplo la actualización de existencias, del inventario, cartera del proveedor de contenido, aviso a al proveedor para que de inicio del envió etc.

Por esa razón se podría decir que los diferentes valores seleccionados en el carro de compras como son referencia, cantidad, valor, motivo, asunto etc, solo toman efecto cuando la trasacción que se pretende realizar se perfecciona mediante la constancia del portal de EPAYCO que en efecto el pago fue exitoso.

Paea poder implementar esta propuesta es entonces que los diferentes parámetros arriba mencionados pasen por diferentes paginas que almacenn los valores mientras se espera el resultado de la transacción.

El proceso da inicio en el el archivo PATH/moon/elementos/FacturaciónGrabar.jsp donde PATH es la ruta totalmente cualificada de la posición del archivo en el servidor.

Para este paso especifico está /usr/local/tomcat/

En todo este modelo de integración permanece constante.

Cuando se completa exitosamwente la carga del carro de compra se llama una función dentro del arechivoATH/moon/elementos/FacturaciónGrabar.jsp que envía los parámetros necesarios a ser tenidos en cuenta para el siguiente proceso.


function EpaycoPagar()

{

e_info = " ../EPAYCO/EpaycoParametros.jsp" ;

e_info += "?terceroId=" + terceroId ;

e_info += "&terceroNombre=" + terceroNombre ;

e_info += "&terceroEmail=" + terceroEmail ;

e_info += "&terceroTelefono=" + terceroTelefono ;

e_info += "&referenciaId=" + referenciaId ;

e_info += "&referenciaCantidad=" + cantidadS ;

e_info += "&referenciaAsunto=" + asuntoS ;

e_info += "&referenciaInfo=" + infoS ;

e_info += "&nombreS=" + nombreS ;

e_info += "&descripcionS=" + descripcionS ;

e_info += "&documento=" + documento ;

e_info += "&total=" + total ;

e_info += "&ivaTotal=" + ivaTotal ;

e_info += "&base=" + base ;

e_info += "&tipoS=" + tipoS ;

location=e_info ;


}

Como se puede observar esta función pasas los parámetros a una denominada, ../EPAYCO/EpaycoParametros.jsp.

EpaycoParametros tien como función principio cargar en la session del sistema propia del modelo Tomcat JSP

Pagina .jsp PATH/EPAYCO*EpaycoParametros.jsp

----------------------------------------------------------------------------------------------------------------------

<!DOCTYPE html>

<%@ page language="java"

contentType="text/html; charset=UTF-8"

buffer= "128kb"

%>

<%@ include file="../../plantillas/Head.jsp" %>

<%

String terceroId = request.getParameter("terceroId") ;

String terceroNombre = request.getParameter("terceroNombre") ;

String terceroEmail = request.getParameter("terceroEmail") ;

String terceroTelefono = request.getParameter("terceroTelefono") ;

String referenciaId = request.getParameter("referenciaId") ;

String referenciaCantidad = request.getParameter("referenciaCantidad") ;

String referenciaAsunto = request.getParameter("referenciaAsunto") ;

String referenciaInfo = request.getParameter("referenciaInfo") ;

String referenciaFecha = request.getParameter("referenciaFecha") ;

String referenciaHora = request.getParameter("referenciaHora") ;

String nombreS = request.getParameter("nombreS") ;

String descripcionS = request.getParameter("descripcionS") ;

String documento = request.getParameter("documento") ;

String total = request.getParameter("total") ;

String ivaTotal = request.getParameter("ivaTotal") ;

String base = request.getParameter("base") ;

String tipoS = request.getParameter("tipoS") ;

session.setAttribute("terceroId" ,terceroId) ;

session.setAttribute("terceroNombre" ,terceroNombre) ;

session.setAttribute("terceroEmail" ,terceroEmail) ;

session.setAttribute("terceroTelefono" ,terceroTelefono) ;

session.setAttribute("referenciaId" ,referenciaId) ;

session.setAttribute("referenciaCantidad",referenciaCantidad) ;

session.setAttribute("referenciaAsunto" ,referenciaAsunto) ;

session.setAttribute("referenciaInfo" ,referenciaInfo) ;

session.setAttribute("nombreS" ,nombreS) ;

session.setAttribute("descripcionS" ,descripcionS) ;

session.setAttribute("documento" ,documento) ;

session.setAttribute("total" ,total) ;

session.setAttribute("ivaTotal" ,ivaTotal) ;

session.setAttribute("base" ,base) ;

session.setAttribute("tipoS" ,tipoS) ;

response.sendRedirect("EpaycoPagar.jsp") ;

%>

Este modelo permite que los parámetros que vienen desde el carro de compras sean guardados en cache hasta que se necesite usarlos , esto es debido a que la integración con el bo{on de pago de EPAYCO ysa y tiene sus propia forma de pasar y devolver parámetros que en ocasiones hace que los parametros pasados desde el carrito de compras se pierdan y no llegue a las instancia que se requieren para actualizar los inventarios, actualizar existencias, avisos etc.

Como se observa la pagina anterior guarda los parámetros en cache mediante el mecanismo session de Tomcat JSP sin que ademas desvía el flujo del programa a PATH/EPAYCO/EpaycoPagar.jsp en este caso el PATH y la carpertea EPAYCO se obvia porque esta en la misma carpeta de EpaycoParametyros.jsp


Esta pagina es la sugerida por EPAYCO para enviar el pago a su portal y devuelve una respuesta dependiendo i la transaccion fue aceptada, rechazada , quedo pendiente o cancelado.

La pagina se uso tal cual EPAYCO sugiere para el modelo que ellos denominan de repuesta dinámica teniendo en cuenta algunas aclaraciones puntuales sobre algunos parámetros de interés especifico para el caso que nos ocupa.

Por ejemplo:

response: Es el parámetro en la invocación del botón de pago para pagina dinámica sobre la cual el portal EPAYCO devuelve es estado de la transacción,

Observar que la url de response una totalmente cualificado porque esa pagina es llamada desde el portal de EPAYCO que esta fuera del ámbito de la aplicación que se esta integrando para el pago de la transacción y obvio que el portal EPAYCO no sabe a donde deseamos dirigir su respuestas sino se lo decimos de forma explicita en el caso actual seria:

"https://moonenlinea.com/moon/elementos/EPAYCO/EpaycoResponse.jsp"

El parámetro external le indica a EPAYCO si deseamos mantener todo el pago dentro del mismo ámbito de la ampliación que está usando el botón de pago o si se desea que abandone la sesión de trabajo actual y cree una nueva

En esa integración colocamos external = “false” porque queremos que se mantenga en la misma session para poder consultar parámetros que podamos necesitar lo los pasados mediante EpaycoParametros.jsp desde el carro de compras.

Los atributos opcionales denominados extra1.. extra9 los usamos para pasar los valores antes definidos en la session de Tomcar JSP , para el portal EPAYCO nos los devuelva conjuntamente con la la respuesta sobre el estado de pago. De observar que aunque el modelo de integración que sugieren algunos de los parámetros que se necesitan al retorno del estado, la respuesta NO los devuelve como uno esperaria, ya que solo devuelve el estado de la transacción y los atributos definidos en extras .

Por eso se requier definirlos nuevamente en el modleo EPAYCIO,

Una descripción muy detallada de los restantes parámetros se encuentra de el portal de integración de EPAYCO

Pagina PATH/EPAYCO/EpaycoPagar.jsp

<!DOCTYPE html>

<%@ page language="java"

contentType="text/html; charset=UTF-8"

buffer= "128kb"

%>

<%@ include file="../../plantillas/Head.jsp" %>

<script type="text/javascript" src="https://checkout.epayco.co/checkout.js"> </script>

<script>

terceroId = '<%=session.getAttribute("terceroId")%>' ;

terceroNombre = '<%=session.getAttribute("terceroNombre")%>' ;

terceroEmail = '<%=session.getAttribute("terceroEmail")%>' ;

terceroTelefono = '<%=session.getAttribute("terceroTelefono")%>' ;

nombreS = '<%=session.getAttribute("nombreS")%>' ;

nombreS = nombreS.replaceAll(":","") ;

descripcionS = '<%=session.getAttribute("descripcionS")%>' ;

descripcionS = descripcionS.replaceAll(":","") ;

documento = '<%=session.getAttribute("documento")%>' ;

total = '<%=session.getAttribute("total")%>' ;

ivaTotal = '<%=session.getAttribute("ivaTotal")%>' ;

base = '<%=session.getAttribute("base")%>' ;

tipoS = '<%=session.getAttribute("tipoS")%>' ;

referenciaId = '<%=session.getAttribute("referenciaId")%>' ;

referenciaAsunto = '<%=session.getAttribute("referenciaAsunto")%>' ;

referenciaInfo = '<%=session.getAttribute("referenciaInfo")%>' ;

referenciaInfo = '<%=session.getAttribute("referenciaInfo")%>' ;

referenciaCantidad = '<%=session.getAttribute("referenciaCantidad")%>' ;

function Epayco()

{

handler = ePayco.checkout.configure({

key : '45012’344b960805ced5c27ce34b1600b4b9f54',

test: true

})

})

var data={

//Parametros compra (obligatorio)

name : nombreS,

description : descripcionS,

invoice : documento,

amount : (total + ivaTotal),

tax_base : base,

tax : ivaTotal,

currency : "cop",

country : "CO",

lang : "es",

//Onpage="false" - Standard="true"

external : "false",

//Atributos opcionales

extra1 : terceroId,

extra2 : terceroNombre,

extra3 : nombreS,

extra4 : descripcionS,

extra5 : referenciaId,

extra6 : referenciaAsunto,

extra7 : referenciaInfo,

extra8 : referenciaCantidad,

extra9 : tipoS,

response : "https://moonenlinea.com/moon/elementos/EPAYCO/EpaycoResponse.jsp",

//Atributos cliente

name_billing : terceroNombre,

address_billing : terceroEmail,

email_billing : terceroEmail,

type_doc_billing : "cc",

mobilephone_billing: terceroTelefono,

number_doc_billing : terceroId

//atributo deshabilitación metodo de pago

// methodsDisable: ["TDC", "PSE","SP","CASH","DP"]

}

handler.open(data) ;

}

window.addEventListener('load', function (event)

{

Epayco() ;

}) ;


Pagina PATH/EPAYCO/EpaycoPagar.jsp

El parámetro response desvía entonces el estado de la transacción para que el proceso de actualizaciones y envíos de información procesa de acuerdo a lo que el portal notifica, el desvió se hace sobre la pagina PATH/EPAYCO/EpaycoRespnse.jsp.

En esta pagina se procesa el resto de las acciones a efectuar dependiendo del estado de la transacción.

PATH/EPAYCO/EpaycoResponse.jsp

<!DOCTYPE html>

<html lang="es">

<head>

<meta charset="utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->

<title>Formulario Respuesta EPAYCO</title>

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->

<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->

<!--[if lt IE 9]>

<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>

<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>

<![endif]-->

<%@ include file="../../plantillas/Head.jsp" %>

<%@ include file="../BACKOFFICE/EmpresaInfo.jsp" %>

<%@ include file="../AGENTES/AgentesInfo.jsp" %>

<%@ include file="../CARTERAS/CarterasVariables.jsp" %>

<%@ include file="../CARTERAS/CarterasUtil.jsp" %>

<%@ include file="../FACTURACION_POS/FacturacionVariables.jsp" %>

<%@ include file="../FACTURACION_POS/FacturacionUtil.jsp" %>

<%@ include file="../FACTURACION_POS/FacturacionSendMail.jsp" %>

<%@ include file="../FACTURACION_POS/FacturacionSMS.jsp" %>

<%@ include file="../FACTURACION_POS/FacturacionHttpClient.jsp"%>

</head>

<body>

<header id="main-header" style="margin-top:20px">

<div class="row">

<div class="col-lg-12 franja">

<img src= "../../resources/imagenes/slide2.png">

</div>

</div>

</header>

<div class="container">

<div class="row" style="margin-top:20px">

<div class="col-lg-8 col-lg-offset-2 ">

<h4 style="text-align:left"> Respuesta de la Transacci&oacute;n </h4>

<br>

<div id="proceso">

<h5> <span class="text-secondary"><b> Transacci&oacute;n en proceso</b><span></h5>

<br>

<div class="fa-2x text-align:center text-success">

<i class="fas fa-spinner fa-spin"></i>

</div>

</div>

<div class="text-success fa-2x" id="estadoTransaccion"></div>

<hr>

</div>

<br>

<div class="col-lg-8 col-lg-offset-2 ">

<div class="table-responsive">

<table class="table1 table-bordered" >

<tbody>

<tr>

<td>Referencia</td>

<td id="referencia"></td>

</tr>

<tr>

<td class="bold">Fecha</td>

<td id="fecha" class=""></td>

</tr>

<tr>

<td>Respuesta</td>

<td id="respuesta"></td>

</tr>

<tr>

<td>Motivo</td>

<td id="motivo"></td>

</tr>

<tr>

<td class="bold">Recibo</td>

<td id="recibo"></td>

</tr>

<tr>

<td class="bold">terceroId</td>

<td class="" id="terceroId">

</tr>

<tr>

<td class="bold">terceroNombre</td>

<td class="" id="terceroNombre">

</tr>


<tr>

<td class="bold">Producto ID</td>

<td class="" id="referenciaId">

</td>

</tr>


<tr>

<td class="bold">Producto</td>

<td class="" id="nombreS">

</td>

</tr>

<tr>

<td class="bold">Descripci&oacute;n</td>

<td class="" id="descripcionS">

</td>

</tr>

<tr>

<td id="labelTipo" class="bold">Tipo</td>

<td id="tipoS" class="" id="tipoS">

</td>

</tr>

<tr>

<td class="bold">Cantidad</td>

<td class="" id="referenciaCantidad">

</td>

</tr>

<tr>

<td class="bold">Asunto</td>

<td class="" id="referenciaAsunto">

</td>

</tr>

<tr>

<td class="bold">Info</td>

<td class="" id="referenciaInfo">

</td>

</tr>

<tr>

<td class="bold">Total</td>

<td class="" id="totalCOP">

</td>

</tr>

<tr>

<td id="labelIva" class="bold"></td>

<td class="" id="ivaTotal">

</td>

</tr>

<tr>

<td id="labelTotal"class="bold"></td>

<td class="" id="total">

</td>

</tr>

</tbody>

</table>

</div>

</div>

</div>

</div>

<div id="botonSalir" align="center" ></div>

<br>

<footer>

<div class="row">

<div class="container">

<div class="col-lg-8 col-lg-offset-2">

<img src="https://369969691f476073508a-60bf0867add971908d4f26a64519c2aa.ssl.cf5.rackcdn.com/btns/epayco/pagos_procesados_por_epay\

co_260px.png" style="margin-top:10px; float:left"> <img src="https://369969691f476073508a-60bf0867add971908d4f26a64519c2aa.ssl.cf5.rackcdn.\

com/btns/epayco/credibancologo.png"

height="40px" style="margin-top:10px; float:right">

</div>

</div>

</div>

</footer>

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js"></script>

<!-- Include all compiled plugins (below), or include individual files as needed -->

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<script>

function getQueryParam(param) {

location.search.substr(1)

.split("&")

.some(function(item) { // returns first occurence and stops

return item.split("=")[0] == param && (param = item.split("=")[1])

})

return param

}

$(document).ready(function() {

//llave publica del comercio



//Referencia de payco que viene por url

var ref_payco = getQueryParam('ref_payco');

//Url Rest Metodo get, se pasa la llave y la ref_payco como paremetro

var urlapp = "https://secure.epayco.co/validation/v1/reference/" + ref_payco;



$.get(urlapp, function(response) {

if (response.success) {

/* Esto es equivalente setValue() */

$('#fecha').html(CtoD(response.data.x_transaction_date));

$('#respuesta').html(response.data.x_response);

$('#referencia').text(response.data.x_id_invoice);

$('#motivo').text(response.data.x_response_reason_text);

$('#autorizacion').text(response.data.x_approval_code);

$('#recibo').text(response.data.x_transaction_id) ;

$('#terceroId').text(response.data.x_extra1);

$('#terceroNombre').text(response.data.x_extra2) ;

$('#nombreS').text(response.data.x_extra3);

$('#descripcionS').text(response.data.x_extra4) ;

$('#referenciaId').text(response.data.x_extra5 ) ;

$('#referenciaAsunto').text(response.data.x_extra6 ) ;

$('#referenciaInfo').text(response.data.x_extra7) ;

$('#referenciaCantidad').text(response.data.x_extra8 );

$('#tipoS').text(response.data.x_extra9 );

$('#ivaTotal').text(response.data.x_tax);

//************************************************************

terceroId = dwr.util.getValue("terceroId") ;

referenciaId = dwr.util.getValue("referenciaId") ;

referenciaCantidad = dwr.util.getValue("referenciaCantidad") ;

referenciaAsunto = dwr.util.getValue("referenciaAsunto") ;

referenciaInfo = dwr.util.getValue("referenciaInfo") ;

tipoS = dwr.util.getValue("tipoS") ;

ivaTotal = Valor(dwr.util.getValue("ivaTotal")) ;

total = Valor(dwr.util.getValue("total")) ;

info = "?motivo=" + dwr.util.getValue("motivo") ;

info += "&terceroId=" + dwr.util.getValue("terceroId") ;

info += "&terceroNombre=" + dwr.util.getValue("terceroNombre") ;

info += "&nombreS=" + dwr.util.getValue("nombreS") ;

info += "&descripcionS=" + dwr.util.getValue("descripcionS") ;

info += "&referenciaCantidad=" + dwr.util.getValue("referenciaCantidad") ;

info += "&total=" + formatNd(dwr.util.getValue("total"),2) ;

$('#totalCOP').text(formatNd(response.data.x_amount,2) + ' ' + response.data.x_currency_code);

if (response.data.x_cod_response == 1) {

//Codigo personalizado

dwr.util.byId("estadoTransaccion").innerHTML = "Transacci&oacute;n Aceptada";

}

//Transaccion Rechazada

if (response.data.x_cod_response == 2) {

location="EpaycoRechazada.jsp" + info;

}

//Transaccion Pendiente

if (response.data.x_cod_response == 3) {

location="EpaycoPendiente.jsp" + info;

}

//Transaccion Fallida

if (response.data.x_cod_response == 4) {

location="EpaycoFallida.jsp" + info;

}

} else {

alert("Error consultando la información");

}



var c = {

terceroId :terceroId,

terceroEntorno :entorno

} ;





dwr.engine.setAsync(false) ;

zephyrHandler.TercerosConsultar( usuarioDB,

c,

{



terceroId = f.terceroId ;

terceroCodigo = f.terceroCodigo ;

terceroNombre = f.terceroNombre ;

terceroTelefono = f.terceroTelefono ;

terceroEmail = f.terceroEmail ;

terceroDireccion = f.terceroDireccion ;

terceroTipo = f.terceroTipo ;

terceroEstado = f.terceroEstado ;



terceroRegistro = f.terceroRegistro ;

terceroTimeStamp = f.terceroTimeStamp ;



ReferenciasInfo() ;//Carga la informacion del pedido a pagar en FacturacionGrabar()

}



function ReferenciasInfo(f)

{

var c = {

referenciaId :referenciaId,

referenciaEntorno :entorno

} ;

dwr.engine.setAsync(false) ;

zephyrHandler.ReferenciasConsultar( usuarioDB,

c,

ReferenciasDatos

) ;





}



function ReferenciasDatos(f)

{



ivaReferencia = 0 ;

descuentoTotal = 0 ;

base = 0 ;//Base para calculo del IVA

ingresoBruto = 0 ;//La suma de los subtotales





referenciaId = f.referenciaId ;

referenciaNombre = (f.referenciaNombre != null ? f.referenciaNombre : "") ;

referenciaDescripcion= (f.referenciaDescripcion != null ? f.referenciaDescripcion: "") ;

referenciaEmpaque = (f.referenciaEmpaque != null ? f.referenciaEmpaque : "") ;



referenciaVenta1 = (f.referenciaVenta1 != null ? f.referenciaVenta1 : "") ;

referenciaDescuento = (f.referenciaDescuento != null ? f.referenciaDescuento : "") ;



referenciaIVA = (f.referenciaIVA != null ? f.referenciaIVA : "") ;

referenciaIVAValor = (f.referenciaIVAValor != null ? f.referenciaIVAValor : "") ;

referenciaExistencia = (f.referenciaExistencia != null ? f.referenciaExistencia : "") ;

referenciaInventario = (f.referenciaInventario == "Si" ? f.referenciaInventario : "") ;



referenciaTipo = (f.referenciaTipo != null ? f.referenciaTipo : "") ;

referenciaRegistro = f.referenciaRegistro ;



referenciaCantidad = referenciaCantidad ;//La cantidad se ingresa cuando se elije la referencia a comprar.



referenciaSubTotal = Valor(referenciaCantidad) * Valor(referenciaVenta1) ;

descuento = referenciaVenta1 * referenciaDescuento/100.0 ;

descuentoTotal += descuento ;



ingresoBruto += Valor(referenciaCantidad) * Valor(referenciaVenta1) ;//La suma de los subtotales

referenciaSubTotal = Valor(referenciaCantidad) * Valor(referenciaVenta1) - descuento ;



valorUnd = referenciaVenta1/(referenciaCantidad);



idS += referenciaId + ":" ;

nombreS += referenciaNombre + ":" ;

descripcionS+= referenciaDescripcion+ ":" ;

cantidadS += referenciaCantidad + ":" ;

ventaUndS += valorUnd + ":" ;

ventaS += referenciaVenta1 + ":" ;

descuentoS += referenciaDescuento + ":" ;

descuentoVS += descuento + ":" ;



ivaS += referenciaIVA + ":" ;//Discriminado, incluido

ivaPorcS += referenciaIVAValor + ":" ;// 5%, 19%

ivaVS += ivaReferencia + ":" ;// calculo de iva venta * ivaPorc/100

subTotalS += referenciaSubTotal + ":" ;

inventarioS += referenciaInventario + ":" ;

existenciaS += referenciaExistencia + ":" ;

empaqueS += referenciaEmpaque + ":" ;

tipoS = referenciaTipo ;// estandar , cita , cotizaacion

infoS = referenciaInfo ;// informacion de la cita

asuntoS = referenciaAsunto ;// asunto de la cita.

if (tipoS == "estandar")

{

modoTransaccion = " " ;

}

else

{

modoTransaccion = tipoS ;

}

if (referenciaInventario == "S1")

{

ReferenciassExistencia()

}

ReferenciasSalir()

}

function ReferenciasExistencia(estado)

{

var c = {

referenciaId : idS,

referenciaExistencia: cantidadS,

referenciaInventario: inventarioS,

referenciaValor : ventaS,

referenciaEntorno : entorno

}

dwr.engine.setAsync(false);

zephyrHandler.ReferenciasEditarExistencia( usuarioDB,

c

) ;


}

function ReferenciaAgente()

{

//Consulta la tabla de referencias para conseguir la informacion del agente proveedor de conrtenido.

idSTmp = idS.split(":") ;//El menos 1 se debe a que el algoritmo actual agrega ; al final.

for (var i = 0 ; i < (idSTmp.length - 1) ; i++)

{

var referenciaIdTmp = idSTmp[i] ;

var c = {

referenciaId : referenciaIdTmp,

referenciaEntorno : entorno

}

dwr.engine.setAsync(false);

zephyrHandler.ReferenciasConsultar( usuarioDB,

c,

{

callback:function(f)

{

agenteIdS += asignar(f.referenciaAgente) + ";";

agenciaIdS += f.referenciaAgente.substring(1,parseInt(agenciaLen)) + ";";

sucursalIdS += f.referenciaAgente.substring(1,parseInt(sucursalLen)) + ";";

distribuidorIdS += f.referenciaAgente.substring(1,parseInt(distribuidorLen))+ ";";

referenciaComisionS = f.referenciaComision ;

}

}

) ;

}

}



function ReferenciasSalir(estado)

{



document.getElementById("proceso").style.display="none" ;

document.getElementById("tipoS").style.display="none" ;//Valores no son de interes para el usuario

document.getElementById("ivaTotal").style.display="none" ;

document.getElementById("total").style.display="none" ;

document.getElementById("tipoS").style.display="none" ;

document.getElementById("labelIva").style.display="none" ;

document.getElementById("labelTotal").style.display="none" ;

document.getElementById("labelTipo").style.display="none" ;

ReferenciaAgente() ;

AgenteInfo() ;

CarterasCrear() ;

FacturacionCrear() ;

msg = "<div class='btn-toolbar' role='toolbar' >"

msg += " <button style='background-color1:#55d29c;color1:#000000;height:50px;border-radius:10%;' "

msg += " onclick=location='../../elements/MENU/Menu.jsp' "

msg += " >"

msg += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<%=session.getAttribute("salir")%>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'

msg += " </button> "

msg += "</div>"

dwr.util.byId("botonSalir").innerHTML = msg;

}

}); // cierra la funcio jquery

}); // cierra el ready

</script>

</body>

</html>


Esta pagina hace llamado a diferentes procedimientos como son el modulo de facturación, y se envió de correos y SMS que son usados de acuerdo al desarrollo general del sistema y que van mas allá de el modelo de integración con EPAYCO

Por otra parte las paginas de Rechazo , Pendiente son unas simples paginas html sonde dan cuerna del estado de la transacción y el el porque del estado del mismo

El modelo es similar para este tipo de respuesta a la transaccional solo cambia el mensaje de notificación del estado y regresa al menú principal del usuario.

Pagina PATH/EPAYCO/EpaycoRechaada.jsp

<!DOCTYPE html>

<%@ page language="java"

contentType="text/html; charset=UTF-8"

session="true"

%>

<html lang="es">

<head>

<meta charset="utf-8">

<title>Transaccion rechazada</title>

<%@ include file="../../plantillas/Head.jsp" %>

</head>

<body>

<img src= "../../resources/imagenes/slide2.png">

<div class="container-fluid">

<center>

<br><br>

<h5> <span class="text-danger"><b> Transacci&oacute;n rechazada </b><span></h5>

<br>

<table class="table-bordered">

<tr><td class="text-dark"> Motivo rechazo </td><td><%=request.getParameter("motivo")%> </td></tr>

<tr><td class="text-dark"> ID </td><td><%=request.getParameter("terceroId")%> </td></tr>

<tr><td class="text-dark"> Nomtre </td><td><%=request.getParameter("terceroNombre")%> </td></tr>

<tr><td class="text-dark"> Referencia </td><td><%=request.getParameter("nombreS")%> </td></tr>

<tr><td class="text-dark"> Descripci&oacute;n </td><td><%=request.getParameter("descripcionS")%> </td></tr>

<tr><td class="text-dark"> Cantidad </td><td><%=request.getParameter("referenciaCantidad")%></td></tr>

<tr><td class="text-dark"> Total COP </td><td><%=request.getParameter("total")%> </td>

</table>

<button type="button"

title="Ir p&aacute;gina de inicio"

class="btn bg-danger text-light"

onclick="Estado()"

>

Salir

</button>

</center>

</div>

<script>

function Estado()

{

location = "../../elements/MENU/Menu.jsp"

}

</script>

</body>

</html>

Comentarios

Entradas populares