Last active
October 7, 2020 20:06
-
-
Save hawkapparel/d27b29879c8b39f241631161b0469054 to your computer and use it in GitHub Desktop.
Integración de Culqi.js con VueJs y Nuxt.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* RECIBE LA RESPUESTA DE CULQI Y LA GUARDA EN UNA VARIABLE GLOBAL */ | |
if(process.browser) { | |
window.culqi = function (token) { | |
window.__culqi_token = token | |
}; | |
} | |
export default class Culqi { | |
constructor (codigoComercio) { | |
if(process.browser) { | |
this.appendCulqiScript().then(() => { | |
window.Culqi.publicKey = codigoComercio; | |
window.Culqi.init(); | |
console.log('Culqi initialized') | |
}); | |
} | |
} | |
appendCulqiScript () { | |
return new Promise((resolve) => { | |
let c = 0; | |
if (!document.getElementById('culqui-lib')) { | |
let culqiScript = document.createElement('script'); | |
culqiScript.setAttribute('src', 'https://checkout.culqi.com/v2'); | |
culqiScript.setAttribute('id', 'culqui-lib'); | |
document.body.appendChild(culqiScript); | |
console.log('Appended culqi tag') | |
} else { console.log('tag alredy append') } | |
let checkCulqi = setInterval (() => { | |
c++; | |
if (c > 10) clearInterval(checkCulqi); // si hace más de 10 intentos termina la verificación de Culqi | |
if(window.Culqi) { | |
clearInterval(checkCulqi) | |
resolve() | |
} | |
}, 1000); | |
}); | |
} | |
createToken () { | |
return new Promise( | |
resolve => { | |
window.Culqi.createToken(); | |
/* REVISA QUE ESTÁ DISPONIBLE EL TOKEN Y RESUELVE LA PROMESA */ | |
let c = 0; | |
let checkToken = setInterval(() => { | |
c++; | |
if(c > 20) clearInterval(checkToken); | |
if (window.__culqi_token) { | |
clearInterval(checkToken); | |
console.log('token en variable', window.__culqi_token); | |
resolve(window.__culqi_token); | |
} else { } | |
}, 1000) | |
} | |
) | |
} | |
} | |
CREDITOS Y AGRADECIMIENTOS: Cristian Vega @cvega93 |
Agregaría esta linea:
if (window.__culqi_token) { window.__culqi_token = undefined }
debajo de la linea 45 para que se resetee el valor para obtener el siguiente token id. Ya que si se genera el token más de una vez me retorna el primer token generado.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hubo un cambio en la llamada a la función window.culqi. Ya no llega el token como parámetro sino está disponible en una variable global:
sería reemplazar la línea de las 2 a la 6 por esto:
if(process.browser) { window.culqi = function () { window.__culqi_token = window.Culqi }; }