<?php
// =====================================================
// checar_pagamento.php — consulta status do pagamento
// =====================================================
require_once __DIR__ . '/config.php';

// Log embutido
function log_checar(string $ctx, $dados): void {
    $f = __DIR__ . '/pagamento_debug.log';
    $l = '[' . date('Y-m-d H:i:s') . '] [' . $ctx . '] ' . json_encode($dados, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n---\n";
    @file_put_contents($f, $l, FILE_APPEND | LOCK_EX);
}

header('Content-Type: application/json; charset=utf-8');

$paymentCode = trim($_GET['code'] ?? '');

log_checar('CHECAR - CHAMADA', ['code' => $paymentCode, 'ip' => $_SERVER['REMOTE_ADDR'] ?? '']);

if (empty($paymentCode)) {
    http_response_code(400);
    echo json_encode(['erro' => 'Código não informado.']);
    exit;
}

$paymentCode = preg_replace('/[^a-zA-Z0-9]/', '', $paymentCode);

$url = 'https://checkout.mangofy.com.br/api/v1/payment/' . urlencode($paymentCode);

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPGET        => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: ' . MANGOFY_API_KEY,
        'Store-Code: '    . MANGOFY_STORE_CODE,
        'Content-Type: application/json',
        'Accept: application/json',
    ],
    CURLOPT_TIMEOUT        => 15,
    CURLOPT_SSL_VERIFYPEER => true,
]);

$resposta   = curl_exec($ch);
$httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlErro   = curl_error($ch);
curl_close($ch);

log_checar('CHECAR - RESPOSTA MANGOFY', [
    'http_status'  => $httpStatus,
    'curl_erro'    => $curlErro ?: null,
    'resposta_raw' => $resposta,
]);

if ($curlErro) {
    http_response_code(502);
    echo json_encode(['erro' => 'Falha de conexão.']);
    exit;
}

if ($httpStatus === 404) {
    http_response_code(404);
    echo json_encode(['erro' => 'Pagamento não encontrado.']);
    exit;
}

$resultado = json_decode($resposta, true);
$r = $resultado['data'] ?? $resultado;

$saida = [
    'payment_code' => $r['payment_code']   ?? $paymentCode,
    'status'       => $r['payment_status'] ?? 'unknown',
    'method'       => $r['payment_method'] ?? 'pix',
    'amount'       => $r['payment_amount'] ?? 0,
];

log_checar('CHECAR - SAÍDA FRONT', $saida);
echo json_encode($saida);