Ir para conteúdo

Rafael Fiori

Members
  • Total de itens

    108
  • Registro em

  • Última visita

  • Dias vencidos

    1

Reputação

2 Comum

2 Seguidores

Sobre Rafael Fiori

  1. Rafael Fiori

    Obter Nome/Captcha por Consulta na Receita Federal via PHP/CURL

    Primeiramente, obrigado pelas respostas. Obrigado pelo link, mas o que eu pretendo mesmo, é gerar um novo certificado baseado no tempo restante da validade ou por tempo determinado. Massa191Obrigado pela ajuda, vou quebrar mais um pouco a cabeça aqui e tentar seguir sua recomendação. Já Sobre o tal do "EV" eu acho que o problema em questão eh bem complexo, o cURL não esta criando 4 valores que estão no cookie do navegador, que são referente a hora e dia da visita, os conteudo destes cookies estão criptografados. oque eu acredito que o sistema faça eh descriptografas os valores contidos neste cookie fazer uma especie de checagem e gerar o código EV que eh adicionado ao cookie posteriormente. Mas como nenhum desses valores voltam no cookie do cURL eu estou achando que o sistema usa javascript para setar estes cookies... Vou dar uma fuçada nos .js e ver se encontro algo nesse sentido, abraço
  2. Rafael Fiori

    Obter Nome/Captcha por Consulta na Receita Federal via PHP/CURL

    Alguém já conseguiu fazer algo parecido mas para pegar Certidao Negativa de Débito? Estou preso nisso já faz um bom tempo, tento replicar os passos que o navegador faz, mas aparentemente esta faltando algo e eu não consigo descobrir o que é. Codigo Abaixo gera um captcha.jpg e cria as sessions, detalhe que o endereço para criação do captcha para CND é outro e ele gera uma session extra "captcha_token" $cookieFile = COOKIES . '/cnd_' . session_id(); $current = IMAGES . '/captcha.jpg'; $url = 'http://www.receita.fazenda.gov.br/Aplicacoes/ATSPO/Certidao/gerarCaptcha.asp?app=CNDConjuntaInter'; if (!file_exists($cookieFile)) { $file = fopen($cookieFile, 'w'); fclose($file); } $ch = curl_init($url); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $imgsource = curl_exec($ch); curl_close($ch); if (!empty($imgsource)) { $img = imagecreatefromstring($imgsource); imagejpeg($img, $current); imagedestroy($img); } Agora a funcão que deveria pegar o retorno function getCnd($cnpj, $captcha) { $cookieFile = COOKIES . '/cnd_' . session_id(); if (!$cookieFile) { die('Cookie not found!'); } $content = file_get_contents($cookieFile); $explode = explode(chr(9), $content); $sessionName = trim($explode[count($explode) - 2]); $sessionId = trim($explode[count($explode) - 1]); $cookie = $sessionName . '=' . $sessionId; $post = array( 'NI' => $cnpj, 'Tipo' => 'comprovante', 'txtTexto_captcha_serpro_gov_br' => $captcha ); $ch = curl_init('http://www.receita.fazenda.gov.br/Aplicacoes/ATSPO/Certidao/CNDConjuntaInter/OpcaoCertidaoInternet.asp?app=CNDConjuntaInter'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0'); curl_setopt($ch, CURLOPT_COOKIE, $cookie); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); curl_setopt($ch, CURLOPT_REFERER, 'http://www.receita.fazenda.gov.br/Aplicacoes/ATSPO/Certidao/CNDConjuntaInter/InformaNICertidao.asp?tipo=1'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $html = curl_exec($ch); curl_close($ch); return $html; } Pagina de partida é: http://www.receita.fazenda.gov.br/Aplicacoes/ATSPO/Certidao/CndConjuntaInter/InformaNICertidao.asp?Tipo=1 O Problema ocorrido é que ele quando chega na pagina de destino, ao invés de mostrar o resultado ele acaba redirecionando novamente para a home, (como se eu tivesse colado a pagina de destino no navegador). Notei que é criado uma session EX='Algum valor', porém esta informação não estou conseguinde obter com o cURL. QQ ajuda será bem vinda, e qualquer dúvida só perguntar, obrigado!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.