adrigoli 1 Denunciar post Postado Abril 16, 2014 Estou tentando fazer uma captura de dados de um CNPJ para fins de cadastro facilitado em meu sistema em php mais não consegui fazer nada concreto ainda. Tem o problema do captcha que é um problema. Bom já vi em alguns sistemas que existe um formulário para inserir o CNPJ, ao inserir e confirmar o sistema abre essa página http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao2.asp e já preenche o campo CNPJ com o que ele digitou anteriormente, ai o usuario coloca os caracteres do captcha e faz a consulta. Logo abre a página com os dados e rapidamente já fecha e volta ao sistema já com os dados nos campos preenchidos do formulário do sistema. Bom queria muito fazer igual a isso ou melhor, alguém tem alguma sugestão ou um script já pronto para isso? Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
adrigoli 1 Denunciar post Postado Abril 16, 2014 Consegui achar uma solução neste link http://tretasdanet.com/get/284c9ad300-coletando-informacoes-do-cnpj-direto-da-receita-federal-em-php Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Santos 0 Denunciar post Postado Fevereiro 13, 2015 Olá boa noite, eu usei durante alguns anos esta solução sem nenhum problema, hoje a tarde o Sintegra atualizou sua pagina com um novo sistema de captcha, tentei alterar o código mas não consegui mais fazer a consulta, alguém esta com o mesmo problema? Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Fevereiro 14, 2015 Olá Johnny Sim , a receita mudou a forma de geração e validação do Captcha HOJE , aproximando-a a solução para consulta de CPF , onde foi abandonado o sistema de geração de imagem por parametro VIEWSTATE , e implementado o sistema de session Leia este Link , onde na semana passada postei a solução para consulta de CPF http://forum.imasters.com.br/topic/531733-obter-nomecaptcha-por-consulta-na-receita-federal-via-phpcurl/ com algumas alterações nesta solução para CPF , consegui agora mesmo concluir a adaptação dos scripts para fazer as consultas de CNPJ Seguem os script abaixo , mas antes leia o link acima. São 4 scripts. 1 , index.php <html> <head> <title>CNPJ e Captcha</title> </head> <body> <form method="post" action="processa.php"> <p><span class="titleCats">CNPJ e Captcha</span> <br /> <input type="text" name="CNPJ" maxlength="19" required /> <b style="color: red">CNPJ</b> <br /> <img src="getcaptcha.php" border="0"> <br /> <input type="text" name="CAPTCHA" maxlength="6" required /> <b style="color: red">O que vê na imagem acima?</b> <br /> </p> <p> <input id="id_submit" name="enviar" type="submit" value="Consultar"/> </p> </form> </body> </html> 2 , funcoes.php <?php // define caminho absoluto e relativo para arquivo cookie $pasta_cookies = 'cookies_cnpj/'; define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.$pasta_cookies); define('HTTPCOOKIELOCAL', 'http://'.$_SERVER['SERVER_NAME'].str_replace(pathinfo($_SERVER['SCRIPT_FILENAME'],PATHINFO_BASENAME),'',$_SERVER['SCRIPT_NAME']).$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.session_id(); $cookieFile_fopen = HTTPCOOKIELOCAL.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]); } // 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, '&'); // prepara a variavel de session $cookie = $sessionName.'='.$sessionId; $cookie = array ( 'flag' => 1, $sessionName => $sessionId ); $cookie_post = http_build_query($cookie, 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_post); // 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?cnpj='); 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; } ?> 3 , getcaptcha.php <?php define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.'cookies_cnpj/'); @session_start(); $cookieFile = COOKIELOCAL.session_id(); // cria arquivo onde será salva a sessão com a receita if(!file_exists($cookieFile)) { $file = fopen($cookieFile, 'w'); fclose($file); } $url = 'http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/captcha/gerarCaptcha.asp'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); // não utilizar returntransfer , este script replica imagem captcha da receita $imgsource = curl_exec($ch); curl_close($ch); if(!empty($imgsource)) { $img = imagecreatefromstring($imgsource); header('Content-type: image/jpg'); imagejpeg($img); } ?> 4 , processa.php <?php require('funcoes.php'); $cnpj = $_POST['CNPJ']; $captcha = $_POST['CAPTCHA']; // pega html resposta da receita $getHtmlCNPJ = getHtmlCNPJ($cnpj, $captcha); if($getHtmlCNPJ) { // volova os dados em um array $campos = parseHtmlCNPJ($getHtmlCNPJ); print_r($campos); } ?> ATENÇÃO: não esqueça de criar uma pasta chamada cookie_cnpj no mesmo diretório onde estarão estes 4 scripts , onde serão gravados os cookies de sessão da receita AbraçosMarcos Peli Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Santos 0 Denunciar post Postado Março 11, 2015 Prezado Marcos, desde muito obrigado pela resposta, porém a imagem do captcha não aparece, o único erro que retorna no console é "Resource interpreted as Image but transferred with MIME type text/html:", no getcaptcha acessando diretamente gera alguns erros Warning: imagecreatefromstring(): Empty string or invalid image Compartilhar este post Link para o post Compartilhar em outros sites
maurobraga 0 Denunciar post Postado Março 24, 2015 Johnny Passei pelo mesmo problema. A solução é criar uma pasta chamada cookies_cnpj e não cookie_cnpj como especificado no tutorial. Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Santos 0 Denunciar post Postado Abril 7, 2015 Boa tarde Marcos, eu aqui de novo, o código estava funcionando 100%, só que ontem 06/04 ele começou a ficar processando e as vezes aparece e as vezes não a imagem... isolei todo o código da aplicação, coloquei em um servidor separado mas o problema continua, você sabe se foi feita mais alguma alteração no Sintegra? Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Março 14, 2017 Olá Pessoal Scripts atualizados e funcionando 100%https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Abraços Marcos Peli 1 Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Junho 2, 2017 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 Compartilhar este post Link para o post Compartilhar em outros sites
FFAELCDEC 0 Denunciar post Postado Outubro 4, 2017 Bom dia! Estou tentando fazer o mesmo procedimento mais no site do TSE (link: http://apps.tse.jus.br/saae/consultaLocalVotacaoNome.do?dispatcher=exibirConsultaLocalVotacaoNome&validate=false). No caso eu queria validar o local de votação do usuário em uma plicação de orçamento participativo. A questão é que nesse link usa o reCaptcha novo, aquele que é um check box. Tentei usar o código https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal alterando a imagem captcha por um iframe do recaptcha mais não deu certo, não valida. Há alguma forma de superar esse "recaptcha" pelo mesmo princípio da consulta aos dados na receita? Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Trickster 1 Denunciar post Postado Janeiro 20, 2018 Pessoal se alguém for desenvolver alguma aplicação que precise consultar CPF ou CNPJ na receita federal para obter dados consistentes, desenvolvi uma API aberta para tal finalidade. Usem com moderação. www.devbay.com.br Está em versão beta ainda, pode ter alguns bugs, caso encontrarem algum, por favor me avisem para que eu possa revisar. Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Antonio 0 Denunciar post Postado Março 15, 2018 Em 01/06/2017 at 21:16, Massa191 disse: 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 Se eu quiser usar esse mesmo sistema para situação cadastrais tem como? Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Março 26, 2020 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 Compartilhar este post Link para o post Compartilhar em outros sites