samara_br 0 Denunciar post Postado Setembro 4, 2011 Olá pessoal... Estou tentando fazer um formulario para consulta de CNPJ na receita, através da biblioteca cURL para PHP mas não estou conseguindo... alguém ja fez isso? poderiam me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 4, 2011 se você se refere ao serviço dessa página, esquece, pois o captcha serve justamente para evitar isso. http://www.receita.fazenda.gov.br/aplicacoes/atcta/cpf/consultapublica.asp Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Setembro 4, 2011 Você pode tentar abrir essa página e mostrar o CAPTCHA para o usuário, assim quando ele clicar no seu botão, você faz um POST para o URL alvo do formulário da receita enviando o CNPJ E o CAPCTHA. O problema do site da Receita, é que parece que a imagem tem tempo limite (bem curto, por sinal). E isso pode atrapalhar. Compartilhar este post Link para o post Compartilhar em outros sites
samara_br 0 Denunciar post Postado Setembro 4, 2011 Olá pessoal... Bruno Augusto é bem isso que quero, na verdade não burlar a imagem, mas a minha intenção é fazer meu proprio formulário de busca e no final poder manipular os dados do retorno, tenho tentado com a biblioteca cURL do PHP mas não quer funcionar, sempre me retorna um erro... como se o que foi digitado não bate com o que a figura exibe... Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Setembro 4, 2011 Qual erro? Como esse serviço diariamente, já percebi que assim que a página carrega com a imagem X, alguns segundos depois ela já se altera para Y. Acredito que o interessante seria fazer com AJAX, enviando uma requisição a cada X segundos atualizando aquilo que é mostrado para o usuário. Compartilhar este post Link para o post Compartilhar em outros sites
samara_br 0 Denunciar post Postado Setembro 5, 2011 Boa noite Bruno... Então, estou tentando seguir o exemplo deste post aqui do forum http://forum.imasters.com.br/topic/389299-dados-da-receita-federal-curl/ tenho 3 retornos, captcha incorreto, cnpj incorreto, ou ainda dados não encontrado, mas a função sempre retorna que o captcha esta errado :/ também acho que pode ser algo relacionado ao tempo, ou até mesmo quando a pagina da submit o captcha ser alterado sozinho... ajax pode ser que seria solução, mas entendo muito pouco de ajax para fazer isso xD... mas se for a saida vou ter que aprende ajax e depois retorna ao assunto... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 5, 2011 Há meios para burlar, mas não compactuo com a prática, por isso não vou ensinar dicas. O que posso te dizer é que você pode tentar entrar em contato gentilmente e formalmente com a Receita Federal e propor uma API pública autenticada. Acredito que esse seja o modo mais educado e eficiente. Compartilhar este post Link para o post Compartilhar em outros sites
Bugs99 0 Denunciar post Postado Fevereiro 22, 2012 Existe um site que disponibiliza uma api ( biblioteca, .dll) que pode ser usada em varias linguagens, inclusive PHP, para consultar os dados da receita federal, sintegra e outros sites: http://knu.com.br Contratei aqui pra minha empresa e funciona muito bem. Usamos para confirmar dados cadastrais de clientes a partir de um CPF ou CNPJ (nome completo, razão social, situação cadastral, endereço, etc). Recomendo. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Fevereiro 23, 2012 @Bugs99, bem vindo ao iMasters. Apesar de este não ser um tópico TÃO antigo, pedimos que continue colaborando conosco em tópicos mais recentes. Quanto à sua dica, de fato é válida, mas a intenção original do autor seria fazer programatica E gratuitamente. Até minha última resposta eu não sabia com certeza se era crime ou não, depois li que se algum recurso do site fosse utilizado de forma externa, sem um contrato firmado com a Receita (o que pode haver encargos), este deveria ser denunciado. Até então eu havia pensado em desenvolver, mas depois que li isso... Compartilhar este post Link para o post Compartilhar em outros sites
omanual 0 Denunciar post Postado Março 6, 2012 Bruno Augusto, tudo bem, acabo de me cadastrar no imasters. Seguinte, pesquisei muito e achei um código PHP que pega as informações do site da receita. Na verdade fiz algumas modificações no mesmo para que funcionasse corretamente. O código pega no site da receita o CAPTCHA e exibe no site de terceiros, assim preenchendo o mesmo junto com um numero valido de CPF, a consulta é feita e retorna o nome do cidadão e o numero do CPF. Mas vamos a questão, procurei em vários sites do governo, e principalmente no site da receita quanto a ilegalidade disso, mas não encontrei nada sobre! O código não burla o CAPTCHA, ele faz a consulta com o cURL gerando cookies e tudo mais, então não é um robô. Poderia me dizer onde leu sobre ser ilegal? Preciso dessa informação, pois usarei o mesmo código para outros sites do governo, visto que é uma mão na roda para cadastros, contadores, despachantes, etc. Veja isso:Política de Privacidade e Uso (Receita) Abraço Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Março 6, 2012 De acordo com esse link o Item 4 permite que você utilize os recursos do site, de uma forma geral, com isso garante-nos direito de uso programático. Eles apenas se reservam o direito de modificar sem prévio aviso. Sendo assim, quem desenvolver esses "scripts sanguessugas" é quem deverá se preocupar em refletir seu código com o código (principalmente HTML) da Receita. Porém, o Item 7 é mais específico, focando principalmente no Sigilo Fiscal das informações e é aí que entra a ilegalidade do recurso. Eu li, não lembro onde, que existe a possibilidade de "licenciamento" dos recursos da Receita. Talvez eu esteja enganado, afinal, foi um texto lido num momento preguiçoso *quando não se presta muito atenção). Em sendo uma afirmação falsa, então TODOS os sites que o fazem através da Receita são ilegais. Se for verdadeira, então sim existe a possibilidade de, de repente, até existir uma API proprietária para tanto. E talvez por ser algo pago é que não se tem muitas informações de pesquisa. Tem um site, KNU que diz fazer isso via biblioteca (DLL ou SO), mas não sei sobre a legalidade do procedimento. Compartilhar este post Link para o post Compartilhar em outros sites
omanual 0 Denunciar post Postado Março 7, 2012 Bom, acho eu, que não tem problemas em desenvolver softwares ou códigos desde que sejam "livres". Acho até que podemos desenvolver e cobrar por certos softwares ou códigos, mas que seu uso principal não seja a consulta de dados. Exemplificando, tenho meus serviços contratos por um despachante que deseja um site institucional mas com alguns recursos extras, como consulta de cpf, cnpj, cnh, multas sem precisar abrir os sites do governo, assim sendo, cobrarei pelo site em si e não pela consulta, visto que a consulta é gratuita em todos os sites. Sobre esse site que tu disse, acho estranho cobrar por consulta, sendo os serviços gratuitos, mais estranho ainda alguém pagar por isso. Eu entendo dessa forma, gostaria muito de ter o entendimento concreto do assunto, pois estou desenvolvendo alguns sites e dependo disso para continuar. O que acham? Abraço. PS. não sei se é o lugar certo para discutir esse assunto, caso não seja, favor avisar. Compartilhar este post Link para o post Compartilhar em outros sites
Mayk Brito 0 Denunciar post Postado Março 25, 2012 Pessoal acabei de me casdastrar também e queria deixar aqui o link para a solução que vocês procuram. Php = Curl e Captcha. Como eu entendi e aprendi a trabalhar com isso. Escrevi esta madrugada o código e o artigo, pois precisei também de algo que fizesse consulta de CNPJ. Espero que seja útil para você. Se for, compartilhe ok? Forte abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Carlos Magno Guerra 0 Denunciar post Postado Março 6, 2014 Mayk Pessoal acabei de me casdastrar também e queria deixar aqui o link para a solução que vocês procuram.Php = Curl e Captcha. Como eu entendi e aprendi a trabalhar com isso.Escrevi esta madrugada o código e o artigo, pois precisei também de algo que fizesse consulta de CNPJ.Espero que seja útil para você. Se for, compartilhe ok?Forte abraço! Olá amigo, tudo bem? Fiz exatamente como recomendado, mas parece que a Receita alterou os links; vc tem os links atualizados? Não consegui mais capturar o novo captcha ( o que aparece é com o link velho). // esse link mudou http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/valida.asp"; para $url ="http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao2.asp" ; Mas esse link http://www.receita.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image não consegui achar o correspondente (que deveria ser um desses) http://www.receita.fazenda.gov.br/scripts/captcha/ ou http://www.receita.fazenda.gov.br/scripts/captcha/Telerik.Web.UI.WebResource.axd?type=rca&guid=23b1113a-938f-43de-918a-b5d4f19bfce5 Alguma idéia? Grato Carlos Magno (ps. nada há de ilegal se vc está usando o captcha - tanto que está disponível na net - o que não é permitido é comprar base de dados eis ai o crime - Haveria discussão para o uso de robô - por que ele burla o sistema para acesso em massa). Compartilhar este post Link para o post Compartilhar em outros sites
Jansen Felipe 1 Denunciar post Postado Outubro 21, 2014 Olá! Recentemente publiquei uma library no Packagist: cnpj-gratis Postei no meu blog como usar, e o link de um projeto pronto: http://www.jansenfelipe.com.br/cnpjgratis-library-php-buscar-dados-cnpj-receita/ Fiquem a vontade para colaborar com o projeto no Github: https://github.com/jansenfelipe/cnpj-gratis Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Santos 0 Denunciar post Postado Fevereiro 12, 2015 Boa noite Jansen, eu utilizava em meu sistema um código que quebrava o captcha do Sintegra e atualiza os dados dos clientes cadastrados, porém hoje o Sintegra mudou seu sistema de captcha e o código não funcionou mais, não consegui fazer nenhuma adaptação para funcionar. Em busca de algo que consultava o CNPJ cheguei na sua solução porém não esta funcionando nem o exemplo, você tenha alguma solução funcionando e possa me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Fevereiro 14, 2015 Olá Johnny Santos Sim , vc tem razão , a receita alterou hoje a geração do captcha para consulta de cnpj. Segue a solução que encontrei http://forum.imasters.com.br/topic/519692-consultar-dados-de-um-cnpj-direto-do-site-da-receita/ Abraço Marcos Peli Compartilhar este post Link para o post Compartilhar em outros sites
arldin 1 Denunciar post Postado Fevereiro 14, 2015 Amigo de uma olhada neste link talvez possa te ajudar https://cacovsky.wordpress.com/2011/02/06/php-curl-cookies-sessions-cpf-e-site-da-receita-federal/ Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Fevereiro 14, 2015 Não amigo Sua solução é de 2011 Como eu disse , a receita alterou a geração de captcha em 2013 e novamente ONTEM. a solução que eu encontrei e publiquei ontem é esta: 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ços Marcos Peli Compartilhar este post Link para o post Compartilhar em outros sites
htngp 0 Denunciar post Postado Março 13, 2015 Não amigo Sua solução é de 2011 Como eu disse , a receita alterou a geração de captcha em 2013 e novamente ONTEM. a solução que eu encontrei e publiquei ontem é esta: Não estou conseguindo pegar o retorno no processa.php ele para neste trexo function getHtmlCNPJ($cnpj, $captcha) { $cookieFile = COOKIELOCAL.session_id(); $cookieFile_fopen = HTTPCOOKIELOCAL.session_id(); if(!file_exists($cookieFile)) { return false; } Compartilhar este post Link para o post Compartilhar em outros sites