<?php
/**
 * COMPLETAR PASO 3 - FLUJO COMPLETO
 * Crea pedido y redirige a PagoPar para pago
 */

session_start();

// Cargar configuración
$config = include 'pagopar_config.php';
$public_key = $config['public_key'];
$private_key = $config['private_key'];

// Crear pedido
$id_pedido = 'PASO3-' . time();
$monto = 1000;
$token = sha1($private_key . $id_pedido . strval(floatval($monto)));

$datos = [
    'token' => $token,
    'comprador' => [
        'ruc' => '',
        'email' => 'test@jkeas.com.py',
        'ciudad' => '1',
        'nombre' => 'Validacion Paso 3',
        'telefono' => '',
        'direccion' => '',
        'documento' => '123456',
        'coordenadas' => '',
        'razon_social' => 'Validacion Paso 3',
        'tipo_documento' => 'CI',
        'direccion_referencia' => ''
    ],
    'public_key' => $public_key,
    'monto_total' => $monto,
    'tipo_pedido' => 'VENTA-COMERCIO',
    'compras_items' => [[
        'ciudad' => '1',
        'nombre' => 'VALIDACION PASO 3 PAGOPAR',
        'cantidad' => 1,
        'categoria' => '909',
        'public_key' => $public_key,
        'url_imagen' => 'https://jkeas.com.py/uploads/config/JKlogo.png',
        'descripcion' => 'VALIDACION PASO 3 PAGOPAR',
        'id_producto' => 999,
        'precio_total' => 1000,
        'vendedor_telefono' => '',
        'vendedor_direccion' => '',
        'vendedor_direccion_referencia' => '',
        'vendedor_direccion_coordenadas' => ''
    ]],
    'fecha_maxima_pago' => date('Y-m-d H:i:s', strtotime('+7 days')),
    'id_pedido_comercio' => $id_pedido,
    'descripcion_resumen' => 'Validacion Paso 3 PagoPar',
    'forma_pago' => 9
];

// Enviar a PagoPar
$ch = curl_init($config['api_url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($datos));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

$response = curl_exec($ch);
curl_close($ch);

$json = json_decode($response, true);

if (!$json || !isset($json['respuesta']) || $json['respuesta'] !== true) {
    echo "<!DOCTYPE html><html><head><meta charset='UTF-8'><title>Error</title></head><body>";
    echo "<h1>❌ Error al crear pedido</h1>";
    echo "<p>No se pudo crear el pedido en PagoPar.</p>";
    if (isset($json['resultado'])) {
        echo "<p><strong>Razón:</strong> " . htmlspecialchars($json['resultado']) . "</p>";
    }
    echo "<pre>" . htmlspecialchars($response) . "</pre>";
    echo "</body></html>";
    exit;
}

// Obtener hash y URL de checkout
$hash = $json['resultado'][0]['data'] ?? null;
$numero = $json['resultado'][0]['pedido'] ?? null;
$url_checkout = $config['checkout_url'] . $hash;

// Guardar en sesión
$_SESSION['pagopar_hash'] = $hash;
$_SESSION['pagopar_id_pedido'] = $id_pedido;

// Guardar en base de datos
try {
    require_once 'includes/db.php';
    $db = new Database();
    
    $stmt = $db->prepare("
        INSERT INTO pedidos_pagopar 
        (id_pedido_comercio, hash_pagopar, pedido_pagopar_id, monto_total, estado, fecha_creacion, datos_comprador, datos_productos)
        VALUES (?, ?, ?, ?, 'pendiente', NOW(), ?, ?)
    ");
    
    $stmt->execute([
        $id_pedido,
        $hash,
        $numero,
        $monto,
        json_encode($datos['comprador']),
        json_encode($datos['compras_items'])
    ]);
} catch (Exception $e) {
    error_log("Error guardando pedido: " . $e->getMessage());
}

// Página de confirmación antes de redirigir
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>🚀 Completar Paso 3 - PagoPar</title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 20px;
        }
        .container {
            background: white;
            border-radius: 20px;
            box-shadow: 0 20px 60px rgba(0,0,0,0.3);
            max-width: 600px;
            width: 100%;
            padding: 50px 40px;
            text-align: center;
        }
        .icon {
            font-size: 80px;
            margin-bottom: 20px;
        }
        h1 {
            color: #667eea;
            font-size: 32px;
            margin-bottom: 15px;
        }
        .subtitle {
            color: #666;
            font-size: 18px;
            margin-bottom: 30px;
        }
        .info-box {
            background: #f8f9fa;
            border-radius: 12px;
            padding: 25px;
            margin: 30px 0;
            text-align: left;
        }
        .info-row {
            display: flex;
            justify-content: space-between;
            padding: 12px 0;
            border-bottom: 1px solid #dee2e6;
        }
        .info-row:last-child {
            border-bottom: none;
        }
        .info-label {
            font-weight: 600;
            color: #495057;
        }
        .info-value {
            color: #212529;
            font-family: 'Courier New', monospace;
        }
        .btn {
            background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
            color: white;
            padding: 18px 40px;
            border: none;
            border-radius: 50px;
            font-size: 18px;
            font-weight: 600;
            cursor: pointer;
            text-decoration: none;
            display: inline-block;
            margin-top: 20px;
            transition: all 0.3s ease;
            box-shadow: 0 4px 15px rgba(40, 167, 69, 0.3);
        }
        .btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(40, 167, 69, 0.4);
        }
        .steps {
            background: #e7f3ff;
            border-left: 4px solid #007bff;
            border-radius: 8px;
            padding: 20px;
            margin: 30px 0;
            text-align: left;
        }
        .steps h3 {
            color: #007bff;
            margin-bottom: 15px;
        }
        .steps ol {
            margin-left: 20px;
            line-height: 1.8;
        }
        .steps li {
            margin: 8px 0;
        }
        .warning {
            background: #fff3cd;
            border: 2px solid #ffc107;
            border-radius: 8px;
            padding: 15px;
            margin: 20px 0;
            color: #856404;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="icon">🚀</div>
        <h1>Pedido Creado Exitosamente</h1>
        <p class="subtitle">Listo para completar el Paso 3</p>
        
        <div class="info-box">
            <div class="info-row">
                <span class="info-label">ID Pedido:</span>
                <span class="info-value"><?php echo htmlspecialchars($id_pedido); ?></span>
            </div>
            <div class="info-row">
                <span class="info-label">Número PagoPar:</span>
                <span class="info-value"><?php echo htmlspecialchars($numero); ?></span>
            </div>
            <div class="info-row">
                <span class="info-label">Monto:</span>
                <span class="info-value">Gs. 1.000</span>
            </div>
            <div class="info-row">
                <span class="info-label">Hash:</span>
                <span class="info-value" style="word-break: break-all; font-size: 11px;">
                    <?php echo htmlspecialchars($hash); ?>
                </span>
            </div>
        </div>
        
        <div class="steps">
            <h3>📋 Pasos a seguir:</h3>
            <ol>
                <li><strong>Haz clic en "Ir a Pagar"</strong> abajo</li>
                <li>Selecciona cualquier método de pago en PagoPar (puedes usar el modo de prueba)</li>
                <li>Completa el pago (simula el pago si es ambiente staging)</li>
                <li>PagoPar te redirigirá automáticamente a tu sitio</li>
                <li><strong>En ese momento se completará el Paso 3 ✅</strong></li>
            </ol>
        </div>
        
        <div class="warning">
            <strong>⚠️ IMPORTANTE:</strong> Al volver de PagoPar, tu sistema consultará automáticamente la API.
            Esa consulta es la que PagoPar detecta para validar el Paso 3.
        </div>
        
        <a href="<?php echo htmlspecialchars($url_checkout); ?>" class="btn">
            💳 Ir a Pagar (1.000 Gs.)
        </a>
        
        <p style="margin-top: 30px; color: #666; font-size: 14px;">
            O copia este link: <br>
            <code style="background: #f8f9fa; padding: 5px 10px; border-radius: 5px; font-size: 11px; word-break: break-all; display: inline-block; margin-top: 10px;">
                <?php echo htmlspecialchars($url_checkout); ?>
            </code>
        </p>
    </div>
</body>
</html>
