{"id":653,"date":"2026-09-19T15:35:34","date_gmt":"2026-09-19T15:35:34","guid":{"rendered":"https:\/\/machupicchuexploration.com\/pay\/"},"modified":"2026-10-03T17:10:02","modified_gmt":"2026-10-03T17:10:02","slug":"metodos-de-pago","status":"publish","type":"page","link":"https:\/\/machupicchuexploration.com\/es\/metodos-de-pago\/","title":{"rendered":"M\u00e9todos de pago"},"content":{"rendered":"<div class=\"ably-plugin-wrap\">\n<div class=\"ably-quick-payment-shell\" style=\"--ably-quick-brand: #103356;\">\n    <div class=\"ably-quick-payment-card\">\n        <div class=\"ably-quick-payment-header\">\n            <span class=\"ably-quick-payment-mark\" aria-hidden=\"true\">\n                <i class=\"fas fa-lock\"><\/i>\n            <\/span>\n            <div>\n                <p class=\"ably-quick-payment-kicker\">Secure payment<\/p>\n                <h3>Enter the amount to pay<\/h3>\n            <\/div>\n        <\/div>\n\n        <form id=\"ably-quick-payment-form\" class=\"ably-quick-payment-form\">\n            <label class=\"ably-quick-payment-field\" for=\"quick-payment-tour\">\n                <span>Tour \/ Trek<\/span>\n                <span class=\"ably-quick-payment-control\">\n                    <i class=\"fas fa-route\" aria-hidden=\"true\"><\/i>\n                    <select id=\"quick-payment-tour\">\n                        <option value=\"0\">Select a Tour \/ Trek (Optional)<\/option>\n                                            <\/select>\n                <\/span>\n            <\/label>\n\n            <label class=\"ably-quick-payment-field\" for=\"quick-payment-amount\">\n                <span>Amount<\/span>\n                <span class=\"ably-quick-payment-control\">\n                    <i class=\"fas fa-dollar-sign\" aria-hidden=\"true\"><\/i>\n                    <input type=\"number\" id=\"quick-payment-amount\" step=\"0.01\" min=\"1\" placeholder=\"Amount (USD)\" required \/>\n                <\/span>\n            <\/label>\n\n            <label class=\"ably-quick-payment-field\" for=\"quick-payment-email\">\n                <span>Email Address<\/span>\n                <span class=\"ably-quick-payment-control\">\n                    <i class=\"fas fa-envelope\" aria-hidden=\"true\"><\/i>\n                    <input type=\"email\" id=\"quick-payment-email\" placeholder=\"Email Address\" required \/>\n                <\/span>\n            <\/label>\n\n            <div class=\"ably-quick-payment-note\">\n                <span>Payment fee<\/span>\n                <strong>6%<\/strong>\n            <\/div>\n\n            <div class=\"ably-quick-payment-total\" aria-live=\"polite\">\n                <span>Estimated total<\/span>\n                <strong id=\"quick-payment-total\">$0.00<\/strong>\n            <\/div>\n\n            \n            <button type=\"submit\" id=\"quick-payment-submit\" class=\"ably-quick-payment-submit\">\n                <span>Process Payment<\/span>\n                <span id=\"quick-payment-spinner\" class=\"ably-hidden\" style=\"display: none;\">\n                    <i class=\"fas fa-spinner fa-spin\"><\/i>\n                <\/span>\n            <\/button>\n\n            <!-- Izipay Popin Div (trigger button hidden via CSS) -->\n            <div class=\"ably-izipay-popin-container\">\n                <div class=\"kr-smart-form\" kr-popin kr-card-form-expanded><\/div>\n            <\/div>\n        <\/form>\n    <\/div>\n<\/div>\n\n<style>\n    .ably-quick-payment-shell {\n        box-sizing: border-box;\n        width: min(100%, 440px);\n        margin: clamp(24px, 5vw, 56px) auto;\n        padding: 0 16px;\n        color: #0f172a;\n        font-family: inherit;\n    }\n\n    .ably-quick-payment-shell *,\n    .ably-quick-payment-shell *::before,\n    .ably-quick-payment-shell *::after {\n        box-sizing: border-box;\n    }\n\n    .ably-quick-payment-card {\n        position: relative;\n        overflow: hidden;\n        width: 100%;\n        padding: clamp(22px, 5vw, 32px);\n        border: 1px solid rgba(148, 163, 184, 0.26);\n        border-radius: 18px;\n        background:\n            linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.96));\n        box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);\n    }\n\n    .ably-quick-payment-card::before {\n        content: \"\";\n        position: absolute;\n        inset: 0 0 auto 0;\n        height: 3px;\n        background: var(--ably-quick-brand);\n    }\n\n    .ably-quick-payment-header {\n        display: flex;\n        align-items: center;\n        gap: 14px;\n        margin: 0 0 24px;\n    }\n\n    .ably-quick-payment-mark {\n        display: inline-flex;\n        flex: 0 0 42px;\n        width: 42px;\n        height: 42px;\n        align-items: center;\n        justify-content: center;\n        border-radius: 12px;\n        color: var(--ably-quick-brand);\n        background: color-mix(in srgb, var(--ably-quick-brand), white 88%);\n    }\n\n    .ably-quick-payment-kicker {\n        margin: 0 0 2px;\n        color: #64748b;\n        font-size: 11px;\n        font-weight: 800;\n        line-height: 1.2;\n        text-transform: uppercase;\n        letter-spacing: 0.08em;\n    }\n\n    .ably-quick-payment-header h3 {\n        margin: 0;\n        color: #111827;\n        font-size: clamp(20px, 4vw, 24px);\n        font-weight: 800;\n        line-height: 1.16;\n        letter-spacing: 0;\n    }\n\n    .ably-quick-payment-form {\n        display: grid;\n        gap: 16px;\n        margin: 0;\n        padding: 0;\n    }\n\n    .ably-quick-payment-field {\n        display: grid;\n        gap: 7px;\n        margin: 0;\n        color: #334155;\n        font-size: 12px;\n        font-weight: 750;\n        line-height: 1.2;\n    }\n\n    .ably-quick-payment-control {\n        display: flex;\n        min-height: 50px;\n        align-items: center;\n        gap: 12px;\n        border: 1px solid #d8e0ea;\n        border-radius: 12px;\n        background: #ffffff;\n        color: #94a3b8;\n        transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;\n    }\n\n    .ably-quick-payment-control:focus-within {\n        border-color: var(--ably-quick-brand);\n        box-shadow: 0 0 0 4px color-mix(in srgb, var(--ably-quick-brand), transparent 84%);\n        background: #fff;\n    }\n\n    .ably-quick-payment-control > i {\n        width: 18px;\n        margin-left: 16px;\n        color: #94a3b8;\n        font-size: 13px;\n        text-align: center;\n    }\n\n    .ably-quick-payment-control select,\n    .ably-quick-payment-control input {\n        width: 100%;\n        min-width: 0;\n        height: 48px;\n        margin: 0;\n        padding: 0 14px 0 0;\n        border: 0 !important;\n        outline: 0;\n        background: transparent;\n        box-shadow: none !important;\n        color: #0f172a;\n        font: inherit;\n        font-size: 14px;\n        font-weight: 600;\n        line-height: 1;\n    }\n\n    .ably-quick-payment-control select {\n        cursor: pointer;\n    }\n\n    .ably-quick-payment-control input::placeholder {\n        color: #94a3b8;\n        font-weight: 500;\n    }\n\n    .ably-quick-payment-note {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        gap: 12px;\n        min-height: 42px;\n        margin-top: 2px;\n        padding: 10px 13px;\n        border: 1px solid #e2e8f0;\n        border-radius: 12px;\n        background: #f8fafc;\n        color: #64748b;\n        font-size: 12px;\n        font-weight: 700;\n    }\n\n    .ably-quick-payment-note strong {\n        color: #0f172a;\n        font-size: 13px;\n    }\n\n    .ably-quick-payment-total {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        gap: 12px;\n        padding: 0 2px;\n        color: #334155;\n        font-size: 13px;\n        font-weight: 750;\n    }\n\n    .ably-quick-payment-total strong {\n        color: #0f172a;\n        font-size: 18px;\n        font-weight: 850;\n    }\n\n    .ably-quick-payment-submit {\n        display: inline-flex;\n        width: 100%;\n        min-height: 52px;\n        align-items: center;\n        justify-content: center;\n        gap: 10px;\n        margin: 4px 0 0;\n        padding: 14px 18px;\n        border: 0;\n        border-radius: 13px;\n        background-color: var(--ably-quick-brand) !important;\n        background-image: none !important;\n        color: #ffffff !important;\n        cursor: pointer;\n        font-size: 14px;\n        font-weight: 800;\n        line-height: 1;\n        text-decoration: none;\n        box-shadow: none !important;\n        transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;\n    }\n\n    .ably-quick-payment-submit:hover {\n        filter: brightness(0.96);\n        transform: translateY(-1px);\n        box-shadow: none !important;\n    }\n\n    .ably-quick-payment-submit:disabled {\n        cursor: not-allowed;\n        opacity: 0.72;\n        transform: none;\n        box-shadow: none !important;\n    }\n\n    .ably-izipay-popin-container .kr-popin-button,\n    .ably-izipay-popin-container .kr-smart-form-modal-button,\n    .ably-izipay-popin-container .kr-smart-button {\n        display: none !important;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-shell {\n        color: #d4d4d4;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-card {\n        border-color: rgb(48 48 48 \/ 1);\n        background: rgb(17 17 17 \/ var(--tw-bg-opacity, 1));\n        box-shadow: 0 18px 45px rgb(0 0 0 \/ 0.28);\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-mark {\n        color: var(--ably-quick-brand);\n        background: color-mix(in srgb, var(--ably-quick-brand), rgb(17 17 17) 84%);\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-kicker {\n        color: #a3a3a3;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-header h3,\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-note strong,\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-total strong {\n        color: #f9fafb;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-field,\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-note,\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-total {\n        color: #d4d4d4;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-control {\n        border-color: rgb(48 48 48 \/ 1);\n        background: rgb(17 17 17 \/ var(--tw-bg-opacity, 1));\n        color: #a3a3a3;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-control:focus-within {\n        border-color: var(--ably-quick-brand);\n        background: rgb(17 17 17 \/ var(--tw-bg-opacity, 1));\n        box-shadow: 0 0 0 3px color-mix(in srgb, var(--ably-quick-brand), transparent 78%);\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-control > i {\n        color: #a3a3a3;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-control select,\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-control input {\n        color: #f9fafb;\n        background: transparent;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-control select option {\n        background: rgb(17 17 17);\n        color: #f9fafb;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-control input::placeholder {\n        color: #8a8a8a;\n    }\n\n    :where(.dark, .ably-dark, [data-theme=\"dark\"], [data-color-scheme=\"dark\"]) .ably-quick-payment-note {\n        border-color: rgb(48 48 48 \/ 1);\n        background: rgb(23 23 23 \/ var(--tw-bg-opacity, 1));\n    }\n\n    @media (max-width: 480px) {\n        .ably-quick-payment-shell {\n            padding: 0 12px;\n        }\n\n        .ably-quick-payment-card {\n            border-radius: 15px;\n        }\n    }\n<\/style>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    const form = document.getElementById('ably-quick-payment-form');\n    const submitBtn = document.getElementById('quick-payment-submit');\n    const spinner = document.getElementById('quick-payment-spinner');\n    const amountInput = document.getElementById('quick-payment-amount');\n    const totalDisplay = document.getElementById('quick-payment-total');\n\n    if (!form) return;\n\n    \/\/ Direct WordPress configuration mappings to ensure script is fully self-contained\n    const ajaxUrl = 'https:\/\/machupicchuexploration.com\/wp-admin\/admin-ajax.php';\n    const nonce = '01847400e4';\n    const pluginUrl = 'https:\/\/machupicchuexploration.com\/wp-content\/plugins\/toursbooking\/';\n    const feePercent = 6;\n\n    function updateEstimatedTotal() {\n        if (!amountInput || !totalDisplay) return;\n\n        const amount = parseFloat(amountInput.value);\n        const safeAmount = isNaN(amount) || amount <= 0 ? 0 : amount;\n        const total = safeAmount + (safeAmount * (feePercent \/ 100));\n\n        totalDisplay.textContent = `$${total.toFixed(2)}`;\n    }\n\n    if (amountInput) {\n        amountInput.addEventListener('input', updateEstimatedTotal);\n        updateEstimatedTotal();\n    }\n\n    form.addEventListener('submit', function(e) {\n        e.preventDefault();\n\n        const amount = parseFloat(amountInput.value);\n        const email = document.getElementById('quick-payment-email').value.trim();\n        const tourId = parseInt(document.getElementById('quick-payment-tour').value);\n\n        if (isNaN(amount) || amount <= 0) {\n            swal(\"Error\", \"Please enter a valid amount.\", \"error\");\n            return;\n        }\n\n        if (!email) {\n            swal(\"Error\", \"Please enter a valid email address.\", \"error\");\n            return;\n        }\n\n        \/\/ Disable button & show spinner\n        submitBtn.disabled = true;\n        if (spinner) {\n            spinner.style.display = 'inline-block';\n            spinner.classList.remove('ably-hidden');\n        }\n\n        const formData = new FormData();\n        formData.append('action', 'process_quick_payment');\n        formData.append('nonce', nonce);\n        formData.append('amount', amount);\n        formData.append('email', email);\n        formData.append('tour_id', tourId);\n        const turnstileToken = form.querySelector('input[name=\"cf-turnstile-response\"]');\n        if (turnstileToken) {\n            formData.append('cf-turnstile-response', turnstileToken.value);\n        }\n\n        fetch(ajaxUrl, {\n            method: 'POST',\n            body: formData\n        })\n        .then(response => response.json())\n        .then(res => {\n            if (res.success && res.data) {\n                \/\/ Initialize Izipay Popin with the received token and credentials\n                initIzipayPopin(res.data.formToken, res.data.publicKey, res.data.thanksUrl, res.data.language);\n            } else {\n                submitBtn.disabled = false;\n                if (spinner) {\n                    spinner.style.display = 'none';\n                    spinner.classList.add('ably-hidden');\n                }\n                if (typeof turnstile !== 'undefined') {\n                    turnstile.reset();\n                }\n                swal(\"Error\", res.data?.message || \"Failed to process payment request.\", \"error\");\n            }\n        })\n        .catch(err => {\n            submitBtn.disabled = false;\n            if (spinner) {\n                spinner.style.display = 'none';\n                spinner.classList.add('ably-hidden');\n            }\n            if (typeof turnstile !== 'undefined') {\n                turnstile.reset();\n            }\n            console.error('Quick Payment error:', err);\n            swal(\"Error\", \"An unexpected error occurred.\", \"error\");\n        });\n    });\n\n    function initIzipayPopin(formToken, publicKey, thanksUrl, izipayLanguage) {\n        const embeddedForm = document.querySelector('.kr-smart-form, .kr-embedded');\n        if (embeddedForm) {\n            embeddedForm.setAttribute('kr-form-token', formToken);\n        }\n\n        function buildIzipayResultBody(paymentData) {\n            if (paymentData?.rawAnswer) {\n                if (typeof paymentData.rawAnswer === 'string') {\n                    return paymentData.rawAnswer;\n                }\n                return new URLSearchParams(paymentData.rawAnswer).toString();\n            }\n\n            const params = new URLSearchParams();\n            const answer = paymentData?.rawClientAnswer || paymentData?.clientAnswer || paymentData?.answer || paymentData?.['kr-answer'];\n\n            params.append('kr-hash', paymentData?.hash || paymentData?.['kr-hash'] || '');\n            params.append('kr-hash-algorithm', paymentData?.hashAlgorithm || paymentData?.['kr-hash-algorithm'] || 'sha256_hmac');\n            params.append('kr-hash-key', paymentData?.hashKey || paymentData?.['kr-hash-key'] || 'sha256_hmac');\n            params.append('kr-answer-type', paymentData?.answerType || paymentData?.['kr-answer-type'] || 'V4\/Payment');\n            params.append('kr-answer', typeof answer === 'string' ? answer : JSON.stringify(answer || {}));\n\n            return params.toString();\n        }\n\n        const setupCallbacksAndOpen = () => {\n            const onPaymentSuccess = (paymentData) => {\n                submitBtn.disabled = true;\n                if (spinner) {\n                    spinner.style.display = 'inline-block';\n                    spinner.classList.remove('ably-hidden');\n                }\n\n                \/\/ Send silent POST to result.php to record status update and send email\n                fetch(pluginUrl + 'izipay\/result.php', {\n                    method: 'POST',\n                    headers: {\n                        'Content-Type': 'application\/x-www-form-urlencoded',\n                        'X-Requested-With': 'XMLHttpRequest'\n                    },\n                    body: buildIzipayResultBody(paymentData)\n                })\n                .then(r => r.text())\n                .then(text => {\n                    let data;\n                    try {\n                        data = JSON.parse(text);\n                    } catch (e) {\n                        const cleanText = text.replace(\/<[^>]*>\/g, ' ').replace(\/\\s+\/g, ' ').trim();\n                        throw new Error(cleanText || 'La respuesta de verificaci\u00f3n no fue JSON v\u00e1lido.');\n                    }\n                    if (!data.success) {\n                        throw new Error(data.message || 'No se pudo verificar el pago en Izipay.');\n                    }\n                    if (data.redirect) {\n                        window.location.href = data.redirect;\n                    } else {\n                        window.location.href = thanksUrl;\n                    }\n                })\n                .catch(err => {\n                    submitBtn.disabled = false;\n                    if (spinner) {\n                        spinner.style.display = 'none';\n                        spinner.classList.add('ably-hidden');\n                    }\n                    console.error('Error recording payment result:', err);\n                    swal(\"Error\", err.message || \"No se pudo verificar el pago. Cont\u00e1ctanos si tu tarjeta fue cargada.\", \"error\");\n                });\n\n                return false; \/\/ Prevent default redirect of Krypton SDK\n            };\n\n            KR.setFormConfig({ formToken: formToken, language: izipayLanguage || 'es-ES' }).then(() => {\n                KR.onSubmit(onPaymentSuccess);\n                if (typeof KR.onError === 'function') {\n                    KR.onError((error) => {\n                        console.error('Izipay KR.onError:', error);\n                        submitBtn.disabled = false;\n                        if (spinner) {\n                            spinner.style.display = 'none';\n                            spinner.classList.add('ably-hidden');\n                        }\n                    });\n                }\n                KR.openPopin();\n                submitBtn.disabled = false;\n                if (spinner) {\n                    spinner.style.display = 'none';\n                    spinner.classList.add('ably-hidden');\n                }\n            }).catch(err => {\n                console.error('Izipay setFormConfig error:', err);\n                submitBtn.disabled = false;\n                if (spinner) {\n                    spinner.style.display = 'none';\n                    spinner.classList.add('ably-hidden');\n                }\n                swal(\"Error\", \"Could not prepare the secure payment form. Please reload and try again.\", \"error\");\n            });\n        };\n\n        \/\/ Loader \u00fanico y compartido del SDK de Izipay (Krypton). Debe coincidir con el de\n        \/\/ abooking.js: cualquiera de los dos widgets que se inicialice primero en la p\u00e1gina\n        \/\/ crea la promesa compartida (window.__izipayKRReadyPromise) y el otro la reutiliza,\n        \/\/ evitando reutilizar un KR cargado a medias o sin KR.onSubmit disponible todav\u00eda.\n        \/\/ El atributo kr-public-key solo se puede fijar al insertar el <script> del SDK, as\u00ed\n        \/\/ que si llega una publicKey distinta a la ya cacheada (p. ej. tras cambiar la\n        \/\/ tienda\/credenciales en el admin sin recargar la p\u00e1gina) hay que descartar el SDK\n        \/\/ cargado y recargarlo con la clave correcta; si no, el formToken (tienda nueva) queda\n        \/\/ atado a un KR autenticado contra la tienda anterior, y Izipay responde PSP_727 \/\n        \/\/ \"227: Authentication impossible\".\n        function ensureIzipayKRReady(publicKey) {\n            if (window.__izipayKRReadyPromise && window.__izipayKRPublicKey && window.__izipayKRPublicKey !== publicKey) {\n                document.querySelectorAll('script[kr-public-key], script[src*=\"krypton-client\"]').forEach(el => el.remove());\n                document.querySelectorAll('link[href*=\"krypton-client\"]').forEach(el => el.remove());\n                delete window.KR;\n                window.__izipayKRReadyPromise = null;\n            }\n            window.__izipayKRPublicKey = publicKey;\n\n            if (!window.__izipayKRReadyPromise) {\n                window.__izipayKRReadyPromise = new Promise((resolve, reject) => {\n                    const krTheme = {\"theme\":\"neon\",\"css\":\"https:\\\/\\\/static.micuentaweb.pe\\\/static\\\/js\\\/krypton-client\\\/V4.0\\\/ext\\\/neon-reset.css\",\"js\":\"https:\\\/\\\/static.micuentaweb.pe\\\/static\\\/js\\\/krypton-client\\\/V4.0\\\/ext\\\/neon.js\"};\n                    const style = document.createElement('link');\n                    style.rel = 'stylesheet';\n                    style.href = krTheme.css;\n                    document.head.appendChild(style);\n\n                    const script = document.createElement('script');\n                    script.type = 'text\/javascript';\n                    script.src = 'https:\/\/static.micuentaweb.pe\/static\/js\/krypton-client\/V4.0\/stable\/kr-payment-form.min.js';\n                    script.setAttribute('kr-public-key', publicKey);\n\n                    const classicScript = document.createElement('script');\n                    classicScript.type = 'text\/javascript';\n                    classicScript.src = krTheme.js;\n\n                    script.onload = () => {\n                        document.head.appendChild(classicScript);\n                        let checkKR = setInterval(() => {\n                            if (typeof KR !== 'undefined' && typeof KR.setFormConfig === 'function' && typeof KR.onSubmit === 'function') {\n                                clearInterval(checkKR);\n                                resolve();\n                            }\n                        }, 200);\n                        setTimeout(() => {\n                            clearInterval(checkKR);\n                            reject(new Error('Timed out waiting for the secure payment SDK to load.'));\n                        }, 10000);\n                    };\n                    script.onerror = () => reject(new Error('Could not load the secure payment SDK script.'));\n                    document.head.appendChild(script);\n                });\n            }\n            return window.__izipayKRReadyPromise;\n        }\n\n        ensureIzipayKRReady(publicKey).then(setupCallbacksAndOpen).catch(err => {\n            submitBtn.disabled = false;\n            if (spinner) {\n                spinner.style.display = 'none';\n                spinner.classList.add('ably-hidden');\n            }\n            console.error('Izipay SDK load error:', err);\n            swal(\"Error\", err.message || \"Could not load the secure payment form. Please reload and try again.\", \"error\");\n        });\n    }\n});\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-653","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>M\u00e9todos de pago - Machu Picchu Exploration<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/machupicchuexploration.com\/pay\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"M\u00e9todos de pago - Machu Picchu Exploration\" \/>\n<meta property=\"og:url\" content=\"https:\/\/machupicchuexploration.com\/pay\/\" \/>\n<meta property=\"og:site_name\" content=\"Machu Picchu Exploration\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/Machupicchu-Exploration-111451203778740\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-03T17:10:02+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/machupicchuexploration.com\\\/pay\\\/\",\"url\":\"https:\\\/\\\/machupicchuexploration.com\\\/pay\\\/\",\"name\":\"M\u00e9todos de pago - Machu Picchu Exploration\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/machupicchuexploration.com\\\/#website\"},\"datePublished\":\"2026-09-19T15:35:34+00:00\",\"dateModified\":\"2026-10-03T17:10:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/machupicchuexploration.com\\\/pay\\\/#breadcrumb\"},\"inLanguage\":\"es-ES\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/machupicchuexploration.com\\\/pay\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/machupicchuexploration.com\\\/pay\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/machupicchuexploration.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"M\u00e9todos de pago\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/machupicchuexploration.com\\\/#website\",\"url\":\"https:\\\/\\\/machupicchuexploration.com\\\/\",\"name\":\"Machu Picchu Exploration\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/machupicchuexploration.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/machupicchuexploration.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es-ES\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/machupicchuexploration.com\\\/#organization\",\"name\":\"Machu Picchu Exploration\",\"url\":\"https:\\\/\\\/machupicchuexploration.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-ES\",\"@id\":\"https:\\\/\\\/machupicchuexploration.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/machupicchuexploration.com\\\/wp-content\\\/uploads\\\/logo-Machu-Picchu-Exploration.svg\",\"contentUrl\":\"https:\\\/\\\/machupicchuexploration.com\\\/wp-content\\\/uploads\\\/logo-Machu-Picchu-Exploration.svg\",\"caption\":\"Machu Picchu Exploration\"},\"image\":{\"@id\":\"https:\\\/\\\/machupicchuexploration.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/facebook.com\\\/Machupicchu-Exploration-111451203778740\\\/\",\"https:\\\/\\\/www.instagram.com\\\/machupicchu_exploration\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"M\u00e9todos de pago - Machu Picchu Exploration","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/machupicchuexploration.com\/pay\/","og_locale":"es_ES","og_type":"article","og_title":"M\u00e9todos de pago - Machu Picchu Exploration","og_url":"https:\/\/machupicchuexploration.com\/pay\/","og_site_name":"Machu Picchu Exploration","article_publisher":"https:\/\/facebook.com\/Machupicchu-Exploration-111451203778740\/","article_modified_time":"2026-10-03T17:10:02+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/machupicchuexploration.com\/pay\/","url":"https:\/\/machupicchuexploration.com\/pay\/","name":"M\u00e9todos de pago - Machu Picchu Exploration","isPartOf":{"@id":"https:\/\/machupicchuexploration.com\/#website"},"datePublished":"2026-09-19T15:35:34+00:00","dateModified":"2026-10-03T17:10:02+00:00","breadcrumb":{"@id":"https:\/\/machupicchuexploration.com\/pay\/#breadcrumb"},"inLanguage":"es-ES","potentialAction":[{"@type":"ReadAction","target":["https:\/\/machupicchuexploration.com\/pay\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/machupicchuexploration.com\/pay\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/machupicchuexploration.com\/es\/"},{"@type":"ListItem","position":2,"name":"M\u00e9todos de pago"}]},{"@type":"WebSite","@id":"https:\/\/machupicchuexploration.com\/#website","url":"https:\/\/machupicchuexploration.com\/","name":"Machu Picchu Exploration","description":"","publisher":{"@id":"https:\/\/machupicchuexploration.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/machupicchuexploration.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es-ES"},{"@type":"Organization","@id":"https:\/\/machupicchuexploration.com\/#organization","name":"Machu Picchu Exploration","url":"https:\/\/machupicchuexploration.com\/","logo":{"@type":"ImageObject","inLanguage":"es-ES","@id":"https:\/\/machupicchuexploration.com\/#\/schema\/logo\/image\/","url":"https:\/\/machupicchuexploration.com\/wp-content\/uploads\/logo-Machu-Picchu-Exploration.svg","contentUrl":"https:\/\/machupicchuexploration.com\/wp-content\/uploads\/logo-Machu-Picchu-Exploration.svg","caption":"Machu Picchu Exploration"},"image":{"@id":"https:\/\/machupicchuexploration.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/Machupicchu-Exploration-111451203778740\/","https:\/\/www.instagram.com\/machupicchu_exploration\/"]}]}},"_links":{"self":[{"href":"https:\/\/machupicchuexploration.com\/es\/wp-json\/wp\/v2\/pages\/653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/machupicchuexploration.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/machupicchuexploration.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/machupicchuexploration.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/machupicchuexploration.com\/es\/wp-json\/wp\/v2\/comments?post=653"}],"version-history":[{"count":2,"href":"https:\/\/machupicchuexploration.com\/es\/wp-json\/wp\/v2\/pages\/653\/revisions"}],"predecessor-version":[{"id":656,"href":"https:\/\/machupicchuexploration.com\/es\/wp-json\/wp\/v2\/pages\/653\/revisions\/656"}],"wp:attachment":[{"href":"https:\/\/machupicchuexploration.com\/es\/wp-json\/wp\/v2\/media?parent=653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}