🔧 Configurador de Tokens WhatsApp

'; echo '

✅ Conexión a Base de Datos: EXITOSA

'; echo '
'; // Verificar si existe tabla system_config $configTableExists = $pdo->query("SHOW TABLES LIKE 'system_config'")->rowCount() > 0; // Crear tabla si no existe if (!$configTableExists && isset($_POST['create_table'])) { $createTableSQL = " CREATE TABLE system_config ( id INT AUTO_INCREMENT PRIMARY KEY, config_key VARCHAR(100) UNIQUE NOT NULL, config_value TEXT, description VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"; $pdo->exec($createTableSQL); // Insertar valores por defecto $defaultConfigs = [ ['webhook_verify_token', 'mi_token_secreto_' . bin2hex(random_bytes(8)), 'Token para verificar webhook de WhatsApp'], ['whatsapp_token', '', 'Token de acceso de WhatsApp Business API'], ['whatsapp_phone_number_id', '', 'ID del número de teléfono de WhatsApp'], ['whatsapp_api_url', 'https://graph.facebook.com/v22.0/', 'URL base de la API de WhatsApp'] ]; $stmt = $pdo->prepare("INSERT INTO system_config (config_key, config_value, description) VALUES (?, ?, ?)"); foreach ($defaultConfigs as $config) { $stmt->execute($config); } echo '
✅ Tabla system_config creada e inicializada correctamente
'; $configTableExists = true; } // Procesar actualización de configuración if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['update_config'])) { $webhookToken = trim($_POST['webhook_verify_token']); $whatsappToken = trim($_POST['whatsapp_token']); $phoneNumberId = trim($_POST['whatsapp_phone_number_id']); $apiUrl = trim($_POST['whatsapp_api_url']); if ($configTableExists) { $stmt = $pdo->prepare(" INSERT INTO system_config (config_key, config_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE config_value = VALUES(config_value) "); $stmt->execute(['webhook_verify_token', $webhookToken]); $stmt->execute(['whatsapp_token', $whatsappToken]); $stmt->execute(['whatsapp_phone_number_id', $phoneNumberId]); $stmt->execute(['whatsapp_api_url', $apiUrl]); echo '
✅ Configuración actualizada exitosamente en la base de datos
'; } else { echo '
❌ Tabla system_config no existe. Créala primero.
'; } } // Mostrar estado actual echo '

📊 Estado Actual de la Configuración

'; echo '
'; if ($configTableExists) { echo '

🗃️ Configuración desde Base de Datos:

'; $stmt = $pdo->query("SELECT config_key, config_value FROM system_config ORDER BY config_key"); $dbConfigs = $stmt->fetchAll(); foreach ($dbConfigs as $config) { $value = $config['config_value']; $displayValue = empty($value) ? 'Sin valor' : htmlspecialchars($value); echo "{$config['config_key']}: $displayValue
"; } } else { echo '

⚠️ Tabla system_config NO EXISTE

'; echo '

Los valores se toman de constantes PHP por defecto:

'; } echo '

📋 Valores Activos (lo que usa el sistema ahora):

'; echo 'WEBHOOK_VERIFY_TOKEN: ' . htmlspecialchars(WEBHOOK_VERIFY_TOKEN) . '
'; echo 'WHATSAPP_TOKEN: ' . htmlspecialchars(WHATSAPP_TOKEN) . '
'; echo 'WHATSAPP_PHONE_NUMBER_ID: ' . htmlspecialchars(WHATSAPP_PHONE_NUMBER_ID) . '
'; echo 'WHATSAPP_API_URL: ' . htmlspecialchars(WHATSAPP_API_URL) . '
'; echo '
'; // Si no existe la tabla, mostrar opción para crearla if (!$configTableExists) { echo '
'; echo '

🚨 Tabla de Configuración Faltante

'; echo '

La tabla system_config no existe. Esta tabla es necesaria para guardar la configuración en la base de datos.

'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; } else { // Formulario de configuración echo '

⚙️ Actualizar Configuración

'; // Obtener valores actuales de BD $currentValues = []; $stmt = $pdo->query("SELECT config_key, config_value FROM system_config"); while ($row = $stmt->fetch()) { $currentValues[$row['config_key']] = $row['config_value']; } echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo '💡 Sugerencia: Usa un token seguro como: whatsapp_' . bin2hex(random_bytes(12)) . ''; echo ''; echo '
'; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo ''; echo ''; echo '
'; } } catch (Exception $e) { echo '
'; echo '

❌ Error de Sistema

'; echo '

Error: ' . htmlspecialchars($e->getMessage()) . '

'; echo '
'; } ?>

🌐 Enlaces del Sistema:

Panel principal: index.php

Login: login.php

Webhook endpoint: api/webhook.php

⚠️ Instrucciones de Uso: