Skip to content

Instantly share code, notes, and snippets.

@hawkapparel
Last active October 7, 2020 20:06
Show Gist options
  • Save hawkapparel/d27b29879c8b39f241631161b0469054 to your computer and use it in GitHub Desktop.
Save hawkapparel/d27b29879c8b39f241631161b0469054 to your computer and use it in GitHub Desktop.
Integración de Culqi.js con VueJs y Nuxt.js
/* 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
@cvega93
Copy link

cvega93 commented Feb 14, 2019

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 }; }

@anargu
Copy link

anargu commented Apr 5, 2019

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