🔧 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 '
';
} 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 '';
}
} catch (Exception $e) {
echo '';
echo '
❌ Error de Sistema
';
echo '
Error: ' . htmlspecialchars($e->getMessage()) . '
';
echo '
';
}
?>
⚠️ Instrucciones de Uso:
- Webhook Verify Token: Úsalo en la configuración del webhook de Facebook/Meta
- WhatsApp Token: Obténlo desde Meta for Developers
- Phone Number ID: Disponible en la consola de WhatsApp Business
- Los cambios se guardan en la base de datos y tienen prioridad sobre los valores por defecto
- Elimina esta herramienta en producción por seguridad