<?php
/**
 * Backend Seguro para PIX - VenoPayments
 * Resolve erro de CORS e protege a API Key
 */

// --- CONFIGURAÇÃO ---
$API_KEY = 'veno_live_419ab42741a5ad5bfb4591114bfc62fe892fefa2b069f7df'; 
$API_URL = 'https://beta.venopayments.com/api/v1/pix';

// Configurações de Cabeçalho para permitir chamadas do seu site
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *'); // Em produção, mude * para o seu domínio
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization');

// Trata preflight request (OPTIONS) do navegador
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    exit;
}

// 2. ROTA: CONSULTAR STATUS (GET /pix.php?id=...)
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['id'])) {
    $pixId = $_GET['id'];
    $url = $API_URL . '/' . $pixId . '/status';
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bearer ' . $API_KEY,
        'Content-Type: application/json'
    ]);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    http_response_code($httpCode);
    echo $response;
    exit;
}

// 3. ROTA: CRIAR PIX (POST /pix.php)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $input = file_get_contents('php://input');
    
    $ch = curl_init($API_URL);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $input);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bearer ' . $API_KEY,
        'Content-Type: application/json'
    ]);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    http_response_code($httpCode);
    echo $response;
    exit;
}

// Se chegar aqui, método não permitido ou rota inválida
http_response_code(405);
echo json_encode(['code' => 'METHOD_NOT_ALLOWED', 'message' => 'Método de requisição inválido.']);
?>
