culqi/culqi-php

Sugiero una mejora para el codigo del javascript

carmanuelz opened this issue · 1 comments

function CulqiCheckout($params) {

    var closeCallback = $params.callback,
        codigo_comercio = $params.comerce_id,
        informacion_venta = "",
        respuesta = "",
        iframe = null;

    window.addEventListener("message", receiveMessage, false);

    return {
        abrir:      abrir,
        autorizado: autorizado,
        denegado:   denegado,
        cerrar:     cerrar,
        setInformation: setInformation
    };

    function setInformation(information)
    {
        informacion_venta = information;
    }

    function abrir() {

        if (informacion_venta == "") {

            alert("Intente nuevamente. Si el problema persiste, contáctese con el Comercio.");

        } else {
            var product = "web";
            var url = "/api/v1/form/" + product + "/" + codigo_comercio + "/" + informacion_venta;
            iframe = document.createElement("IFRAME");

            iframe.setAttribute("src", "https://integ-pago.culqi.com" + url);

            iframe.setAttribute("id", "culqi_checkout_frame");
            iframe.setAttribute("name", "checkout_frame");
            iframe.setAttribute("class", "culqi_checkout");
            iframe.setAttribute("allowtransparency", "true");
            iframe.setAttribute("frameborder", "0");

            iframe.style.zIndex = 99999;
            iframe.style.display = "block";
            iframe.style.backgroundColor = "rgba(0,0,0,0)";
            iframe.style.border = "0px none trasparent";
            iframe.style.overflowX = "hidden";
            iframe.style.overflowY = "auto";
            iframe.style.visibility = "visible";
            iframe.style.margin = "0px";
            iframe.style.position = "fixed";
            iframe.style.left = "0px";
            iframe.style.top = "0px";
            iframe.style.width = "100%";
            iframe.style.height = "100%";
            iframe.style.backgroundPosition = "initial initial";
            iframe.style.backgroundRepeat = "initial initial";
            document.body.appendChild(iframe);
        }
    }

    function autorizado() {

        iframe = document.getElementById('culqi_checkout_frame');
        iframe.contentWindow.postMessage("autorizado", "*");
    }

    function denegado() {
        iframe = document.getElementById('culqi_checkout_frame');
        iframe.contentWindow.postMessage("denegado", "*");
    }
    function cerrar() {
        var element = document.getElementById("culqi_checkout_frame");
        if (element == null){
        } else {
            element.parentNode.removeChild(element);
        }
    }

    function receiveMessage(event){

        if(event.data == "checkout_cerrado"){

            respuesta = event.data;
            closeCallback(respuesta);
            cerrar();
//console.log("Cerrando checkout:" + event.data);

        } else {
            respuesta = event.data;
//console.log("Informacion recibida desde el checkout:" + event.data);
            closeCallback(respuesta);
        }

    }

}

Gracias por tu sugerencia.