$(function () { $('form#validateCard').on('submit', function (e) { jQuery(".loader_div").show(); e.preventDefault(); $.ajax({ type: 'post', url: "/index.php?r=payCard/firstStepCard", data: $('form#validateCard').serialize(), dataType: 'json', success: function (output) { if(output.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; ////window.location.href = "index.php?r=payCard/error"; }else if(output.error == 1){ jQuery(".loader_div").show(); var token = output.token; var url = output.url; var tk = output.tk; //abrir iframe document.getElementById("ifrm").innerHTML = ""; document.getElementById("collection").innerHTML = ""; const ifrm = document.createElement("IFRAME"); ifrm.setAttribute("name", "collectionIframe"); ifrm.style.width = 1 + "px"; ifrm.style.height = 1 + "px"; document.body.appendChild(ifrm); var html = "
"; document.getElementById("collection").innerHTML += html; var stepUpForm = document.querySelector("#cardinal_collection_form"); stepUpForm.submit(); window.addEventListener( "message", function (event) { jQuery(".loader_div").show(); if (event.origin === "https://centinelapi.cardinalcommerce.com") { //llamar a servicio si la respuesta de la tarjeta requiere validacion de numeros o directo a pago $.ajax({ type: 'post', url: "/index.php?r=payCard/secondStepCard", data: $('form#validateCard').serialize(), dataType: 'json', success: function (process) { if(process.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/error"; }else if(process.error == 1){ jQuery(".loader_div").show(); var tokenSec = process.token; var urlSec = process.url; document.getElementById('inputstepup').value = tokenSec; document.getElementById('step-up-form').action = urlSec; $('#modalVerify').modal('show'); $('#modalVerify').on('shown.bs.modal', function () { var stepUpForm = document.querySelector("#step-up-form"); if (stepUpForm) stepUpForm.submit(); }); document.getElementById("endverify").addEventListener("click", function() { $('#modalVerify').modal('hide'); $.ajax({ type: 'post', url: "/index.php?r=payCard/thirdStepCard", data: $('form#validateCard').serialize(), dataType: 'json', success: function (verify) { if(verify.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; //window.location.href = "index.php?r=payCard/error"; }else if(verify.error == 1){ jQuery(".loader_div").show(); //pagar $.ajax({ type: 'post', url: "/index.php?r=payCard/paymentStepCard", data: $('form#validateCard').serialize(), dataType: 'json', success: function (paystep) { if(paystep.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/error"; }else if(paystep.error == 1){ jQuery(".loader_div").hide(); //completa el pago document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/process&idf="+tk; console.log(paystep.message); }else if(paystep.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; //window.location.href = "index.php?r=payCard/error"; } } }); }else if(verify.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; //window.location.href = "index.php?r=payCard/error"; } } }); }); }else if(process.error == 3){ jQuery(".loader_div").show(); //llamar al servio de pago directo console.log('pago directo'); $.ajax({ type: 'post', url: "/index.php?r=payCard/paymentStepCard", data: $('form#validateCard').serialize(), dataType: 'json', success: function (paystepD) { if(paystepD.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/error"; }else if(paystepD.error == 1){ jQuery(".loader_div").hide(); //completa el pago document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/process&idf="+tk; console.log(paystepD.message); }else if(paystepD.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/error"; } } }); }else if(process.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/error"; } } }); }else{ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; //window.location.href = "index.php?r=payCard/error"; } }, 10000 ); }else if(output.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/error"; } } }); }); }); $(function () { $('form#validateCardUrl').on('submit', function (e) { jQuery(".loader_div").show(); e.preventDefault(); $.ajax({ type: 'post', url: "/index.php?r=payCard/verificateCard", data: $('form#validateCardUrl').serialize(), dataType: 'json', success: function (output) { if(output.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/errorUrl"; }else if(output.error == 1){ var sjwt = output.sjwt; var cc = output.cc; var ss = output.ss; var tk = output.tk; var referenceId = output.id; document.getElementById("referenceId").value = referenceId; var order; var orderObject = { Consumer: { Account: { AccountNumber: cc } } }; order = orderObject; Cardinal.configure({ logging:{ level:'verbose' } }); Cardinal.setup('init', { jwt:sjwt, order:orderObject }); Cardinal.on('payments.setupComplete', function (setupCompleteData){ ss = setupCompleteData.sessionId; console.log("setup completion"); $.ajax({ type: 'post', url: "/index.php?r=payCard/validateCardUrl", dataType: 'json', data: $('form#validateCardUrl').serialize(), success: function (process) { if(process.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/errorUrl"; }else if(process.error == 1){ if(process.vr == 1){ Cardinal.configure({ logging: { debug: 'on', level: 'verbose' }, maxRequestRetries: 2, payment: { framework: 'inline', displayExitButton: true } }); var jwtContainer = sjwt; //JWT original var sAcsUrl = process.uj; //AcsURL que regresa CyberSource en el campo payerAuthEnrollReply_acsURL var sPayload = process.pj; //PaReq que regresa CyberSource en el campo payerAuthEnrollReply_paReq var sTransactionId = process.ij; //TransactionId que regresa CyberSource en el campo payerAuthEnrollReply_authenticationTransactionID //console.log("AcsUrl: " + sAcsUrl); //console.log("Payload: " + sPayload); //console.log("TransactionId: " + sTransactionId); var continueObj = { AcsUrl:sAcsUrl, Payload:sPayload }; var orderObj = { OrderDetails:{ TransactionId:sTransactionId } }; //console.log("jwtContainer: " + jwtContainer); Cardinal.continue('cca',continueObj,orderObj); Cardinal.on('payments.validated', function (data, ojwt) { //console.log("jwt: " + ojwt); //console.log("data: " + data); switch(data.ErrorDescription){ case "Success": // Handle successful transaction, send JWT to backend to verify console.log("payments.validated success"); document.getElementById("llrp").value = sTransactionId; $.ajax({ type: 'post', url: "/index.php?r=payCard/validateCardUrl", data: $('form#validateCardUrl').serialize(), dataType: 'json', success: function (ending) { if(ending.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/processUrl&idf="+tk; }else if(ending.error == 1){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/processUrl&idf="+tk; }else if(ending.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/errorUrl"; } } }); break; case "Noaction": // Handle no actionable outcome console.log("payments.validated noaction"); window.location.href = "index.php?r=payCard/errorUrl"; break; case "Failure": console.log("payments.validated failure"); window.location.href = "index.php?r=payCard/errorUrl"; // Handle failed transaction attempt break; case "Error": console.log("payments.validated error"); window.location.href = "index.php?r=payCard/errorUrl"; // Handle service level error break; default: console.log("payments.validated default"); jQuery(".loader_div").hide(); window.location.href = "index.php?r=payCard/errorUrl"; } }); } else if(process.vr == 0) { var referenceId = process.referenceId; document.getElementById("referenceId").value = referenceId; if(process.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/processUrl&idf="+process.token; }else if(process.error == 1){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/processUrl&idf="+process.token; }else if(process.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; //window.location.href = "index.php?r=payCard/errorUrl"; } }else{ var referenceId = process.referenceId; document.getElementById("referenceId").value = referenceId; if(process.error == 0){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/processUrl&idf="+process.token; }else if(process.error == 1){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/processUrl&idf="+process.token; }else if(process.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; //window.location.href = "index.php?r=payCard/errorUrl"; } } }else if(process.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/errorUrl"; } } }); }); }else if(output.error == 2){ jQuery(".loader_div").hide(); document.getElementById("messageCard").innerHTML = ""; window.location.href = "index.php?r=payCard/errorUrl"; } } }); }); }) function isNumberKey(evt) { var e = evt || window.event; //window.event is safer, thanks @ThiefMaster var charCode = e.which || e.keyCode; if (charCode > 31 && (charCode < 47 || charCode > 57)) return false; if (e.shiftKey) return false; return true; }