diff --git a/.app_config b/.app_config new file mode 100644 index 0000000..512361c --- /dev/null +++ b/.app_config @@ -0,0 +1,2 @@ +apiKey_pasarela=hmngy-60lXd3pZRePVdSpItDhnC3408GvLDHU4 +imagen_pasarela=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 diff --git a/.env b/.env index 3476e44..30fdb47 100644 --- a/.env +++ b/.env @@ -5,7 +5,6 @@ APP_MODE = 0 #Variables HMNGY Middleware productivo API_URL = https://gateway.calidadbmasconsulting.com -#API_URL=https://apihmngy.stofactura.com API_KEY_DEFINITION = x-api-key API_KEY = jNJdG9zBY92NSAALgnEdsoEIRycJiAScB6pBgIADsyg= @@ -17,7 +16,7 @@ DEV_API_KEY = jNJdG9zBY92NSAALgnEdsoEIRycJiAScB6pBgIADsyg= #VARIABLES DB DB_HOST = 192.168.100.127 DB_USER = gateway -DB_PASS = 7Zrs5447JkLReHH +DB_PASS = DB_NAME = gateway #VARIABLES DB @@ -27,14 +26,17 @@ DEV_DB_PASS = DEV_DB_NAME = gateway #SAP PROD -SAP_URL=122.8.178.132 -SAP_USR=WS-USER -SAP_PASS=bmas.2024 +SAP_URL= +SAP_USR= +SAP_PASS= #SAP QAS -DEV_SAP_URL=110.238.82.143 -DEV_SAP_USR=WS-USER -DEV_SAP_PASS=bmas.2024 +DEV_SAP_URL= +DEV_SAP_USR= +DEV_SAP_PASS= #RUTAS CFDI_XML_FILE_URL = ../../facturacion/xml + +apiKey_pasarela=hmngy-60lXd3pZRePVdSpItDhnC3408GvLDHU4 +imagen_pasarela=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 diff --git a/assets/.app_config b/assets/.app_config new file mode 100644 index 0000000..9f25a38 --- /dev/null +++ b/assets/.app_config @@ -0,0 +1,2 @@ +apiKey_pasarela=your apiKey Humanergy Pasarela +imagen_pasarela=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 diff --git a/assets/css/hmngypasarela.css b/assets/css/hmngypasarela.css index 029bb7f..6ac1051 100644 --- a/assets/css/hmngypasarela.css +++ b/assets/css/hmngypasarela.css @@ -12,7 +12,7 @@ .modal-personalizado { display: none; position: fixed; - z-index: 1000; + z-index: 1078; left: 0; top: 0; width: 100vw; @@ -35,6 +35,8 @@ transition: all 0.3s ease; box-sizing: border-box; position: relative; + max-height: 100vh; /* Limita la altura máxima del modal al 90% del viewport */ + overflow-y: auto; /* Habilita el scroll vertical si el contenido excede la altura */ } .animar-entrada { @@ -48,7 +50,6 @@ } .modal-header-personalizada { - background-image: url('https://pasarela.test/assets/images/header-modalpago.png'); background-size: 100% !important; background-repeat: no-repeat !important; padding: 40px 20px 60px 20px; @@ -102,7 +103,10 @@ @media (max-width: 600px) { .modal-contenido { max-width: 95%; + max-height: 90vh; /* Limita la altura máxima del modal al 90% del viewport */ + overflow-y: auto; /* Habilita el scroll vertical si el contenido excede la altura */ } + .modal-header-personalizada img { width: 50%; diff --git a/assets/images/hmngy.png b/assets/images/hmngy.png new file mode 100644 index 0000000..3f7edd3 Binary files /dev/null and b/assets/images/hmngy.png differ diff --git a/assets/js/.env b/assets/js/.env new file mode 100644 index 0000000..32b8283 --- /dev/null +++ b/assets/js/.env @@ -0,0 +1 @@ +API_KEY=hmngy-60lXd3pZRePVdSpItDhnC3408GvLDHU4 \ No newline at end of file diff --git a/assets/js/hmngy-Pasarela.js b/assets/js/hmngy-Pasarela.js new file mode 100644 index 0000000..132f603 --- /dev/null +++ b/assets/js/hmngy-Pasarela.js @@ -0,0 +1,270 @@ +var apiKey; +var imagen_pasarela; + +async function cargarEnv() { + const response = await fetch('.app_config'); + const texto = await response.text(); + + const env = {}; + + texto.split('\n').forEach(linea => { + // Ignorar comentarios y líneas vacías + if (linea.trim() && !linea.startsWith('#')) { + const [clave, ...valores] = linea.split('='); + env[clave.trim()] = valores.join('=').trim(); + } + }); + + return env; +} + +function stripeTokenHandler(token) { + let form = document.getElementById("payment-form"); + let hiddenInput = document.createElement("input"); + hiddenInput.setAttribute("type", "hidden"); + hiddenInput.setAttribute("name", "stripeToken"); + hiddenInput.setAttribute("value", token.id); + form.appendChild(hiddenInput); +} + +// CAMBIO PRINCIPAL: Hacer que todo el DOMContentLoaded sea asíncrono +document.addEventListener("DOMContentLoaded", async () => { + + // Primero cargar el env y ESPERAR a que termine + const env = await cargarEnv(); + apiKey = env.apiKey_pasarela; + imagen_pasarela = env.imagen_pasarela; + + // Ahora sí continuar con el resto del código + fetch("https://gateway.calidadbmasconsulting.com/api/obtLavePublicaStripe", { + method: "POST", + headers: { + "Content-Type": "application/json", + "Accept": "application/json", + }, + body: JSON.stringify({ apiKey: apiKey }), + }) + .then((response) => response.json()) + .then((data) => { + stripeLlave = data[0].clave_publica; + + if (data[0].clave_publica == undefined || data[0].clave_publica == []) { + showToast("ApiKey no encontrado", "error"); + } + + const stripe = Stripe(stripeLlave); + let elements = stripe.elements(); + + let style = { + base: { + color: "#32325d", + lineHeight: "24px", + fontFamily: '"Helvetica Neue", Helvetica, sans-serif', + fontSmoothing: "antialiased", + fontSize: "16px", + "::placeholder": { + color: "#aab7c4", + }, + }, + invalid: { + color: "#fa755a", + iconColor: "#fa755a", + }, + }; + + let card = elements.create("card", { style: style }); + card.mount("#card-element"); + + card.addEventListener("change", function (event) { + let displayError = document.getElementById("card-errors"); + displayError.textContent = event.error ? event.error.message : ""; + }); + + let form = document.getElementById("payment-form"); + form.addEventListener("submit", function (event) { + event.preventDefault(); + + let cantidad = document.getElementById("amountUser").value; + let currency = document.getElementById("currency").value; + let emailUser = document.getElementById("emailUser").value; + let descripcion = document.getElementById("description").value; + let nameUsuario = document.getElementById("nameUser").value; + + console.log("PASO 1"); + + stripe.createToken(card).then(function (result) { + if (result.error) { + document.getElementById("card-errors").textContent = result.error.message; + document.getElementById("btnstripe").removeAttribute("disabled"); + } else { + stripeTokenHandler(result.token); + + let datos = []; + const formElements = form.querySelectorAll("input, select, textarea"); + formElements.forEach((el) => { + if (el.name && !el.disabled) { + datos.push({ name: el.name, value: el.value }); + } + }); + + datos.push({ name: "amount", value: cantidad }); + datos.push({ name: "name", value: nameUsuario }); + datos.push({ name: "currency", value: currency }); + datos.push({ name: "email", value: emailUser }); + datos.push({ name: "descripcion", value: descripcion }); + datos.push({ name: "urlbase", value: window.location.origin }); + datos.push({ name: "apiKey", value: apiKey }); + + console.log("DATOS ENVIADOS:", datos); + + const formBody = datos + .map((pair) => + encodeURIComponent(pair.name) + "=" + encodeURIComponent(pair.value) + ) + .join("&"); + + document.getElementById("btnstripe").style.display = "none"; + document.getElementById("mensajePago").innerHTML = ` + Espere un momento. Estamos procesando su pago. + + `; + + fetch("https://gateway.calidadbmasconsulting.com/api/createPayment", { + method: "POST", + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + body: formBody, + }) + .then((response) => response.json()) + .then((response) => { + console.log(response.success); + if (response.success) { + document.getElementById("mensajePago").innerHTML = ` + ✅ Pago realizado con éxito. ID Transacción: ${response.idTransaction} + `; + card.clear(); + } else { + document.getElementById("mensajePago").innerHTML = ` + ❌ Hubo un error: ${response.error} + `; + card.clear(); + document.getElementById("btnstripe").style.display = "inline-block"; + } + }) + .catch((error) => { + console.log(error); + document.getElementById("mensajePago").innerHTML = ` + ❌ Error de conexión o del servidor. Intente nuevamente. + `; + card.clear(); + document.getElementById("btnstripe").style.display = "inline-block"; + }); + } + }); + }); + }) + .catch((error) => { + showToast("Error: ApiKey no encontrado", "error"); + }); +}); + +window.abrirModal = function() { + const modal = document.getElementById("miModal"); + const contenido = document.getElementById("modalContenido"); + + modal.style.display = "flex"; + contenido.classList.remove("animar-salida"); + setTimeout(() => contenido.classList.add("animar-entrada"), 10); +} + +window.cerrarModal = function() { + const modal = document.getElementById("miModal"); + const contenido = document.getElementById("modalContenido"); + + contenido.classList.remove("animar-entrada"); + contenido.classList.add("animar-salida"); + + setTimeout(() => (modal.style.display = "none"), 300); +} + +// TAMBIÉN hacer asíncrono este DOMContentLoaded +document.addEventListener("DOMContentLoaded", async function () { + + // Esperar a que cargue el env si aún no está cargado + if (!apiKey || !imagen_pasarela) { + const env = await cargarEnv(); + apiKey = env.apiKey_pasarela; + imagen_pasarela = env.imagen_pasarela; + } + + const modalHTML = ` + + + `; + document.body.insertAdjacentHTML("beforeend", modalHTML); + + // Crear la URL completa + const base64Url = `data:image/webp;base64,${imagen_pasarela}`; + + // Cambiar solo la imagen del CSS + const header = document.querySelector(".modal-header-personalizada"); + header.style.backgroundImage = `url('${base64Url}')`; + + const script = document.createElement('script'); + script.src = '../../config.js'; + script.type = 'text/javascript'; + document.body.appendChild(script); +}); \ No newline at end of file diff --git a/assets/js/hmngypasarela.js b/assets/js/hmngypasarela.js index 606e6e3..fd0a530 100644 --- a/assets/js/hmngypasarela.js +++ b/assets/js/hmngypasarela.js @@ -1,4 +1,22 @@ -var apiKey = "hmngy-TGFNKK1ZDpj7fUe41OOlh9k-CoYss53A"; +var apiKey; +var imagen_pasarela; + +async function cargarEnv() { + const response = await fetch('.app_config'); + const texto = await response.text(); + + const env = {}; + + texto.split('\n').forEach(linea => { + // Ignorar comentarios y líneas vacías + if (linea.trim() && !linea.startsWith('#')) { + const [clave, ...valores] = linea.split('='); + env[clave.trim()] = valores.join('=').trim(); + } + }); + + return env; +} function stripeTokenHandler(token) { let form = document.getElementById("payment-form"); @@ -9,9 +27,16 @@ function stripeTokenHandler(token) { form.appendChild(hiddenInput); } - -document.addEventListener("DOMContentLoaded", () => { - fetch("https://gateway.calidadbmasconsulting.com/api/obtLavePublicaStripe", { +// CAMBIO PRINCIPAL: Hacer que todo el DOMContentLoaded sea asíncrono +document.addEventListener("DOMContentLoaded", async () => { + + // Primero cargar el env y ESPERAR a que termine + const env = await cargarEnv(); + apiKey = env.apiKey_pasarela; + imagen_pasarela = env.imagen_pasarela; + + // Ahora sí continuar con el resto del código + fetch("http://127.0.0.1:8000/api/obtLavePublicaStripe", { method: "POST", headers: { "Content-Type": "application/json", @@ -104,7 +129,7 @@ document.addEventListener("DOMContentLoaded", () => { `; - fetch("https://gateway.calidadbmasconsulting.com/api/createPayment", { + fetch("http://127.0.0.1:8000/api/createPayment", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded", @@ -118,10 +143,12 @@ document.addEventListener("DOMContentLoaded", () => { document.getElementById("mensajePago").innerHTML = ` ✅ Pago realizado con éxito. ID Transacción: ${response.idTransaction} `; + card.clear(); } else { document.getElementById("mensajePago").innerHTML = ` ❌ Hubo un error: ${response.error} `; + card.clear(); document.getElementById("btnstripe").style.display = "inline-block"; } }) @@ -130,6 +157,7 @@ document.addEventListener("DOMContentLoaded", () => { document.getElementById("mensajePago").innerHTML = ` ❌ Error de conexión o del servidor. Intente nuevamente. `; + card.clear(); document.getElementById("btnstripe").style.display = "inline-block"; }); } @@ -141,7 +169,7 @@ document.addEventListener("DOMContentLoaded", () => { }); }); -function abrirModal() { +window.abrirModal = function() { const modal = document.getElementById("miModal"); const contenido = document.getElementById("modalContenido"); @@ -150,7 +178,7 @@ function abrirModal() { setTimeout(() => contenido.classList.add("animar-entrada"), 10); } -function cerrarModal() { +window.cerrarModal = function() { const modal = document.getElementById("miModal"); const contenido = document.getElementById("modalContenido"); @@ -160,7 +188,16 @@ function cerrarModal() { setTimeout(() => (modal.style.display = "none"), 300); } - document.addEventListener("DOMContentLoaded", function () { +// TAMBIÉN hacer asíncrono este DOMContentLoaded +document.addEventListener("DOMContentLoaded", async function () { + + // Esperar a que cargue el env si aún no está cargado + if (!apiKey || !imagen_pasarela) { + const env = await cargarEnv(); + apiKey = env.apiKey_pasarela; + imagen_pasarela = env.imagen_pasarela; + } + const modalHTML = `