";
echo "💡 Nota: Este test intenta verificar el webhook desde el servidor mismo. ";
echo "Si estás en localhost, es normal que falle. Lo importante es que el archivo exista y esté configurado correctamente.";
echo "
";
// Intentar hacer la verificación solo si no es localhost
$isLocalhost = (strpos($host, 'localhost') !== false || strpos($host, '127.0.0.1') !== false);
if (!$isLocalhost) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $verifyUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($httpCode == 200 && $response === 'test_challenge_12345') {
echo "
✅ Verificación GET exitosa - El webhook responde correctamente
";
echo "
Respuesta: $response
";
} else {
echo "
❌ Error en verificación GET
";
echo "
Código HTTP: $httpCode
";
echo "
Respuesta: " . htmlspecialchars($response) . "
";
if ($error) echo "
Error cURL: $error
";
$allOk = false;
}
} else {
// Test manual para localhost
echo "
";
echo "⚠️ Entorno Local Detectado ";
echo "No se puede hacer la verificación automática en localhost. ";
echo "En su lugar, puedes probar manualmente:";
echo "
";
echo "";
echo "
Haz clic en el botón de abajo para probar el webhook
";
if (!empty($exists)) {
// Contar registros
$count = $db->fetch("SELECT COUNT(*) as total FROM $table");
echo "
{$count['total']} registros
";
} else {
echo "
NO EXISTE
";
}
echo "
";
}
echo "
";
echo "
";
// Test 5: Últimos mensajes recibidos
echo "
";
echo "
5. Mensajes Recibidos Recientemente
";
$recentMessages = $db->fetchAll(
"SELECT c.*, u.phone_number, u.name
FROM conversations c
LEFT JOIN users u ON c.user_id = u.id
WHERE c.direction = 'incoming'
ORDER BY c.created_at DESC
LIMIT 5"
);
if (!empty($recentMessages)) {
echo "
";
// Test 7: Configuración de Menús y Respuestas
echo "
";
echo "
7. Configuración del Bot
";
$menuCount = $db->fetch("SELECT COUNT(*) as total FROM menus WHERE is_active = 1");
$optionCount = $db->fetch("SELECT COUNT(*) as total FROM menu_options WHERE is_active = 1");
$autoResponseCount = $db->fetch("SELECT COUNT(*) as total FROM autoresponses WHERE is_active = 1");
echo "
";
echo "
";
echo "
";
echo "
{$menuCount['total']}
";
echo "
Menús Activos
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
{$optionCount['total']}
";
echo "
Opciones de Menú
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
{$autoResponseCount['total']}
";
echo "
Respuestas Automáticas
";
echo "
";
echo "
";
echo "
";
echo "
";
// Resumen final
echo "
";
if ($allOk) {
echo "
";
echo "
¡Sistema Configurado Correctamente!
";
echo "
El webhook está listo para recibir mensajes de WhatsApp.
";
echo "
";
} else {
echo "
";
echo "
Se encontraron problemas
";
echo "
Revisa los errores anteriores y corrígelos antes de continuar.
";
echo "
";
}
echo "
";
echo "
Próximos pasos:
";
echo "";
echo "
Copia la URL del webhook y configúrala en Meta Developer Console
";
echo "
Usa el token de verificación: " . WEBHOOK_VERIFY_TOKEN . "
";
echo "
Envía un mensaje de prueba desde WhatsApp
";
echo "
Verifica que aparezca en la sección de mensajes recibidos