Files
whatsapp/test_whatsapp_completo.php
T
2026-01-12 11:06:43 -05:00

162 lines
6.3 KiB
PHP

<?php
/**
* Diagnóstico avanzado de WhatsApp API
* Fecha: 4 de enero de 2026
*/
require_once 'config/config.php';
header('Content-Type: text/html; charset=utf-8');
echo "<h2>🔍 Diagnóstico Avanzado de WhatsApp API</h2>";
// 1. Verificar configuración actual
echo "<h3>1. Configuración Actual</h3>";
echo "TOKEN: " . substr(WHATSAPP_TOKEN, 0, 20) . "..." . substr(WHATSAPP_TOKEN, -10) . "<br>";
echo "PHONE_NUMBER_ID: " . WHATSAPP_PHONE_NUMBER_ID . "<br>";
echo "API_URL: " . WHATSAPP_API_URL . "<br>";
// 2. Test de conectividad con WhatsApp API
echo "<h3>2. Test de Conectividad</h3>";
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 . "<br>";
} else {
echo "📞 Código HTTP: $httpCode<br>";
if ($httpCode == 200) {
$data = json_decode($response, true);
echo "✅ Conexión exitosa con WhatsApp API<br>";
echo "<pre>" . json_encode($data, JSON_PRETTY_PRINT) . "</pre>";
} else {
echo "❌ Error HTTP $httpCode<br>";
echo "<pre>$response</pre>";
}
}
} catch (Exception $e) {
echo "❌ Excepción: " . $e->getMessage() . "<br>";
}
// 3. Test de mensaje a número de prueba (tu propio número)
echo "<h3>3. Test de Mensaje Real</h3>";
// Crear un botón para probar envío
?>
<form method="post" style="margin: 20px 0;">
<input type="hidden" name="test_message" value="1">
<label>Número de destino:</label>
<input type="text" name="phone" value="+573168950803" style="width: 200px; padding: 5px;">
<br><br>
<label>Mensaje de prueba:</label>
<input type="text" name="message" value="🚀 Test desde sistema - <?php echo date('H:i:s'); ?>" style="width: 400px; padding: 5px;">
<br><br>
<button type="submit" style="padding: 10px 20px; background: #25D366; color: white; border: none; border-radius: 5px;">
📱 Enviar Mensaje de Prueba
</button>
</form>
<?php
if (isset($_POST['test_message'])) {
echo "<h4>🚀 Resultado del Test:</h4>";
try {
$whatsapp = new WhatsAppService();
$phone = $_POST['phone'];
$message = $_POST['message'];
echo "📞 Enviando a: $phone<br>";
echo "💬 Mensaje: $message<br><br>";
$response = $whatsapp->sendTextMessage($phone, $message);
echo "<strong>✅ Respuesta de WhatsApp API:</strong><br>";
echo "<pre style='background: #e8f5e8; padding: 10px; border-radius: 5px;'>";
echo json_encode($response, JSON_PRETTY_PRINT);
echo "</pre>";
if (isset($response['messages'][0]['id'])) {
$messageId = $response['messages'][0]['id'];
echo "<p><strong>📨 Mensaje enviado con ID: $messageId</strong></p>";
echo "<p>⏱️ <strong>Espera 1-2 minutos y verifica tu WhatsApp</strong></p>";
// Mostrar información adicional
echo "<h4>🔍 Información del Envío:</h4>";
if (isset($response['contacts'][0])) {
$contact = $response['contacts'][0];
echo "📱 Número Input: " . $contact['input'] . "<br>";
echo "📱 WhatsApp ID: " . $contact['wa_id'] . "<br>";
}
}
} catch (Exception $e) {
echo "❌ <strong>Error:</strong> " . $e->getMessage() . "<br>";
}
}
// 4. Verificar status del mensaje reciente
echo "<h3>4. Verificar Logs del Sistema</h3>";
$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 "<pre style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px; max-height: 400px; overflow-y: auto;'>";
foreach ($lines as $line) {
if (strpos($line, 'ERROR') !== false) {
echo "<span style='color: red;'>$line</span>\n";
} elseif (strpos($line, 'WARNING') !== false) {
echo "<span style='color: orange;'>$line</span>\n";
} else {
echo "$line\n";
}
}
echo "</pre>";
} else {
echo "⚠️ No hay archivo de logs disponible<br>";
}
// 5. Posibles soluciones
echo "<h3>5. ✅ Posibles Soluciones</h3>";
echo "<div style='background: #fff3cd; padding: 15px; border: 1px solid #ffeaa7; border-radius: 5px;'>";
echo "<h4>🔧 Si el mensaje no llega, verifica:</h4>";
echo "<ol>";
echo "<li><strong>Modo de desarrollo:</strong> ¿Tu app está en modo sandbox? Los mensajes solo llegan a números pre-aprobados</li>";
echo "<li><strong>Número verificado:</strong> ¿El número desde el que envías está verificado en Facebook Business?</li>";
echo "<li><strong>Permisos del token:</strong> ¿Tu token tiene permisos 'whatsapp_business_messaging'?</li>";
echo "<li><strong>Número de destino:</strong> ¿El número +573168950803 tiene WhatsApp activo?</li>";
echo "<li><strong>Rate limiting:</strong> ¿Has enviado muchos mensajes recientemente?</li>";
echo "<li><strong>Webhook URL:</strong> ¿Tu webhook está configurado correctamente para recibir respuestas?</li>";
echo "</ol>";
echo "</div>";
echo "<div style='background: #d1ecf1; padding: 15px; border: 1px solid #bee5eb; border-radius: 5px; margin-top: 15px;'>";
echo "<h4>📋 Pasos para resolver:</h4>";
echo "<ol>";
echo "<li>Ve a <a href='https://developers.facebook.com/apps' target='_blank'>Facebook Developers</a></li>";
echo "<li>Selecciona tu app → WhatsApp → Configuración</li>";
echo "<li>Verifica que el número esté <strong>verificado</strong> y <strong>activo</strong></li>";
echo "<li>Revisa la sección 'Phone Numbers' y asegúrate que esté en modo <strong>Producción</strong></li>";
echo "<li>En 'Webhooks', verifica que tu URL esté configurada y validada</li>";
echo "</ol>";
echo "</div>";
?>