{"id":3579,"date":"2025-06-17T17:52:56","date_gmt":"2025-06-17T20:52:56","guid":{"rendered":"https:\/\/megaipconnect.com.br\/mega\/?page_id=3579"},"modified":"2025-07-30T20:03:56","modified_gmt":"2025-07-30T23:03:56","slug":"recarga-adicional","status":"publish","type":"page","link":"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/","title":{"rendered":"Recarga Adicional"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3579\" class=\"elementor elementor-3579\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-75106b1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"75106b1\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bb714a8\" data-id=\"bb714a8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6a556bd elementor-widget elementor-widget-html\" data-id=\"6a556bd\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pt-BR\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Sistema de Recarga<\/title>\r\n    \r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/@glidejs\/glide\/dist\/css\/glide.core.min.css\">\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.2\/dist\/css\/bootstrap.min.css\">\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/sweetalert2@11\/dist\/sweetalert2.min.css\">\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\">\r\n    \r\n    <style>\r\n        \/* ESTILOS GERAIS *\/\r\n        body {\r\n            font-family: 'Roboto', sans-serif;\r\n            background-color: #f8f9fa;\r\n        }\r\n        \r\n        .step {\r\n            display: none;\r\n            position: relative; \r\n        }\r\n        \r\n        .step.active {\r\n            display: block;\r\n        }\r\n        \r\n        \/* STEPPER *\/\r\n        .step-bar-container {\r\n            text-align: center;\r\n            margin-bottom: 30px;\r\n        }\r\n        \r\n        .step-bars {\r\n            display: flex;\r\n            justify-content: center;\r\n            gap: 10px;\r\n        }\r\n        \r\n        .step-bar {\r\n            width: 60px;\r\n            height: 6px;\r\n            background-color: #ccc;\r\n            border-radius: 3px;\r\n            transition: background-color 0.3s;\r\n        }\r\n        \r\n        .step-bar.active {\r\n            background-color: #00aa02;\r\n        }\r\n        \r\n        \/* CARROSSEL *\/\r\n        .glide-container {\r\n            max-width: 1000px;\r\n            margin: 0 auto;\r\n            position: relative;\r\n            padding: 0 60px; \r\n        }\r\n        \r\n        .glide__slides {\r\n            align-items: center;\r\n            padding: 60px 0; \r\n            overflow: visible;\r\n        }\r\n        \r\n        \/* Estilo base para todos os cards (os que ficam \"atr\u00e1s\") *\/\r\n        .plano-card {\r\n            width: 230px; \r\n            border-radius: 15px; \r\n            transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease;\r\n            opacity: 0.6; \/* Menor opacidade para os cards de tr\u00e1s *\/\r\n            transform: scale(0.85); \/* Menor escala para os cards de tr\u00e1s *\/\r\n            position: relative;\r\n            z-index: 1; \/* z-index menor para os cards de tr\u00e1s *\/\r\n            margin: 0 auto; \r\n            overflow: hidden; \r\n            background-color: transparent; \/* Fundo transparente *\/\r\n            box-shadow: none; \/* Sem sombra ou sombra muito sutil para os de tr\u00e1s *\/\r\n            border: 1px solid transparent; \/* Borda transparente para manter layout, n\u00e3o ficar\u00e1 verde *\/\r\n        }\r\n        \r\n        \/* Estilo para o card ativo (o central) *\/\r\n        .glide__slide--active .plano-card {\r\n            opacity: 1;\r\n            transform: scale(1); \/* Tamanho normal\/destacado *\/\r\n            z-index: 2; \/* z-index maior para ficar na frente *\/\r\n            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15); \/* Sombra para dar profundidade ao card ativo *\/\r\n        }\r\n        \r\n        \/* Mantendo a barra verde no topo do card ativo como indicador *\/\r\n        .glide__slide--active .plano-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0px; \r\n            left: 0px; \r\n            right: 0px; \r\n            height: 8px; \r\n            background: #00aa02; \r\n            border-radius: 10px 10px 0 0; \/* Ajustar raio para o topo do card *\/\r\n            z-index: 3; \/* Acima da imagem *\/\r\n        }\r\n\r\n        .plano-card img.imagem-plano {\r\n            display: block;\r\n            width: 100%;\r\n            height: auto; \r\n            object-fit: cover; \r\n            border-radius: 12px; \r\n            cursor: pointer;\r\n            transition: transform 0.3s ease;\r\n        }\r\n\r\n        .plano-card img.imagem-plano:hover {\r\n             transform: scale(1.02); \/* Leve aumento no hover, mesmo para o ativo *\/\r\n        }\r\n        \r\n        \/* Demais estilos do Glide (setas, etc.) permanecem os mesmos *\/\r\n        .glide__arrow {\r\n            position: absolute;\r\n            top: 50%;\r\n            transform: translateY(-50%);\r\n            background: white;\r\n            border: none;\r\n            width: 60px;\r\n            height: 60px;\r\n            border-radius: 50%;\r\n            box-shadow: 0 5px 20px rgba(0,0,0,0.2);\r\n            color: #00aa02;\r\n            font-size: 28px;\r\n            font-weight: bold;\r\n            z-index: 30;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            transition: all 0.3s;\r\n            cursor: pointer;\r\n        }\r\n        \r\n        .glide__arrow:hover {\r\n            transform: translateY(-50%) scale(1.1);\r\n            background: #00aa02;\r\n            color: white;\r\n        }\r\n        \r\n        .glide__arrow--left {\r\n            left: -10px;\r\n        }\r\n        \r\n        .glide__arrow--right {\r\n            right: -10px;\r\n        }\r\n        \r\n        \/* BOT\u00d5ES GERAIS *\/\r\n        .btn-success, .btn-warning, .btn-secondary { \/* Estilos consolidados se poss\u00edvel *\/\r\n             font-weight: 600;\r\n        }\r\n        .btn-success {\r\n            background-color: #00aa02;\r\n            border: none;\r\n            padding: 12px 25px;\r\n        }\r\n        .btn-warning { \r\n            background-color: #ffc107;\r\n            color: #212529;\r\n            padding: 10px 20px; \r\n            margin-top: auto; \r\n        }\r\n        .btn-secondary {\r\n            background-color: #6c757d;\r\n            color: white;\r\n        }\r\n        \r\n        \/* BOT\u00c3O VOLTAR *\/\r\n        .btn-voltar {\r\n            position: absolute;\r\n            left: 20px;\r\n            top: 20px;\r\n            background: none;\r\n            border: none;\r\n            color: #00aa02;\r\n            font-size: 18px;\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 5px;\r\n            z-index: 50; \r\n        }\r\n        .btn-voltar:hover {\r\n            color: #008802;\r\n        }\r\n        \r\n        \/* FORMUL\u00c1RIO DE PAGAMENTO *\/\r\n        .payment-options { margin: 20px 0; }\r\n        .payment-option {\r\n            display: flex; align-items: center; padding: 15px;\r\n            margin-bottom: 10px; border: 1px solid #ddd;\r\n            border-radius: 8px; cursor: pointer; transition: all 0.3s;\r\n        }\r\n        .payment-option:hover { border-color: #00aa02; }\r\n        .payment-option input[type=\"radio\"] { margin-right: 15px; width: 18px; height: 18px; cursor: pointer; }\r\n        .payment-option label { margin: 0; cursor: pointer; flex-grow: 1; display: flex; align-items: center; }\r\n        .payment-option i { margin-right: 15px; font-size: 24px; }\r\n        .payment-option.selected { border: 2px solid #00aa02; background-color: #f8fff8; }\r\n        .fa-pix { color: #32BBAD; margin-right: 15px !important; }\r\n        .fa-credit-card { color: #1A1F71; margin-right: 15px !important; }\r\n        \r\n        \/* RESPONSIVO *\/\r\n        @media (max-width: 992px) { \/* Tablets *\/\r\n            .plano-card {\r\n                width: 200px; \r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) { \/* Mobile *\/\r\n            .glide-container {\r\n                padding: 0 10px;\r\n            }\r\n            .plano-card {\r\n                width: 220px; \/* Para perView:1, este tamanho ficar\u00e1 centralizado *\/\r\n            }\r\n            .glide__arrow {\r\n                width: 45px; height: 45px; font-size: 22px;\r\n            }\r\n            .glide__arrow--left { left: 5px; }\r\n            .glide__arrow--right { right: 5px; }\r\n            .btn-voltar { left: 10px; top: 10px; }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div class=\"container py-5\">\r\n    <div class=\"step-bar-container\">\r\n        <div class=\"step-bars\">\r\n            <div id=\"bar-1\" class=\"step-bar active\"><\/div>\r\n            <div id=\"bar-2\" class=\"step-bar\"><\/div>\r\n            <div id=\"bar-3\" class=\"step-bar\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"step active\" id=\"step-1\">\r\n        <div style=\"max-width: 500px; margin: auto; padding: 40px 20px;\">\r\n            <h4 class=\"text-center mb-4\" style=\"color: #00aa02; font-weight: 600;\">Digite seu n\u00famero de telefone<\/h4>\r\n            <input type=\"text\" class=\"form-control mb-3\" id=\"numero\" placeholder=\"(00) 00000-0000\">\r\n            <div class=\"text-center\">\r\n                <button class=\"btn btn-success\" onclick=\"nextStep(1)\">Continuar<\/button>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"step\" id=\"step-2\">\r\n        <button class=\"btn-voltar\" onclick=\"previousStep(2)\">\r\n            <i class=\"fas fa-arrow-left\"><\/i> Voltar\r\n        <\/button>\r\n        <div style=\"padding-top: 40px; padding-bottom: 20px;\"> \r\n            <h4 class=\"text-center mb-4\" style=\"color: #00aa02; font-weight: 600;\">Qual o plano ideal para voc\u00ea?<\/h4>\r\n            <input type=\"hidden\" id=\"id_plano\" value=\"\">\r\n            \r\n            <div class=\"glide-container\">\r\n                <div class=\"glide\">\r\n                    <div class=\"glide__track\" data-glide-el=\"track\">\r\n                        <ul class=\"glide__slides\">\r\n                            <li class=\"glide__slide\">\r\n                                <div class=\"plano-card\">\r\n                                    <img decoding=\"async\" src=\"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-500mb.webp\" \r\n                                         alt=\"Plano Imagem 1\" \r\n                                         class=\"imagem-plano\" \r\n                                         onclick=\"selecionarPlano(355, '17,00')\">\r\n                                <\/div>\r\n                            <\/li>\r\n                            \r\n                            <li class=\"glide__slide\">\r\n                                <div class=\"plano-card\">\r\n                                    <img decoding=\"async\" src=\"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-1gb.webp\" \r\n                                         alt=\"Plano Imagem 2\" \r\n                                         class=\"imagem-plano\" \r\n                                         onclick=\"selecionarPlano(356, '20,00')\">\r\n                                <\/div>\r\n                            <\/li>\r\n                            \r\n                            <li class=\"glide__slide\">\r\n                                <div class=\"plano-card\">\r\n                                    <img decoding=\"async\" src=\"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-2gb.webp\" \r\n                                         alt=\"Plano Imagem 3\" \r\n                                         class=\"imagem-plano\" \r\n                                         onclick=\"selecionarPlano(357, '25,00')\">\r\n                                <\/div>\r\n                            <\/li>\r\n                        <\/ul>\r\n                    <\/div>\r\n                    \r\n                    <div class=\"glide__arrows\" data-glide-el=\"controls\">\r\n                        <button class=\"glide__arrow glide__arrow--left\" data-glide-dir=\"<\">\u2039<\/button>\r\n                        <button class=\"glide__arrow glide__arrow--right\" data-glide-dir=\">\">\u203a<\/button>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"step\" id=\"step-3\">\r\n        <button class=\"btn-voltar\" onclick=\"previousStep(3)\">\r\n            <i class=\"fas fa-arrow-left\"><\/i> Voltar\r\n        <\/button>\r\n\r\n        <div style=\"padding: 40px 20px; max-width: 600px; margin: auto;\">\r\n            <div class=\"card p-4 shadow-sm\">\r\n                <h5 class=\"text-center mb-3\">Resumo do pedido:<\/h5>\r\n                <p class=\"text-center text-success fw-bold\" id=\"resumo\">Recarga Mensal Plano --<\/p>\r\n                <p class=\"text-center fw-bold\" id=\"preco\">R$ --<\/p>\r\n                <h5 class=\"text-center text-success mb-4\">Escolha a forma de pagamento<\/h5>\r\n                \r\n                <div class=\"payment-options\">\r\n                    <div class=\"payment-option selected\">\r\n                        <input type=\"radio\" id=\"pix\" name=\"payment\" value=\"P\" checked>\r\n                        <label for=\"pix\"><i class=\"fab fa-pix fa-pix\"><\/i><div><strong>Pix<\/strong><div class=\"text-muted small\">Pagamento instant\u00e2neo<\/div><\/div><\/label>\r\n                    <\/div>\r\n                    <div class=\"payment-option\">\r\n                        <input type=\"radio\" id=\"credit\" name=\"payment\" value=\"C\">\r\n                        <label for=\"credit\"><i class=\"far fa-credit-card fa-credit-card\"><\/i><div><strong>Cart\u00e3o de Cr\u00e9dito<\/strong><\/div><\/label>\r\n                    <\/div>\r\n                <\/div>\r\n                \r\n                <div id=\"dados_cartao\" style=\"display: none; margin-top: 20px;\">\r\n                    <input type=\"text\" class=\"form-control mb-2\" id=\"numero_cartao\" placeholder=\"N\u00famero do cart\u00e3o\">\r\n                    <input type=\"text\" class=\"form-control mb-2\" id=\"nome_cartao\" placeholder=\"Nome no cart\u00e3o\">\r\n                    <div class=\"row\">\r\n                        <div class=\"col\"><input type=\"text\" class=\"form-control mb-2\" id=\"mes_expiracao\" placeholder=\"M\u00eas (MM)\"><\/div>\r\n                        <div class=\"col\"><input type=\"text\" class=\"form-control mb-2\" id=\"ano_expiracao\" placeholder=\"Ano (AAAA)\"><\/div>\r\n                        <div class=\"col\"><input type=\"text\" class=\"form-control mb-2\" id=\"cvv\" placeholder=\"CVV\"><\/div>\r\n                    <\/div>\r\n                <\/div>\r\n                \r\n                <div class=\"d-flex justify-content-end mt-4\">\r\n                    <button class=\"btn btn-success\" onclick=\"finalizarRecarga()\">Finalizar Recarga<\/button>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@glidejs\/glide\"><\/script>\r\n<script src=\"https:\/\/code.jquery.com\/jquery-3.6.0.min.js\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery.mask\/1.14.16\/jquery.mask.min.js\"><\/script>\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/sweetalert2@11\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/js\/all.min.js\"><\/script>\r\n\r\n<script>\r\n    const API_URL = 'https:\/\/api.csmvno.com.br\/api_producao\/index.php?integracao\/recarga';\r\n    const TOKEN = 'eyJpZF9jbGllIjoiMjMifQ=='; \r\n\r\n    let currentStep = 1;\r\n    let glide;\r\n    let dadosRecarga = {\r\n        telefone: '', id_plano: '', valor: '',\r\n        forma_pagamento: 'P', dados_cartao: null\r\n    };\r\n\r\n    function nextStep(step) {\r\n        if (step === 1) {\r\n            const telefone = $('#numero').val().replace(\/\\D\/g, '');\r\n            if (!telefone || telefone.length < 10 || telefone.length > 11) { \r\n                Swal.fire('Aten\u00e7\u00e3o!', 'Por favor, insira um n\u00famero de telefone v\u00e1lido (10 ou 11 d\u00edgitos).', 'warning');\r\n                return;\r\n            }\r\n            dadosRecarga.telefone = telefone;\r\n        }\r\n        \r\n        document.querySelector(`#step-${step}`).classList.remove('active');\r\n        document.querySelector(`#step-${step + 1}`).classList.add('active');\r\n        updateStepper(step + 1);\r\n        currentStep = step + 1;\r\n        \r\n        if (currentStep === 2 && !glide) {\r\n            initializeGlide();\r\n        } else if (currentStep === 2 && glide) {\r\n            glide.update();\r\n        }\r\n\r\n        if (currentStep === 3 && dadosRecarga.id_plano && dadosRecarga.valor) {\r\n             document.getElementById(\"resumo\").innerHTML = `Recarga Adicional`;\r\n             document.getElementById(\"preco\").innerHTML = `R$ ${dadosRecarga.valor.replace('.', ',')}`;\r\n        }\r\n    }\r\n\r\n    function previousStep(step) {\r\n        document.querySelector(`#step-${step}`).classList.remove('active');\r\n        document.querySelector(`#step-${step - 1}`).classList.add('active');\r\n        updateStepper(step - 1);\r\n        currentStep = step - 1;\r\n    }\r\n\r\n    function updateStepper(activeIndex) {\r\n        for (let i = 1; i <= 3; i++) {\r\n            document.getElementById(`bar-${i}`).classList.toggle('active', i <= activeIndex);\r\n        }\r\n    }\r\n\r\n    function initializeGlide() {\r\n        glide = new Glide('.glide', {\r\n            type: 'slider',      \r\n            startAt: 1,          \r\n            perView: 3, \r\n            focusAt: 'center',\r\n            gap: -60,            \r\n            breakpoints: {\r\n                1200: { perView: 3, gap: -70 },\r\n                992: { perView: 3, gap: -50 }, \r\n                768: { \r\n                    perView: 1,\r\n                    gap: 20   \r\n                } \r\n            }\r\n        }).mount();\r\n    }\r\n\r\n    function selecionarPlano(id, valor) {\r\n        dadosRecarga.id_plano = id;\r\n        dadosRecarga.valor = valor; \r\n        document.getElementById(\"id_plano\").value = id;\r\n        \r\n        if (document.getElementById(\"resumo\")) {\r\n            document.getElementById(\"resumo\").innerHTML = `Recarga Adicional ${id}`;\r\n            document.getElementById(\"preco\").innerHTML = `R$ ${valor.replace('.', ',')}`; \r\n        }\r\n        nextStep(2);\r\n    }\r\n    \r\n    function selectPayment(type, element) {\r\n        dadosRecarga.forma_pagamento = type;\r\n        document.querySelectorAll('.payment-option').forEach(opt => {\r\n            opt.classList.remove('selected');\r\n            opt.querySelector('input[type=\"radio\"]').checked = false;\r\n        });\r\n        element.classList.add('selected');\r\n        element.querySelector('input[type=\"radio\"]').checked = true;\r\n        $('#dados_cartao').slideToggle(type === 'C');\r\n    }\r\n    \r\n    async function finalizarRecarga() {\r\n        if (dadosRecarga.forma_pagamento === 'C') {\r\n            dadosRecarga.dados_cartao = {\r\n                numero: $('#numero_cartao').val().replace(\/\\s\/g, ''), \r\n                nome: $('#nome_cartao').val(),\r\n                mes_expiracao: $('#mes_expiracao').val(),\r\n                ano_expiracao: $('#ano_expiracao').val(),\r\n                cvv: $('#cvv').val()\r\n            };\r\n            if (!validarCartao()) return;\r\n        } else {\r\n            dadosRecarga.dados_cartao = null; \r\n        }\r\n\r\n        Swal.fire({ title: 'Processando...', html: 'Estamos finalizando sua recarga', allowOutsideClick: false, didOpen: () => { Swal.showLoading(); }});\r\n        console.log(\"Enviando para API:\", dadosRecarga); \r\n\r\n        try {\r\n            const response = await $.ajax({ url: API_URL, type: 'POST', data: JSON.stringify(dadosRecarga), contentType: 'application\/json', headers: { 'Token': TOKEN }});\r\n            Swal.close();\r\n            if (response.status === 200 || response.status === 201) { \r\n                Swal.fire({ title: 'Sucesso!', text: response.message || 'Clique em OK para abrir o pagamento.', icon: 'success', confirmButtonText: 'OK'})\r\n                .then(() => { if (response.link_checkout) { window.open(response.link_checkout, '_blank'); } resetarFormulario(); });\r\n            } else { Swal.fire('Erro!', response.message || 'Tente novamente mais tarde.', 'error');}\r\n        } catch (error) {\r\n            Swal.close(); console.error('Erro na API:', error);\r\n            let errorMsg = 'Houve um problema na solicita\u00e7\u00e3o.';\r\n            if (error.responseJSON && error.responseJSON.message) { errorMsg = error.responseJSON.message; } \r\n            else if (error.statusText) { errorMsg = `Erro ${error.status}: ${error.statusText}`; }\r\n            Swal.fire('Erro!', errorMsg, 'error');\r\n        }\r\n    }\r\n\r\n    function validarCartao() {\r\n        const cartao = dadosRecarga.dados_cartao;\r\n        if (!cartao.numero || !\/^\\d{13,19}$\/.test(cartao.numero)) { Swal.fire('Aten\u00e7\u00e3o!', 'N\u00famero do cart\u00e3o inv\u00e1lido.', 'warning'); return false; }\r\n        if (!cartao.nome || cartao.nome.trim().length < 3) { Swal.fire('Aten\u00e7\u00e3o!', 'Nome no cart\u00e3o inv\u00e1lido.', 'warning'); return false; }\r\n        const mes = parseInt(cartao.mes_expiracao, 10), ano = parseInt(cartao.ano_expiracao, 10), hoje = new Date(), anoAtual = hoje.getFullYear(), mesAtual = hoje.getMonth() + 1; \r\n        if (isNaN(mes) || mes < 1 || mes > 12) { Swal.fire('Aten\u00e7\u00e3o!', 'M\u00eas de expira\u00e7\u00e3o inv\u00e1lido.', 'warning'); return false; }\r\n        if (isNaN(ano) || ano < anoAtual || (ano === anoAtual && mes < mesAtual)) { Swal.fire('Aten\u00e7\u00e3o!', 'Cart\u00e3o expirado ou data inv\u00e1lida.', 'warning'); return false; }\r\n        if (!cartao.cvv || !\/^\\d{3,4}$\/.test(cartao.cvv)) { Swal.fire('Aten\u00e7\u00e3o!', 'CVV inv\u00e1lido.', 'warning'); return false; }\r\n        return true;\r\n    }\r\n\r\n    function resetarFormulario() {\r\n        currentStep = 1; updateStepper(1);\r\n        document.querySelectorAll('.step').forEach(step => step.classList.remove('active'));\r\n        document.querySelector('#step-1').classList.add('active');\r\n        $('#numero').val(''); $('#id_plano').val('');\r\n        dadosRecarga = { telefone: '', id_plano: '', valor: '', forma_pagamento: 'P', dados_cartao: null };\r\n        document.querySelectorAll('.payment-option').forEach(opt => opt.classList.remove('selected'));\r\n        const pixOptionElement = document.querySelector('.payment-option input[value=\"P\"]');\r\n        if (pixOptionElement) { const parentOption = pixOptionElement.closest('.payment-option'); if (parentOption) { parentOption.classList.add('selected'); } pixOptionElement.checked = true; }\r\n        $('#dados_cartao').slideUp().find('input').val('');\r\n        $('#resumo').text('Recarga Mensal Plano --'); $('#preco').text('R$ --');\r\n        if (glide) { glide.go('=1'); } \/\/ Volta para o card central\r\n    }\r\n\r\n    $(document).ready(function() {\r\n        $('#numero').mask('(00) 00000-0000'); $('#mes_expiracao').mask('00'); $('#ano_expiracao').mask('0000'); \r\n        $('#cvv').mask('0009'); $('#numero_cartao').mask('0000 0000 0000 0000');\r\n        updateStepper(1);\r\n        document.querySelectorAll('.payment-option').forEach(optionElement => {\r\n            optionElement.addEventListener('click', function() {\r\n                const paymentType = this.querySelector('input[name=\"payment\"]').value;\r\n                selectPayment(paymentType, this);\r\n            });\r\n        });\r\n    });\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Sistema de Recarga Digite seu n\u00famero de telefone Continuar Voltar Qual o plano ideal para voc\u00ea? \u2039<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-3579","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Recarga Adicional - Mega IP Connect<\/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:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recarga Adicional - Mega IP Connect\" \/>\n<meta property=\"og:description\" content=\"Sistema de Recarga Digite seu n\u00famero de telefone Continuar Voltar Qual o plano ideal para voc\u00ea? \u2039\" \/>\n<meta property=\"og:url\" content=\"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/\" \/>\n<meta property=\"og:site_name\" content=\"Mega IP Connect\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/web.facebook.com\/megaip.internet\/?locale=pt_BR&amp;_rdc=1&amp;_rdr#\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-30T23:03:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-500mb.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/\",\"url\":\"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/\",\"name\":\"Recarga Adicional - Mega IP Connect\",\"isPartOf\":{\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-500mb.webp\",\"datePublished\":\"2025-06-17T20:52:56+00:00\",\"dateModified\":\"2025-07-30T23:03:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#primaryimage\",\"url\":\"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-500mb.webp\",\"contentUrl\":\"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-500mb.webp\",\"width\":700,\"height\":1036},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/megaipconnect.com.br\/mega\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recarga Adicional\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/#website\",\"url\":\"https:\/\/megaipconnect.com.br\/mega\/\",\"name\":\"Mega IP Connect\",\"description\":\"Fibra, M\u00f3vel e muito mais!\",\"publisher\":{\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/megaipconnect.com.br\/mega\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/#organization\",\"name\":\"Mega IP Connect\",\"url\":\"https:\/\/megaipconnect.com.br\/mega\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/cropped-logo-quadrado.png\",\"contentUrl\":\"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/cropped-logo-quadrado.png\",\"width\":512,\"height\":512,\"caption\":\"Mega IP Connect\"},\"image\":{\"@id\":\"https:\/\/megaipconnect.com.br\/mega\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/web.facebook.com\/megaip.internet\/?locale=pt_BR&_rdc=1&_rdr#\",\"https:\/\/www.instagram.com\/megaipconnect\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recarga Adicional - Mega IP Connect","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:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/","og_locale":"pt_BR","og_type":"article","og_title":"Recarga Adicional - Mega IP Connect","og_description":"Sistema de Recarga Digite seu n\u00famero de telefone Continuar Voltar Qual o plano ideal para voc\u00ea? \u2039","og_url":"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/","og_site_name":"Mega IP Connect","article_publisher":"https:\/\/web.facebook.com\/megaip.internet\/?locale=pt_BR&_rdc=1&_rdr#","article_modified_time":"2025-07-30T23:03:56+00:00","og_image":[{"url":"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-500mb.webp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. tempo de leitura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/","url":"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/","name":"Recarga Adicional - Mega IP Connect","isPartOf":{"@id":"https:\/\/megaipconnect.com.br\/mega\/#website"},"primaryImageOfPage":{"@id":"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#primaryimage"},"image":{"@id":"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#primaryimage"},"thumbnailUrl":"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-500mb.webp","datePublished":"2025-06-17T20:52:56+00:00","dateModified":"2025-07-30T23:03:56+00:00","breadcrumb":{"@id":"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#primaryimage","url":"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-500mb.webp","contentUrl":"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/adicional-500mb.webp","width":700,"height":1036},{"@type":"BreadcrumbList","@id":"https:\/\/megaipconnect.com.br\/mega\/recarga-adicional\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/megaipconnect.com.br\/mega\/"},{"@type":"ListItem","position":2,"name":"Recarga Adicional"}]},{"@type":"WebSite","@id":"https:\/\/megaipconnect.com.br\/mega\/#website","url":"https:\/\/megaipconnect.com.br\/mega\/","name":"Mega IP Connect","description":"Fibra, M\u00f3vel e muito mais!","publisher":{"@id":"https:\/\/megaipconnect.com.br\/mega\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/megaipconnect.com.br\/mega\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/megaipconnect.com.br\/mega\/#organization","name":"Mega IP Connect","url":"https:\/\/megaipconnect.com.br\/mega\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/megaipconnect.com.br\/mega\/#\/schema\/logo\/image\/","url":"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/cropped-logo-quadrado.png","contentUrl":"https:\/\/megaipconnect.com.br\/mega\/wp-content\/uploads\/2025\/06\/cropped-logo-quadrado.png","width":512,"height":512,"caption":"Mega IP Connect"},"image":{"@id":"https:\/\/megaipconnect.com.br\/mega\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/web.facebook.com\/megaip.internet\/?locale=pt_BR&_rdc=1&_rdr#","https:\/\/www.instagram.com\/megaipconnect\/"]}]}},"_links":{"self":[{"href":"https:\/\/megaipconnect.com.br\/mega\/wp-json\/wp\/v2\/pages\/3579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/megaipconnect.com.br\/mega\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/megaipconnect.com.br\/mega\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/megaipconnect.com.br\/mega\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/megaipconnect.com.br\/mega\/wp-json\/wp\/v2\/comments?post=3579"}],"version-history":[{"count":25,"href":"https:\/\/megaipconnect.com.br\/mega\/wp-json\/wp\/v2\/pages\/3579\/revisions"}],"predecessor-version":[{"id":4322,"href":"https:\/\/megaipconnect.com.br\/mega\/wp-json\/wp\/v2\/pages\/3579\/revisions\/4322"}],"wp:attachment":[{"href":"https:\/\/megaipconnect.com.br\/mega\/wp-json\/wp\/v2\/media?parent=3579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}