🔍 Diagnóstico Avanzado de WhatsApp API";
// 1. Verificar configuración actual
echo "
1. Configuración Actual
";
echo "TOKEN: " . substr(WHATSAPP_TOKEN, 0, 20) . "..." . substr(WHATSAPP_TOKEN, -10) . "
";
echo "PHONE_NUMBER_ID: " . WHATSAPP_PHONE_NUMBER_ID . "
";
echo "API_URL: " . WHATSAPP_API_URL . "
";
// 2. Test de conectividad con WhatsApp API
echo "2. Test de Conectividad
";
try {
// Test 1: Verificar información del número de teléfono
$ch = curl_init();
$url = WHATSAPP_API_URL . WHATSAPP_PHONE_NUMBER_ID;
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . WHATSAPP_TOKEN,
'Content-Type: application/json'
],
CURLOPT_TIMEOUT => 30
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
echo "❌ Error de conexión: " . $error . "
";
} else {
echo "📞 Código HTTP: $httpCode
";
if ($httpCode == 200) {
$data = json_decode($response, true);
echo "✅ Conexión exitosa con WhatsApp API
";
echo "" . json_encode($data, JSON_PRETTY_PRINT) . "
";
} else {
echo "❌ Error HTTP $httpCode
";
echo "$response
";
}
}
} catch (Exception $e) {
echo "❌ Excepción: " . $e->getMessage() . "
";
}
// 3. Test de mensaje a número de prueba (tu propio número)
echo "3. Test de Mensaje Real
";
// Crear un botón para probar envío
?>
🚀 Resultado del Test:";
try {
$whatsapp = new WhatsAppService();
$phone = $_POST['phone'];
$message = $_POST['message'];
echo "📞 Enviando a: $phone
";
echo "💬 Mensaje: $message
";
$response = $whatsapp->sendTextMessage($phone, $message);
echo "✅ Respuesta de WhatsApp API:
";
echo "";
echo json_encode($response, JSON_PRETTY_PRINT);
echo "";
if (isset($response['messages'][0]['id'])) {
$messageId = $response['messages'][0]['id'];
echo "📨 Mensaje enviado con ID: $messageId
";
echo "⏱️ Espera 1-2 minutos y verifica tu WhatsApp
";
// Mostrar información adicional
echo "🔍 Información del Envío:
";
if (isset($response['contacts'][0])) {
$contact = $response['contacts'][0];
echo "📱 Número Input: " . $contact['input'] . "
";
echo "📱 WhatsApp ID: " . $contact['wa_id'] . "
";
}
}
} catch (Exception $e) {
echo "❌ Error: " . $e->getMessage() . "
";
}
}
// 4. Verificar status del mensaje reciente
echo "4. Verificar Logs del Sistema
";
$logFile = 'logs/system.log';
if (file_exists($logFile)) {
$logs = file_get_contents($logFile);
$lines = array_filter(array_slice(explode("\n", $logs), -20)); // Últimas 20 líneas
echo "";
foreach ($lines as $line) {
if (strpos($line, 'ERROR') !== false) {
echo "$line\n";
} elseif (strpos($line, 'WARNING') !== false) {
echo "$line\n";
} else {
echo "$line\n";
}
}
echo "";
} else {
echo "⚠️ No hay archivo de logs disponible
";
}
// 5. Posibles soluciones
echo "5. ✅ Posibles Soluciones
";
echo "";
echo "
🔧 Si el mensaje no llega, verifica:
";
echo "
";
echo "- Modo de desarrollo: ¿Tu app está en modo sandbox? Los mensajes solo llegan a números pre-aprobados
";
echo "- Número verificado: ¿El número desde el que envías está verificado en Facebook Business?
";
echo "- Permisos del token: ¿Tu token tiene permisos 'whatsapp_business_messaging'?
";
echo "- Número de destino: ¿El número +573168950803 tiene WhatsApp activo?
";
echo "- Rate limiting: ¿Has enviado muchos mensajes recientemente?
";
echo "- Webhook URL: ¿Tu webhook está configurado correctamente para recibir respuestas?
";
echo "
";
echo "
";
echo "";
echo "
📋 Pasos para resolver:
";
echo "
";
echo "- Ve a Facebook Developers
";
echo "- Selecciona tu app → WhatsApp → Configuración
";
echo "- Verifica que el número esté verificado y activo
";
echo "- Revisa la sección 'Phone Numbers' y asegúrate que esté en modo Producción
";
echo "- En 'Webhooks', verifica que tu URL esté configurada y validada
";
echo "
";
echo "
";
?>