❌ Error cargando configuración: " . htmlspecialchars($e->getMessage()) . "
";
exit;
}
// Procesar formulario
if ($_POST) {
echo "";
echo "
💾 GUARDANDO EN BASE DE DATOS...
";
$config_updates = [
'whatsapp_token' => trim($_POST['whatsapp_token'] ?? ''),
'whatsapp_phone_number_id' => trim($_POST['phone_id'] ?? ''),
'webhook_verify_token' => trim($_POST['webhook_token'] ?? ''),
'whatsapp_api_url' => trim($_POST['api_url'] ?? 'https://graph.facebook.com/v22.0/')
];
try {
$pdo = new PDO(
"mysql:host=" . DB_HOST . ";port=" . DB_PORT . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET,
DB_USER,
DB_PASS,
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]
);
$updated = 0;
$inserted = 0;
foreach ($config_updates as $key => $value) {
if (empty($value)) continue;
// Verificar si ya existe
$stmt = $pdo->prepare("SELECT id FROM system_config WHERE config_key = ?");
$stmt->execute([$key]);
if ($stmt->rowCount() > 0) {
// Actualizar existente
$stmt = $pdo->prepare("UPDATE system_config SET config_value = ?, updated_at = NOW() WHERE config_key = ?");
$stmt->execute([$value, $key]);
$updated++;
echo "
✅ Actualizado: $key
";
} else {
// Insertar nuevo
$descriptions = [
'whatsapp_token' => 'Token de acceso de WhatsApp Business API',
'whatsapp_phone_number_id' => 'ID del número de teléfono de WhatsApp',
'webhook_verify_token' => 'Token de verificación para webhook',
'whatsapp_api_url' => 'URL base de la API de WhatsApp'
];
$stmt = $pdo->prepare("INSERT INTO system_config (config_key, config_value, description) VALUES (?, ?, ?)");
$stmt->execute([$key, $value, $descriptions[$key] ?? 'Configuración de WhatsApp']);
$inserted++;
echo "
✅ Insertado: $key
";
}
}
echo "
📊 Total actualizados: $updated
";
echo "
📊 Total insertados: $inserted
";
// Verificar que se guardó correctamente
echo "
🔄 Verificando configuración guardada...
";
foreach ($config_updates as $key => $value) {
if (empty($value)) continue;
$stmt = $pdo->prepare("SELECT config_value FROM system_config WHERE config_key = ?");
$stmt->execute([$key]);
$row = $stmt->fetch();
if ($row && $row['config_value'] === $value) {
echo "
✅ $key guardado correctamente
";
} else {
echo "
❌ $key NO se guardó correctamente
";
}
}
} catch (PDOException $e) {
echo "
❌ Error de base de datos: " . htmlspecialchars($e->getMessage()) . "
";
}
echo "
";
}
// Mostrar configuración actual
echo "";
echo "
⚙️ CONFIGURACIÓN ACTUAL
";
try {
$pdo = new PDO(
"mysql:host=" . DB_HOST . ";port=" . DB_PORT . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET,
DB_USER,
DB_PASS,
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
$stmt = $pdo->query("SELECT config_key, config_value FROM system_config WHERE config_key IN ('whatsapp_token', 'whatsapp_phone_number_id', 'webhook_verify_token', 'whatsapp_api_url')");
$current_config = [];
while ($row = $stmt->fetch()) {
$current_config[$row['config_key']] = $row['config_value'];
}
// Mostrar configuración
$configs_to_show = [
'whatsapp_token' => 'Token de WhatsApp',
'whatsapp_phone_number_id' => 'Phone Number ID',
'webhook_verify_token' => 'Webhook Verify Token',
'whatsapp_api_url' => 'API URL'
];
foreach ($configs_to_show as $key => $label) {
if (isset($current_config[$key])) {
$value = $current_config[$key];
if (in_array($key, ['whatsapp_token', 'webhook_verify_token'])) {
$display = substr($value, 0, 10) . '...' . substr($value, -10) . " (" . strlen($value) . " chars)";
} else {
$display = $value;
}
echo "
✅ $label: $display
";
} else {
echo "
❌ $label: No configurado en BD
";
}
}
} catch (PDOException $e) {
echo "
❌ Error consultando BD: " . htmlspecialchars($e->getMessage()) . "
";
}
echo "
";
// Formulario
echo "";
echo "
🔍 VALORES ACTUALES DE LAS CONSTANTES
";
$constants_to_check = [
'WHATSAPP_TOKEN' => 'Token actual en memoria',
'WHATSAPP_PHONE_NUMBER_ID' => 'Phone ID actual en memoria',
'WEBHOOK_VERIFY_TOKEN' => 'Webhook token actual en memoria',
'WHATSAPP_API_URL' => 'API URL actual en memoria'
];
foreach ($constants_to_check as $const => $desc) {
if (defined($const)) {
$value = constant($const);
if (in_array($const, ['WHATSAPP_TOKEN', 'WEBHOOK_VERIFY_TOKEN'])) {
if (strlen($value) > 20) {
$display = substr($value, 0, 10) . '...' . substr($value, -10);
} else {
$display = $value;
}
} else {
$display = $value;
}
echo "
✅ $desc: $display
";
} else {
echo "
❌ $desc: No definida
";
}
}
echo "
NOTA: Después de guardar, recarga esta página para ver los nuevos valores
";
echo "
";
echo "