andrerds1 0 Denunciar post Postado Setembro 23, 2015 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 Parabéns Marcos Peli. Script sensacional . abraços ! Compartilhar este post Link para o post Compartilhar em outros sites
maoe 0 Denunciar post Postado Setembro 27, 2015 Alguem sabe informar o limite de consultas? pois estou sendo bloqueado constantemente, tem alguma sugestão, como por exemplo rotatividade de ip? Compartilhar este post Link para o post Compartilhar em outros sites
AlissonLinneker 2 Denunciar post Postado Setembro 27, 2015 Alguem sabe informar o limite de consultas? pois estou sendo bloqueado constantemente, tem alguma sugestão, como por exemplo rotatividade de ip? Use proxy no cURL. Existem vários grátis e você pode fazer essa rotatividade de ips. Provavelmente eles devem fazer proteção no captcha para que o IP usado para exibi-lo, seja obrigatoriamente o mesmo usado na autenticação. Veja isso quando elaborar o script. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Caldeira 0 Denunciar post Postado Outubro 4, 2015 Boa tarde pessoal Eu estou com um problema ao pegar os dados do cnpj. Quando coloco o comando echo abaixo $getHtmlCNPJ = getHtmlCNPJ($cnpj, $captcha); echo $getHtmlCNPJ; if($getHtmlCNPJ) O navegador mostra os dados corretos da empresa consultada, porém o Array está vazio e no final mostra que a imagem digitada está incorreta. Como pode receber os dados, mostrar a página com os dados do cnpj e no array está vazio? o que estou fazendo de errado? Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => [status] => Imagem digitada incorretamente Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Caldeira 0 Denunciar post Postado Outubro 4, 2015 Boa tarde pessoal Eu estou com um problema ao pegar os dados do cnpj. Quando coloco o comando echo abaixo $getHtmlCNPJ = getHtmlCNPJ($cnpj, $captcha); echo $getHtmlCNPJ; if($getHtmlCNPJ) O navegador mostra os dados corretos da empresa consultada, porém o Array está vazio e no final mostra que a imagem digitada está incorreta. Como pode receber os dados, mostrar a página com os dados do cnpj e no array está vazio? o que estou fazendo de errado? Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => [status] => Imagem digitada incorretamente Esqueci de informar que o arquivo gravado na pasta C:\xampp\htdocs\QualityControl\view\cookies_cnpj com o nome e7ten596n6muk4ek321hbaker3 Em todos os momentos fica assim. # Netscape HTTP Cookie File # http://curl.haxx.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. www.receita.fazenda.gov.br FALSE / FALSE 0 ASPSESSIONIDCQSTDBBQ EDOPHNGAEHFDDEGBCCLOPJIE não sofre alteração Porém ao apertar o F12 me apresenta os seguintes erros. GET http://localhost/QualityControl/view/images/brasao2.gif 404 (Not Found) processa.php:1025 GET http://localhost/QualityControl/view/area_texto_back.jpg 404 (Not Found) processa.php:1025 GET http://localhost/QualityControl/view/js/print.js 404 (Not Found) Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Caldeira 0 Denunciar post Postado Outubro 4, 2015 Peço desculpas pela minha falta de atenção, passei a manhã lendo esse topco maravilhoso e não percebi que deixei passar batido a parte do flag=1 Está na segunda página do tópico http://forum.imasters.com.br/topic/531733-obter-nomecaptcha-por-consulta-na-receita-federal-via-phpcurl/page-2 Hoje vou começar a seguir o github desse tópico. Obrigado e novamente, desculpa Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Caldeira 0 Denunciar post Postado Outubro 5, 2015 Boa tarde gente, mais uma vez eu aqui tentando aprender a programar. pois bem, falando da pagina getcaptcha.php Seguinte, quando utilizo o localhost o sistema pega a imagem captchada receita federal corretamente, porém quando coloco no meu servidor cpanel, para testar online, gera o seguinte erro no log: [05-Oct-2015 11:29:20 America/New_York] PHP Warning: feof() expects parameter 1 to be resource, boolean given in /home/cpdsico/public_html/QualityControl/consultaCnpj/getcaptcha.php on line 44 [05-Oct-2015 11:29:20 America/New_York] PHP Warning: fread() expects parameter 1 to be resource, boolean given in /home/cpdsico/public_html/QualityControl/consultaCnpj/getcaptcha.php on line 45 Eu segui os dados fornecidos no log e achei uma parte da função $file = fopen($cookieFile_fopen, 'r'); while (!feof($file)) {$conteudo .= fread($file, 1024);} fclose ($file); Depois de pesquisar um pouquinho, em alguns sites estavam mostrando a seguinte solução while (@feof($file)) Más assim, pelo pouco que entendo está dizendo que ao inves de o resultado diferente de feof($file) ele esta passando direto feof($file) e reprimindo o warning Dessa forma no site funcionou, más no localhost também. Minha dúvida é o seguinte, qual o impacto dessa mudança? Alguém poderia me informar o que aconteceu para eu aprender um pouco mais? Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Outubro 7, 2015 Boa tarde gente, mais uma vez eu aqui tentando aprender a programar. pois bem, falando da pagina getcaptcha.php Seguinte, quando utilizo o localhost o sistema pega a imagem captchada receita federal corretamente, porém quando coloco no meu servidor cpanel, para testar online, gera o seguinte erro no log: Eu segui os dados fornecidos no log e achei uma parte da função Depois de pesquisar um pouquinho, em alguns sites estavam mostrando a seguinte solução Más assim, pelo pouco que entendo está dizendo que ao inves de o resultado diferente de feof($file) ele esta passando direto feof($file) e reprimindo o warning Dessa forma no site funcionou, más no localhost também. Minha dúvida é o seguinte, qual o impacto dessa mudança? Alguém poderia me informar o que aconteceu para eu aprender um pouco mais? 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 Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Caldeira 0 Denunciar post Postado Outubro 7, 2015 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 Realmente a resolução do meu problema estava no php.ini. No diretório em que está os arquivos *.php eu criei um arquivo com o nome de php.ini e coloquei allow_url_fopen =on Resolvido o problema, Muito obrigado por sua explicação Marcos Peli Agora se não for abusar da sua ajuda, (tenho que tentar né rsrs) No meu código ao invés de digitar o valor do captcha, digitei um valor qualquer. Ele não da erro e permite passar para a pagina "processa.php", o resultado e em branco (criei alguns inputs para receber o array $campo[#]). Eu gostaria que aparecesse uma mensagem de erro ou algo do tipo, para o usuário tentar de novo. Depois de estudar a pagina getcaptcha.php e tentar algumas soluções sem sucesso, pulei para "processa.php" e, nesse momento, estou colocando um if/else no final do codigo php, mais ou menos assim: <?php require('funcoes.php'); include_once $_SERVER['DOCUMENT_ROOT'].'/QualityControl/model/head.php'; $cnpj = $_POST['CNPJ']; $captcha = $_POST['CAPTCHA']; // pega html resposta da receita $getHtmlCNPJ = getHtmlCNPJ($cnpj, $captcha); if($getHtmlCNPJ) { // coloca os dados em um array $campos = parseHtmlCNPJ($getHtmlCNPJ); if (empty($campos[0])){ echo 'mensagem de erro'; }else { //aqui entra o html que criei, para preencher os inputs com os dados que desejo. } } O que acha da minha solução? Teria algo mais profissional para me aconselhar? Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Outubro 7, 2015 Realmente a resolução do meu problema estava no php.ini. No diretório em que está os arquivos *.php eu criei um arquivo com o nome de php.ini e coloquei allow_url_fopen =on Resolvido o problema, Muito obrigado por sua explicação Marcos Peli Agora se não for abusar da sua ajuda, (tenho que tentar né rsrs) No meu código ao invés de digitar o valor do captcha, digitei um valor qualquer. Ele não da erro e permite passar para a pagina "processa.php", o resultado e em branco (criei alguns inputs para receber o array $campo[#]). Eu gostaria que aparecesse uma mensagem de erro ou algo do tipo, para o usuário tentar de novo. Depois de estudar a pagina getcaptcha.php e tentar algumas soluções sem sucesso, pulei para "processa.php" e, nesse momento, estou colocando um if/else no final do codigo php, mais ou menos assim: <?php require('funcoes.php'); include_once $_SERVER['DOCUMENT_ROOT'].'/QualityControl/model/head.php'; $cnpj = $_POST['CNPJ']; $captcha = $_POST['CAPTCHA']; // pega html resposta da receita $getHtmlCNPJ = getHtmlCNPJ($cnpj, $captcha); if($getHtmlCNPJ) { // coloca os dados em um array $campos = parseHtmlCNPJ($getHtmlCNPJ); if (empty($campos[0])){ echo 'mensagem de erro'; }else { //aqui entra o html que criei, para preencher os inputs com os dados que desejo. } } O que acha da minha solução? Teria algo mais profissional para me aconselhar? 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 Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Caldeira 0 Denunciar post Postado Outubro 7, 2015 Excelente Marcos Peli, muito obrigado mesmo. Pode ter certeza que eu cresci muito com esse post, Muito bom... Abraço Ricardo Caldeira Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Caldeira 0 Denunciar post Postado Outubro 22, 2015 Alguém conseguiu descobrir algo referente a legalidade desta consulta em sistemas próprios? Se eu soltar uma versão do meu sistema utilizando essa facilidade, será se terei algum problema? Alguém tem algum email ou telefone que posso conseguir essa informação? Não acho nada relativo a isso no site da receita Compartilhar este post Link para o post Compartilhar em outros sites
AlissonLinneker 2 Denunciar post Postado Outubro 22, 2015 Alguém conseguiu descobrir algo referente a legalidade desta consulta em sistemas próprios? Se eu soltar uma versão do meu sistema utilizando essa facilidade, será se terei algum problema? Alguém tem algum email ou telefone que posso conseguir essa informação? Não acho nada relativo a isso no site da receita Por se tratar de acesso público, creio não ser ilegal, pois seria a mesma coisa que você consultar manualmente lá e jogar em seu sistema. Mas temos alguns pontos: - Que você não divulgue estes dados de clientes que consultarem pela API em seu sistema. - Que você não armazene estes dados sem a consciência do usuário. Indo contra estes pontos, você estaria infringindo o artigo 153 do código penal, Marco Civil da Internet e Sigilo Fiscal, creio eu. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Caldeira 0 Denunciar post Postado Outubro 22, 2015 Muito pela sua resposta, vou analisar bem estes detalhes para fazer algo proveitoso e sem riscos. Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Fiori 2 Denunciar post Postado Dezembro 19, 2015 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! Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Dezembro 19, 2015 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! 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 Compartilhar este post Link para o post Compartilhar em outros sites
Electronic 124 Denunciar post Postado Dezembro 19, 2015 Alguém já conseguiu fazer algo parecido mas para pegar Certidao Negativa de Débito? Para a CND é mais simples, nao precisa desse metodo. Basta chamar o link com o cnpj do empresa que você quer pegar www.receita.fazenda.gov.br/Aplicacoes/ATSPO/Certidao/CNDConjuntaSegVia/ResultadoSegVia.asp?Origem=1&Tipo=1&NI= 03895171000114&Senha= "Permite a emissão de 2ª via da última certidão negativa ou positiva com efeitos de negativa, que esteja dentro do período de validade" Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Fiori 2 Denunciar post Postado Dezembro 20, 2015 Primeiramente, obrigado pelas respostas. Para a CND é mais simples, nao precisa desse metodo.Basta chamar o link com o cnpj do empresa que você quer pegarwww.receita.fazenda.gov.br/Aplicacoes/ATSPO/Certidao/CNDConjuntaSegVia/ResultadoSegVia.asp?Origem=1&Tipo=1&NI= 03895171000114&Senha="Permite a emissão de 2ª via da última certidão negativa ou positiva com efeitos de negativa, que esteja dentro do período de validade" 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 Compartilhar este post Link para o post Compartilhar em outros sites
ecamf 0 Denunciar post Postado Janeiro 26, 2016 Pessoal, estou tentando utilizar os 4 arquivos disponibilizados pelo massa, mas não consegui. os resultados que obtenho são esses: na página quando coloco o captcha e tudo mais aparece isso como resposta: Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => [status] => Imagem digitada incorretamente ) no cookie gerado não aparece o flag=1 aparece isso: # Netscape HTTP Cookie File # http://curl.haxx.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. www.receita.fazenda.gov.br FALSE / FALSE 0 ASPSESSIONIDAACCRDSR NBGBJLIDNLKFGFLKAAEDHALH poderiam me ajudar na solução deste problema? Compartilhar este post Link para o post Compartilhar em outros sites
leonardoadb 0 Denunciar post Postado Fevereiro 3, 2016 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 Além de agradecer gostaria de fazer uma pergunta, não tem como conseguir mais dados do CPF, como nome da mae e endereço por exemplo? Muitos parabéns mesmo.. top show de bola... Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites