<?php
/**
 * TESTER COMPLETO DEL CIRCUITO PAGOPAR
 * Verificando todos los pasos para el pase a producción
 */

echo "<!DOCTYPE html>
<html>
<head>
    <meta charset='UTF-8'>
    <title>Circuito Completo PagoPar - Pedido #17776326</title>
    <style>
        body { font-family: Arial, sans-serif; max-width: 1000px; margin: 20px auto; padding: 20px; }
        .paso { border: 2px solid #ddd; margin: 20px 0; padding: 20px; border-radius: 10px; }
        .paso-1 { border-color: #28a745; background: #d4edda; }
        .paso-2 { border-color: #28a745; background: #d4edda; }
        .paso-3 { border-color: #dc3545; background: #f8d7da; }
        .success { background: #28a745; color: white; padding: 10px; border-radius: 5px; text-align: center; margin: 10px 0; }
        .error { background: #dc3545; color: white; padding: 10px; border-radius: 5px; text-align: center; margin: 10px 0; }
        .warning { background: #ffc107; color: #212529; padding: 10px; border-radius: 5px; margin: 10px 0; }
        .info { background: #17a2b8; color: white; padding: 10px; border-radius: 5px; margin: 10px 0; }
        pre { background: #f8f9fa; padding: 10px; border-radius: 5px; overflow-x: auto; font-size: 12px; }
        .btn { background: #007bff; color: white; padding: 8px 16px; border: none; border-radius: 5px; cursor: pointer; text-decoration: none; display: inline-block; margin: 5px; }
        .btn:hover { background: #0056b3; }
        h1, h2, h3 { margin-top: 0; }
    </style>
</head>
<body>";

echo "<h1>🚀 CIRCUITO COMPLETO PAGOPAR - STAGING</h1>";

echo "<div class='info'>";
echo "<h3>🎯 OBJETIVO: Completar circuito con pedido #17776326 para pase a PRODUCCIÓN</h3>";
echo "<p><strong>Entorno:</strong> Staging</p>";
echo "<p><strong>Pedido requerido:</strong> #17776326 (más reciente)</p>";
echo "</div>";

// Incluir configuración
include 'pagopar_config.php';

if (!isset($private_key) || !isset($public_key)) {
    echo "<div class='error'>❌ Error: No se pudieron cargar los tokens de configuración</div>";
    exit;
}

$numero_pedido = '17776326'; // Pedido requerido por PagoPar

// PASO 1: Verificar creación de pedidos ✅
echo "<div class='paso paso-1'>";
echo "<h2>PASO 1: Creación de Pedidos ✅</h2>";
echo "<div class='success'>✅ COMPLETADO - Ya tienes pedidos creados en PagoPar</div>";
echo "<p><strong>Pedido actual:</strong> #$numero_pedido</p>";
echo "<p><strong>Status:</strong> Funcional (confirmado por PagoPar)</p>";
echo "</div>";

// PASO 2: Verificar webhook de notificaciones ✅
echo "<div class='paso paso-2'>";
echo "<h2>PASO 2: Webhook de Notificaciones ✅</h2>";
echo "<div class='success'>✅ COMPLETADO - Validación pasada (verde en panel)</div>";
echo "<p><strong>Webhook:</strong> webhook_copia_exacta.php</p>";
echo "<p><strong>Función:</strong> Responde exactamente los datos recibidos</p>";
echo "<p><strong>Status:</strong> Verde en panel PagoPar</p>";
echo "</div>";

// PASO 3: Consulta de pedidos ❌
echo "<div class='paso paso-3'>";
echo "<h2>PASO 3: Consulta de Pedidos ❌</h2>";

// Test inmediato del Paso 3
$url = "https://api.pagopar.com/api/pedidos/1.1/traer";
$data = json_encode([
    'numero_pedido' => $numero_pedido,
    'private_key' => $private_key
]);

echo "<h3>🧪 Probando consulta de pedido #$numero_pedido</h3>";
echo "<p><strong>URL:</strong> $url</p>";
echo "<p><strong>Datos enviados:</strong></p>";
echo "<pre>" . htmlspecialchars($data) . "</pre>";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

echo "<p><strong>Respuesta HTTP:</strong> $http_code</p>";
echo "<p><strong>Respuesta JSON:</strong></p>";
echo "<pre>" . htmlspecialchars($response) . "</pre>";

$respuesta_data = json_decode($response, true);
$paso3_ok = false;

if ($http_code === 200 && $respuesta_data && isset($respuesta_data['respuesta']) && $respuesta_data['respuesta'] === true) {
    echo "<div class='success'>🎉 ¡PASO 3 COMPLETADO!</div>";
    $paso3_ok = true;
} else {
    echo "<div class='error'>❌ PASO 3 BLOQUEADO</div>";
    if (isset($respuesta_data['resultado'])) {
        echo "<p><strong>Error:</strong> " . htmlspecialchars($respuesta_data['resultado']) . "</p>";
    }
}

echo "</div>";

// RESUMEN FINAL
echo "<div style='border: 3px solid #000; padding: 20px; border-radius: 10px; margin: 30px 0; background: #f8f9fa;'>";
echo "<h2>📊 RESUMEN FINAL DEL CIRCUITO</h2>";

echo "<table style='width: 100%; border-collapse: collapse;'>";
echo "<tr style='background: #e9ecef;'>";
echo "<th style='border: 1px solid #ddd; padding: 10px; text-align: left;'>Paso</th>";
echo "<th style='border: 1px solid #ddd; padding: 10px; text-align: left;'>Status</th>";
echo "<th style='border: 1px solid #ddd; padding: 10px; text-align: left;'>Descripción</th>";
echo "</tr>";

echo "<tr>";
echo "<td style='border: 1px solid #ddd; padding: 10px;'><strong>Paso 1</strong></td>";
echo "<td style='border: 1px solid #ddd; padding: 10px; color: #28a745;'>✅ VERDE</td>";
echo "<td style='border: 1px solid #ddd; padding: 10px;'>Creación de pedidos funcionando</td>";
echo "</tr>";

echo "<tr>";
echo "<td style='border: 1px solid #ddd; padding: 10px;'><strong>Paso 2</strong></td>";
echo "<td style='border: 1px solid #ddd; padding: 10px; color: #28a745;'>✅ VERDE</td>";
echo "<td style='border: 1px solid #ddd; padding: 10px;'>Webhook de notificaciones validado</td>";
echo "</tr>";

echo "<tr>";
echo "<td style='border: 1px solid #ddd; padding: 10px;'><strong>Paso 3</strong></td>";
echo "<td style='border: 1px solid #ddd; padding: 10px; color: " . ($paso3_ok ? '#28a745;">✅ VERDE' : '#dc3545;">❌ ROJO') . "</td>";
echo "<td style='border: 1px solid #ddd; padding: 10px;'>Consulta de pedidos " . ($paso3_ok ? 'funcionando' : 'bloqueada por token') . "</td>";
echo "</tr>";

echo "</table>";

if ($paso3_ok) {
    echo "<div class='success' style='font-size: 18px; margin-top: 20px;'>";
    echo "🚀 ¡CIRCUITO COMPLETO! Ya puedes solicitar el pase a PRODUCCIÓN";
    echo "</div>";
} else {
    echo "<div class='error' style='font-size: 18px; margin-top: 20px;'>";
    echo "⚠️ CIRCUITO INCOMPLETO - Paso 3 necesita corrección";
    echo "</div>";
    
    echo "<div class='warning' style='margin-top: 15px;'>";
    echo "<h3>🔧 Acciones recomendadas:</h3>";
    echo "<ol>";
    echo "<li><strong>Regenerar tokens:</strong> Ve al panel de PagoPar y regenera los tokens completamente</li>";
    echo "<li><strong>Verificar pedido:</strong> Confirma que el pedido #$numero_pedido existe en staging</li>";
    echo "<li><strong>Contactar soporte:</strong> Si el problema persiste, envía esta evidencia a PagoPar</li>";
    echo "<li><strong>Ambiente:</strong> Verifica que estés en el ambiente correcto (staging)</li>";
    echo "</ol>";
    echo "</div>";
}

echo "</div>";

// Opciones adicionales
echo "<div style='margin-top: 30px; padding: 20px; background: #e9ecef; border-radius: 10px;'>";
echo "<h3>🔗 Enlaces útiles:</h3>";
echo "<p><a href='webhook_copia_exacta.php' class='btn' target='_blank'>Ver Webhook Paso 2</a></p>";
echo "<p><a href='paso3_pedido_nuevo.php' class='btn' target='_blank'>Test Paso 3 Individual</a></p>";
echo "<p><a href='logs/' class='btn' target='_blank'>Ver Logs Completos</a></p>";
echo "</div>";

// Log del circuito completo
if (!is_dir('logs')) mkdir('logs', 0755, true);
$log_content = date('Y-m-d H:i:s') . " - CIRCUITO COMPLETO STAGING\n";
$log_content .= "Pedido objetivo: #$numero_pedido\n";
$log_content .= "Paso 1: ✅ VERDE (Creación pedidos)\n";
$log_content .= "Paso 2: ✅ VERDE (Webhook notificaciones)\n";
$log_content .= "Paso 3: " . ($paso3_ok ? '✅ VERDE' : '❌ ROJO') . " (Consulta pedidos)\n";
$log_content .= "HTTP Code Paso 3: $http_code\n";
$log_content .= "Respuesta Paso 3: $response\n";
$log_content .= "Circuito completo: " . ($paso3_ok ? 'SÍ - LISTO PARA PRODUCCIÓN' : 'NO - PASO 3 BLOQUEADO') . "\n";
$log_content .= str_repeat("=", 100) . "\n";

file_put_contents('logs/circuito_completo.log', $log_content, FILE_APPEND | LOCK_EX);

echo "<p><small>📝 Log completo guardado en: logs/circuito_completo.log</small></p>";

echo "</body></html>";
?>