Ir para conteúdo

Massa191

Members
  • Total de itens

    80
  • Registro em

  • Última visita

  • Dias vencidos

    2

Tudo que Massa191 postou

  1. Massa191

    Consultar CNPJ na receita com cURL + PHP

    Atualizado hoje 26/03/2020 Funcionando as consultas de CPF e CNPJ para captcha Sonoro enquanto a receita as disponibilizar em paralelo ao recaptcha google agradeçam ao COVID19 , que motivou-me a encontrar uma solução para viabilizar a utilização desta ferramenta em vossos e-comerce. Abraço a todos https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal
  2. Massa191

    Consultar dados de um CNPJ direto do site da Receita

    Atualizado hoje 26/03/2020 Funcionando as consultas de CPF e CNPJ para captcha Sonoro enquanto a receita as disponibilizar em paralelo ao recaptcha google agradeçam ao COVID19 , que motivou-me a encontrar uma solução para viabilizar a utilização desta ferramenta em vossos e-comerce. Abraço a todos https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal
  3. Massa191

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

    Atualizado hoje 26/03/2020 Funcionando as consultas de CPF e CNPJ para captcha Sonoro enquanto a receita as disponibilizar em paralelo ao recaptcha google agradeçam ao COVID19 , que motivou-me a encontrar uma solução para viabilizar a utilização desta ferramenta em vossos e-comerce. Abraço a todos https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal
  4. Massa191

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

    Pessoal Acabo de atualizar o GitHub Oficial do Projeto. https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Consultas de CPF e CNPJ funcionando. Os estudos e testes que realizei até o momento a respeito do reCaptcha do Google foram infrutíferos, devido a validação de domínio realizada pelos javascripts do google, Portanto, aproveitem enquanto a Fazenda mantem os links para consulta via captcha sonoro ativos. Abraços a todos Marcos Peli
  5. Massa191

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

    Muito Bem @CriS 4devs Estou implementando esta solução no repositório Oficial em GitHub, afim de promover mais um "suspiro" de vida para estes scripts. Mas saibam que esta solução é temporária, e quando a receita resolver atualizar a consulta por captcha sonoro, eliminando estes links defasados para links atualizados com o reCaptcha do Google, o projeto muito provavelmente morrerá. Tenho estudado formas de espelhar o recaptcha, e acho pouco provável encontrar uma solução definitiva viável em função da validação de domínio realizadas por eles. Abraço a Todos ! Marcos Peli
  6. Massa191

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

    Olá Pessoal Nos últimas semanas os links de consulta da receita tem passado por instabilidades. Não sei se estão fazendo testes com novas alterações nas consultas, se é problema de rota, ou alguma outra coisa. De fato a consulta de CPF mesmo quando realizada diretamente no site da receita através do navegador passou a responder "serviço indisponível, tente mais tarde" Nos últimos 5 dias porém ,está bem estável, e retornando os dados de CPF e CNPJ corretamente Infelizmente este é o preço que se paga ao utilizar serviços públicos "gratuitos". Abraço a todos
  7. Massa191

    Consultar dados de um CNPJ direto do site da Receita

    Novas atualizações e otimizações 01-06-2017 Scripts CPF e CNPJ funcionando 100% https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Abraços
  8. Massa191

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

    Novas atualizações e otimizações 01-06-2017 Scripts CPF e CNPJ funcionando 100% https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Abraços
  9. Massa191

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

    Script atualizados em GitHub 30/05/2017 https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal
  10. Massa191

    Consultar dados de um CNPJ direto do site da Receita

    Olá Pessoal Scripts atualizados e funcionando 100% https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Abraços Marcos Peli
  11. Massa191

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

    Mas isso não impediria a imagem de ser mostrada, simplesmente está vazio porque o curl não conseguiu se conectar a receita No Servidor do cliente, deve estar faltando certificado instalado para que o Curl consiga utiliza-lo na conexão. Só pode ser isso.
  12. Massa191

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

    Pelo que você. está falando, o problema é no servidor do cliente. Dê uma lida geral em todos os posts deste tópico, existem alguns problemas semelhantes já relatados, e que podem ser resolvidos com a alteração de alguns parâmetros no php.ini de sua hospedagem. Varios destes problemas já foram discutidos e sanados por aqui Abraços Marcos Peli
  13. Massa191

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

    Olá Andre Aqui está funcionando OK em duas hospedagens distintas Não tenho elementos para afirmar se a receita bloqueia IPs com exagerado número de requisições, porêm já tive no passado um problema similar, que foi resolvido com a migração para outro servidor. Para contornar a situação, poder-se-ia efetuar a consulta com CURL através de Proxy, embora eu particularmente não goste desta solução, uma vez que expõe os dados da consulta. Abraço Marcos Peli
  14. Massa191

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

    Olá Pessoal Scripts atualizados em Github, com as alterações necessárias após alterações da Receita na consulta de CPF. Consultas de CPF e CNPJ Funcionando !!!!!, façam bom proveito, https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Abraços Marcos Peli
  15. Massa191

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

    Pessoal Só para informar que a receita mudou a consulta de CPF, que agore é realizada através de HTTPS Foram necessárias algumas alterações nos scripts Seguem abaixo os novos scripts GETCAPTCHA.PHP e FUNCOES.PHP assim que for possível eu atualizarei o repositório em github getcaptcha.php <?php // tipo de consulta (cpf ou cnpj) para gerar o captcha corretamente $tipo_consulta = $_GET['tipo_consulta']; // define o local onde serão guardados os cookies de sessão , path real e completo $pasta_cookies = 'cookies/'; define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.$pasta_cookies); define('HTTPCOOKIELOCAL',$pasta_cookies); // inicia sessão @session_start(); // define os nomes dos arquivos de cookie para cada tipo de consulta if($tipo_consulta == 'cpf') { // define arquivo de cookie e url da chamada curl para geração de captcha para consulta de cpf $cookieFile = COOKIELOCAL.'cpf_'.session_id(); $cookieFile_fopen = HTTPCOOKIELOCAL.'cpf_'.session_id(); // $url = 'http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/captcha/gerarCaptcha.asp'; $url = 'https://www.receita.fazenda.gov.br/Aplicacoes/SSL/ATCTA/CPF/captcha/gerarCaptcha.asp'; // Alterado em 15/06/2016 } else if ($tipo_consulta == 'cnpj') { // define arquivo de cookie e url da chamada curl para geração de captcha para consulta de cnpj $cookieFile = COOKIELOCAL.'cnpj_'.session_id(); $cookieFile_fopen = HTTPCOOKIELOCAL.'cnpj_'.session_id(); $url = 'http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/captcha/gerarCaptcha.asp'; } else {die("faltou parâmetro tipo_consulta");} if(!file_exists($cookieFile)) { $file = fopen($cookieFile, 'w'); fclose($file); } // faz a chamada Curl que gera a imagem de captcha para consulta de CPF ou CNPJ conforme o parâmetro passado por get $ch = curl_init($url); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Alterado em 15/06/2016 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // Alterado em 15/06/2016 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); // se tiver imagem , mostra if(!empty($imgsource)) { //$file = fopen($cookieFile.'.png', 'w'); //fwrite($file,$imgsource); //fclose($file); //echo "gravou"; $img = imagecreatefromstring($imgsource); header('Content-type: image/jpg'); imagejpeg($img); } // --------------- aqui abaixo hack para consulta de cnpj.----------- // observei que a primeira consulta de cnpj retorna vazia , possivelmente deve ter alguma variavel de sessão que precisa ser iniciada antes , na página inicial da receita -- Cnpjreva_Solicitacao2.asp // resolvi fazendo a consulta curl abaixo , ...enviando o Session name e session id que o captcha gerou para a página Cnpjreva_Solicitacao2.asp // isso ainda não é necessário para consulta de cpf if ($tipo_consulta == 'cnpj') { // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); while (!feof($file)) {$conteudo .= fread($file, 1024);} fclose ($file); $explodir = explode(chr(9),$conteudo); $sessionName = trim($explodir[count($explodir)-2]); $sessionId = trim($explodir[count($explodir)-1]); // constroe o parâmetro de sessão que será passado no próximo curl $cookie = $sessionName.'='.$sessionId; $ch = curl_init('http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/Cnpjreva_Solicitacao2.asp'); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); // dados do arquivo de cookie curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); // dados do arquivo de cookie 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_RETURNTRANSFER, true); $html = curl_exec($ch); curl_close($ch); } ?> funcoes.php <?php // define caminho absoluto e relativo para arquivo cookie $pasta_cookies = 'cookies/'; define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.$pasta_cookies); define('HTTPCOOKIELOCAL',$pasta_cookies); // inicia sessão @session_start(); // função para pegar o que interessa function pega_o_que_interessa($inicio,$fim,$total) { $interesse = str_replace($inicio,'',str_replace(strstr(strstr($total,$inicio),$fim),'',strstr($total,$inicio))); return($interesse); } // função para pegar a resposta html da consulta pelo CPF na página da receita function getHtmlCNPJ($cnpj, $captcha) { $cookieFile = COOKIELOCAL.'cnpj_'.session_id(); $cookieFile_fopen = HTTPCOOKIELOCAL.'cnpj_'.session_id(); if(!file_exists($cookieFile)) { return false; } else { // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); while (!feof($file)) {$conteudo .= fread($file, 1024);} fclose ($file); $explodir = explode(chr(9),$conteudo); $sessionName = trim($explodir[count($explodir)-2]); $sessionId = trim($explodir[count($explodir)-1]); // se não tem falg 1 no cookie então acrescenta if(!strstr($conteudo,'flag 1')) { // linha que deve ser inserida no cookie antes da consulta cnpj // observações argumentos separados por tab (chr(9)) e new line no final e inicio da linha (chr(10)) // substitui dois chr(10) padrão do cookie para separar cabecario do conteudo , adicionando o conteudo $linha , que tb inicia com dois chr(10) $linha = chr(10).chr(10).'www.receita.fazenda.gov.br FALSE /pessoajuridica/cnpj/cnpjreva/ FALSE 0 flag 1'.chr(10); // novo cookie com o flag=1 dentro dele , antes da linha de sessionname e sessionid $novo_cookie = str_replace(chr(10).chr(10),$linha,$conteudo); // apaga o cookie antigo unlink($cookieFile); // cria o novo cookie , com a linha flag=1 inserida $file = fopen($cookieFile, 'w'); fwrite($file, $novo_cookie); fclose($file); } // constroe o parâmetro de sessão que será passado no próximo curl $cookie = $sessionName.'='.$sessionId.';flag=1'; } // dados que serão submetidos a consulta por post $post = array ( 'submit1' => 'Consultar', 'origem' => 'comprovante', 'cnpj' => $cnpj, 'txtTexto_captcha_serpro_gov_br'=> $captcha, 'search_type' => 'cnpj' ); $post = http_build_query($post, NULL, '&'); $ch = curl_init('http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/valida.asp'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // aqui estão os campos de formulário curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); // dados do arquivo de cookie curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); // dados do arquivo de cookie 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); // dados de sessão e flag=1 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); curl_setopt($ch, CURLOPT_REFERER, 'http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/Cnpjreva_Solicitacao2.asp'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $html = curl_exec($ch); curl_close($ch); return $html; } // função para pegar a resposta html da consulta pelo CPF na página da receita function getHtmlCPF($cpf, $datanascim, $captcha) { // $url = 'http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublicaExibir.asp'; $url = 'https://www.receita.fazenda.gov.br/Aplicacoes/SSL/ATCTA/CPF/ConsultaPublicaExibir.asp'; // Alterado em 15/06/2016 $cookieFile = COOKIELOCAL.'cpf_'.session_id(); $cookieFile_fopen = HTTPCOOKIELOCAL.'cpf_'.session_id(); if(!file_exists($cookieFile)) { return false; } else { // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); while (!feof($file)) {$conteudo .= fread($file, 1024);} fclose ($file); $explodir = explode(chr(9),$conteudo); $sessionName = trim($explodir[count($explodir)-2]); $sessionId = trim($explodir[count($explodir)-1]); // prepara a variavel de session $cookie = $sessionName.'='.$sessionId; } // dados que serão submetidos a consulta por post $post = array ( 'txtTexto_captcha_serpro_gov_br' => $captcha, 'tempTxtCPF' => $cpf, 'tempTxtNascimento' => $datanascim, 'temptxtToken_captcha_serpro_gov_br' => '', 'temptxtTexto_captcha_serpro_gov_br' => $captcha ); $post = http_build_query($post, NULL, '&'); $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // aqui estão os campos de formulário curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); // dados do arquivo de cookie curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); // dados do arquivo de cookie curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Alterado em 15/06/2016 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // Alterado em 15/06/2016 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); // continua a sessão anterior com os dados do captcha curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); curl_setopt($ch, CURLOPT_REFERER, 'http://www.receita.fazenda.gov.br/aplicacoes/atcta/cpf/consultapublica.asp'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $html = curl_exec($ch); curl_close($ch); return $html; } // Função para extrair o que interessa da HTML e colocar em array function parseHtmlCNPJ($html) { // respostas que interessam $campos = array( 'NÚMERO DE INSCRIÇÃO', 'DATA DE ABERTURA', 'NOME EMPRESARIAL', 'TÍTULO DO ESTABELECIMENTO (NOME DE FANTASIA)', 'CÓDIGO E DESCRIÇÃO DA ATIVIDADE ECONÔMICA PRINCIPAL', 'CÓDIGO E DESCRIÇÃO DAS ATIVIDADES ECONÔMICAS SECUNDÁRIAS', 'CÓDIGO E DESCRIÇÃO DA NATUREZA JURÍDICA', 'LOGRADOURO', 'NÚMERO', 'COMPLEMENTO', 'CEP', 'BAIRRO/DISTRITO', 'MUNICÍPIO', 'UF', 'ENDEREÇO ELETRÔNICO', 'TELEFONE', 'ENTE FEDERATIVO RESPONSÁVEL (EFR)', 'SITUAÇÃO CADASTRAL', 'DATA DA SITUAÇÃO CADASTRAL', 'MOTIVO DE SITUAÇÃO CADASTRAL', 'SITUAÇÃO ESPECIAL', 'DATA DA SITUAÇÃO ESPECIAL'); // caracteres que devem ser eliminados da resposta $caract_especiais = array( chr(9), chr(10), chr(13), ' ', '</b>', ' ', '<b>MATRIZ<br>', '<b>FILIAL<br>' ); // prepara a resposta para extrair os dados $html = str_replace('<br><b>','<b>',str_replace($caract_especiais,'',strip_tags($html,'<b><br>'))); $html3 = $html; // faz a extração for($i=0;$i<count($campos);$i++) { $html2 = strstr($html,utf8_decode($campos[$i])); $resultado[] = trim(pega_o_que_interessa(utf8_decode($campos[$i]).'<b>','<br>',$html2)); $html=$html2; } // extrai os CNAEs secundarios , quando forem mais de um if(strstr($resultado[5],'<b>')) { $cnae_secundarios = explode('<b>',$resultado[5]); $resultado[5] = $cnae_secundarios; unset($cnae_secundarios); } // devolve STATUS da consulta correto if(!$resultado[0]) { if(strstr($html3,utf8_decode('O número do CNPJ não é válido'))) {$resultado['status'] = 'CNPJ incorreto ou não existe';} else {$resultado['status'] = 'Imagem digitada incorretamente';} } else {$resultado['status'] = 'OK';} return $resultado; } // Função para extrair o que interessa da HTML e colocar em array function parseHtmlCPF($html) { // respostas que interessam $campos = array( 'No do CPF:', 'Nome da Pessoa Física:', 'Data de Nascimento:', 'Situação Cadastral:', 'Data da Inscrição:' ); // caracteres que devem ser eliminados da resposta $caract_especiais = array( chr(9), chr(10), chr(13), ' ', ' ', ); // prepara a resposta para extrair os dados $html = str_replace('<br /><br />','<br />',str_replace($caract_especiais,'',strip_tags($html,'<b><br>'))); // para utilizar na hora de devolver o status da consulta $html3 = $html; // faz a extração for($i=0;$i<count($campos);$i++) { $html2 = strstr($html,utf8_decode($campos[$i])); $resultado[] = trim(pega_o_que_interessa(utf8_decode($campos[$i]),'<br',$html2)); $html=$html2; } // devolve STATUS da consulta correto if(!$resultado[0]) { if(strstr($html3,utf8_decode('CPF incorreto'))) {$resultado['status'] = 'CPF incorreto';} else if(strstr($html3,utf8_decode('não existe em nossa base de dados'))) {$resultado['status'] = 'CPF não existe';} else if(strstr($html3,utf8_decode('Os caracteres da imagem não foram preenchidos corretamente'))) {$resultado['status'] = 'Imagem digitada incorretamente';} else {$resultado['status'] = 'Receita não responde';} } else {$resultado['status'] = 'OK';} return $resultado; } ?> Abraços a todos Marcos Peli
  16. Massa191

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

    Olá Obrigado pelo elogio. Somente conseguimos obter os dados que são disponibilizados nas consultas a receita, pois o script não faz nada mais do que isso, consultar o CPF ou o CNPJ diretamente na receita como se vc. estivesse fazendo isso diretamente lá. Os resultados capturados são os que apareceriam na tela após a consulta. Se um dia a receita disponibilizar mais dados , sim , poderíamos da mesma forma captura-los pelo script. Abraços
  17. Massa191

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

    Olá Amigo O Script não está conseguindo modificar o arquivo de cookie e gravar o atributo flag=1 podem ser varias coisas já discutidas neste tópico , como as diretivas em php.ini de sua hospedagem, até a estrutura de arquivos utilizada em hospedagem windows. Aconselho uma leitura completa deste tópico em todas as páginas e respostas pois este problema já foi abordado Utilize a última versão do script disponibilizado no github Abraços
  18. Massa191

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

    Olá Rafael Através das ferramentas desenvolvedores de seu FF, monitore a REDE, e veja os Parâmetros , respostas e Cookies do pedido e da resposta de cada consulta diretamente ao site da receita, para depois compara-lo ao cookie que foi gravado no seu servidor através de consulta curl. Através de JS, podem são adicionados parâmetros aos Cookies. Vc. terá que alterar seu cookie de maneira a ter as informações como se o JS as tivesse feito A parte do script que pega os dados de sessão do cookie terá que ser reescrita, pois a medida que são colocados parâmetros novos no cookie, seja pela consulta ou pelo script, o explode da forma que está retornará os dados novos e não a sessionid $explode = explode(chr(9), $content); $sessionName = trim($explode[count($explode) - 2]); $sessionId = trim($explode[count($explode) - 1]); O count explode -1 e o count explode -2 não apontarão os dados da session Talvez vc. tenha que enviar junto ao cabeçãrio da consulta CURL além dos dados da session , também os dados captchatoken , que são gravados no cookie. vc. deve reescrever o código acima de maneira que ele seja capaz de independentemente do numero de consultas e alterações de inf. dentro do cookie, ele sempre devolva a session id e o captchatoken que estão dentro do cookie através de seu programa de ftp , abra o cookie originado na consulta CURL e veja seu conteúdo antes da consulta (após a geração do captcha) , e depois da consulta Compare este cookies ao cookie de seu firefox, na consulta direta ao site da fazenda realizada diretamente pelo navegador (sem curl) O Parâmetro que vc. cita EX='Algum Valor' é um cookie de resposta. Creio que vc. não precisa se preocupar com ele Abraço ​Marcos Peli
  19. Massa191

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

    Olá Ricardo Caldeira O que vc. está propondo já existe dentro das funções parseHtmlCNPJ($html) e parseHtmlCPF($html). A Parte do Código que devolve um Status de erro é a Seguinte: em function parseHtmlCNPJ($html) ... este é o trecho de código que faz a atribuição de status da consulta // devolve STATUS da consulta correto if(!$resultado[0]) { if(strstr($html3,utf8_decode('O número do CNPJ não é válido'))) {$resultado['status'] = 'CNPJ incorreto ou não existe';} else {$resultado['status'] = 'Imagem digitada incorretamente';} } else {$resultado['status'] = 'OK';} em function parseHtmlCPF($html) ... este é o trecho de código que faz a atribuição de status da consulta // devolve STATUS da consulta correto if(!$resultado[0]) { if(strstr($html3,utf8_decode('CPF incorreto'))) {$resultado['status'] = 'CPF incorreto';} else if(strstr($html3,utf8_decode('não existe em nossa base de dados'))) {$resultado['status'] = 'CPF não existe';} else if(strstr($html3,utf8_decode('Os caracteres da imagem não foram preenchidos corretamente'))) {$resultado['status'] = 'Imagem digitada incorretamente';} else {$resultado['status'] = 'Receita não responde';} } else {$resultado['status'] = 'OK';} Portanto basta fazer um if para a variavel de retorno da Função $campos['status'] e direcionar a execução do script para aquilo que vc. desejar executar exemplos: if($campos['status'] == 'Imagem digitada incorretamente') { ...aquilo que vc. deseja executar se o status for igual a 'Imagem digitada incorretamente'... } ou então if($campos['status'] == 'CNPJ incorreto ou não existe') { ...aquilo que vc. deseja executar se o status for igual a 'CNPJ incorreto ou não existe'... } Abraço Marcos Peli
  20. Massa191

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

    Olá Ricardo Caldeira O Erro que você. reporta deve-se ao fato de o ponteiro de arquivo de cookie passado , e que deveria estar aberto, não ser valido. Segue link manual feof() http://php.net/manual/pt_BR/function.feof.php feof retorna false enquanto não encontrar o final de arquivo. Ao encontrar final de arquivo retorna true portanto devemos usar da seguinte forma, para que se percorra todo o arquivo até o seu final while (!feof($file)) ......... faça enquanto não encontrar o final de arquivo ao substituir ! por @ , você. está fazendo 2 coisas. a primeira é que está invertendo a lógica (de false para true ..... faça quando encontrar o final de arquivo, o que não faz o menor sentido), e a segunda é que esta suprimindo eventual warning, pois o @ precedendo comandos no php tem a função de suprimir os erros, é só deve ser usado quando você. sabe exatamente o que está fazendo, ou seja, sabe que será retornado algum erro e quer suprimi-lo para continuar a executar o script seu problema pode estar ocorrendo por um dos motivos abaixo 1 - diretivas allow_url_fopen de seu php Solução: Sexto post da pg2 deste tópico ,... link abaixo http://forum.imasters.com.br/topic/531733-obter-nomecaptcha-por-consulta-na-receita-federal-via-phpcurl/page-2 ou 2 - Sua hospedagem é Windows Solução: nono post da pg3 deste tópico,.... link abaixo http://forum.imasters.com.br/topic/531733-obter-nomecaptcha-por-consulta-na-receita-federal-via-phpcurl/page-3 Espero ter ajudado Abraço Marcos Peli
  21. Massa191

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

    Voltando ao Foco do tópico para quem está chegando agora. Consulta de CPF e CNPJ direto no site da receita Segue abaixo link do repositório no GitHub para Download, colaboração, etc..., fiquem a vontade para dar estrela ou um Fork, rs https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Scripts atualizados e funcionais. Abraços Marcos Peli
  22. Massa191

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

    Olá Andrerds1 irmãozinho, tá fácil ...... Vc. tem a HTML com todas as informações A informação que aparece no tooltip está no atributo title da tag de hiperlink <a rel="tooltip" class="OBS" title='Alvará Provisório emitido/ nº 2142 valido até 08/12/2015'> <img border="0" src="/TPNET/Content/themes/base/imagens/obstramite.gif"> </a> Vc. pode extrair na unha, como eu fiz, ...com expressões regulares, ou com Simple HTML DOM parser. http://davidwalsh.name/php-notifications Tá na hora de pescar amigo, ... que o peixe tá pedindo pra ser fisgado Fico Contente em poder ter ajudado Grande Abraço Marcos Peli​ ​
  23. Massa191

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

    Olá Andrerds1 Segue Scripts para realizar sua Consulta de processo já pronto Lembrando que a função para extração dos dados da HTML ainda precisa ser escrita, mas isso acho que vc. consegue resolver né ? Abraço Marcos Peli index.php <?php ?> <html> <head> <title>CNPJ , CPF e Captcha</title> </head> <body> <form id="form_processo" name="form_processo" method="post" action="processa.php"> <p><span class="titleCats">Consulta Processo</span> <br /> <input name="ano" type="number" maxlength="4" required /> <b style="color: red">ANO</b> <br /> <input name="processo" type="number" maxlength="5" required /> <b style="color: red">N.Processo</b> <br /> <input name="identificador" type="text" maxlength="7" required /> <b style="color: red">Identificador</b> <br /> </p> <p> <input id="enviar" name="enviar" type="submit" value="Consultar"/> </p> </form> </body> </html> processa.php <?php require('funcoes.php'); // dados da postagem de formulário de consulta_processo $ano = $_POST['ano']; $processo = $_POST['processo']; $identificador = $_POST['identificador']; if($ano and $processo and $identificador) { $getHtmlVV = getHtmlVV($ano, $processo, $identificador); $campos = parseHtmlVV($getHtmlVV); } echo $getHtmlVV; print_r($campos); ?> funcoes.php <?php // função para pegar o que interessa function pega_o_que_interessa($inicio,$fim,$total) { $interesse = str_replace($inicio,'',str_replace(strstr(strstr($total,$inicio),$fim),'',strstr($total,$inicio))); return($interesse); } // função para pegar a resposta html da consulta de processos function getHtmlVV($ano, $processo, $identificador) { // dados que serão submetidos a consulta por GET $protocolo = $ano."/".$processo; $get = array ( 'protocolo' => $protocolo, 'identificador' => $identificador, 'chamada' => 2, 'consultaSA' => 'true' ); $url = 'http://tpnet.vilavelha.es.gov.br/TPNET/ConsultaProcesso/Processo/'; $get = http_build_query($get, NULL, '&'); $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_URL, "$url?$get"); // aqui estão os campos de formulário enviados por get 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_REFERER, 'http:://tpnet.vilavelha.es.gov.br/TPNET/ConsultaProcesso/Consultar'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $html = curl_exec($ch); curl_close($ch); return $html; } // Função para extrair o que interessa da HTML e colocar em array function parseHtmlVV($html) { // Aquis será montado o script que fara a extração dos resultados da HTML } ?>
  24. Massa191

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

    Mas aí tá muito fácil o link não expirou até agora e não é necessário o parâmetro &_=1441994607355 (pelo menos no teste que fiz aqui funcionou sem) tenta o link abaixo aí !!!! http://tpnet.vilavelha.es.gov.br/TPNET/ConsultaProcesso/Processo/?protocolo=2015/22665&identificador=Z374TF2&chamada=2&consultaSA=true vc. precisa de: uma página em HTML com o Form para a entrada dos dados identificador ano processo enviar para o script PHP que fara a consulta CURL através do Método GET para o endereço http://tpnet.vilavelha.es.gov.br/TPNET/ConsultaProcesso/Processo/ monta as variáveis que serão passadas pelo curl e depois faz a chamada identificador=Z374TF2 protocolo=2015/22665 (protocolo = ano."/".processo) chamada=2 consultaSA=true na resposta vc. extrai o que interessa e pronto Estou viajando e só volto no f de semana vai testando aí, qq coisa resolvo isso pra vc. no f de semana Abs. Marcos Peli
×

Informação importante

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