Ir para conteúdo

POWERED BY:

Vinoli

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

Recommended Posts

Bom dia

 

Aplicando a solução à meu script, encontrei a necessidade de tratamento quando o usuário entrasse com a data errada.

 

Por fim pesquisei o script de retorno e detectei o texto de retorno.

 

Para os que interessarem segue esta colaboração:

 

if(!$resultado[0])

{
if(strstr($html3,utf8_decode('CPF incorreto')))
{$resultado['status'] = 'CPF incorreto';}
if(strstr($html3,utf8_decode('Data de nascimento informada')))
{$resultado['status'] = 'Data de Nascimento incorreta';}
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';}
Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, estou tentando aplicar este código em nosso sistema, porém, esta retornando 'false' ao buscar o captcha na receita.

Fiz um JSON e chamei o GetCaptcha a fim de tentar pegar algum erro no php, sem sucesso, dando um exit na imagem do captcha vem a seguinte informação:

$imgsource = curl_exec($ch);
exit(var_dump($imgsource));


Resultado:
bool(false)

 

Alguém passou pelo mesmo problema ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, estou tentando aplicar este código em nosso sistema, porém, esta retornando 'false' ao buscar o captcha na receita.

 

Fiz um JSON e chamei o GetCaptcha a fim de tentar pegar algum erro no php, sem sucesso, dando um exit na imagem do captcha vem a seguinte informação:

 

$imgsource = curl_exec($ch);

exit(var_dump($imgsource));

 

Resultado:

bool(false)

 

Alguém passou pelo mesmo problema ?

 

Boa tarde

 

Utilizei o script em minha aplicação sem problema, desde a primeira versão, inclusive alterei sua estrutura original, pois apliquei-o em uma estrutura MVC, além de utilizar o index da minha aplicação ja criado, sem problema.

 

Inclusive criei uma funcionalidade de atualização da imagem utilizando ajax e foi de boa.

 

 

Abraços

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde

 

Utilizei o script em minha aplicação sem problema, desde a primeira versão, inclusive alterei sua estrutura original, pois apliquei-o em uma estrutura MVC, além de utilizar o index da minha aplicação ja criado, sem problema.

 

Inclusive criei uma funcionalidade de atualização da imagem utilizando ajax e foi de boa.

 

 

Abraços

 

Olá, já testei e retestei o script, descobri que o mesmo não encontrava o diretório especificado para salvar os dados do cookie, rodando em apache local, especifiquei o mesmo desta maneira

 

define('COOKIELOCAL', 'C:/ipm/htdocs/receita/cookies_cnpj/');

 

forçando o diretório para salvar o cookie, porém, o mesmo não está salvando as chaves de sessão.

 

Você poderia compartilhar suas classes ? (se possível é claro)

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Olá, já testei e retestei o script, descobri que o mesmo não encontrava o diretório especificado para salvar os dados do cookie, rodando em apache local, especifiquei o mesmo desta maneira

 

define('COOKIELOCAL', 'C:/ipm/htdocs/receita/cookies_cnpj/');

 

forçando o diretório para salvar o cookie, porém, o mesmo não está salvando as chaves de sessão.

 

Você poderia compartilhar suas classes ? (se possível é claro)

 

Obrigado!

 

Bom dia,

 

No meu caso somente aterei na linha abaixo o trecho em destaque, fazendo com que enxergasse a pasta em minha estrutura de arquivos:

 

 

define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.'../cookies_cpf/');

 

Espero ter ajudado.

 

A disposição.

 

André

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Bom dia,

 

No meu caso somente aterei na linha abaixo o trecho em destaque, fazendo com que enxergasse a pasta em minha estrutura de arquivos:

 

 

define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.'../cookies_cpf/');

 

Espero ter ajudado.

 

A disposição.

 

André

 

Sim, esta foi a minha ideia inicial, porém, nós utilizamos estruturas internas com servidores linux o qual não temos acesso, em vários casos não conseguimos encontrar o arquivo/diretório especificado, por isso estou tentando fazer a integração local forçando o diretório.

 

O meu problema, não é quanto ao diretório, somente citei o problema que tive devida a nossa estrutura interna.

O meu arquivo responsável pela captura e conversão do captcha, que também é responsável por salvar o cookie gerado no primeiro acesso a página não está conseguindo salvar as chaves de sessão, necessárias para simular uma continuação da conexão setando na requisição o cookie gerado na captura do captcha, o que é necessário pois posteriormente será validado na requisição dos dados de um CPF/CNPJ.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Sim, esta foi a minha ideia inicial, porém, nós utilizamos estruturas internas com servidores linux o qual não temos acesso, em vários casos não conseguimos encontrar o arquivo/diretório especificado, por isso estou tentando fazer a integração local forçando o diretório.

 

O meu problema, não é quanto ao diretório, somente citei o problema que tive devida a nossa estrutura interna.

O meu arquivo responsável pela captura e conversão do captcha, que também é responsável por salvar o cookie gerado no primeiro acesso a página não está conseguindo salvar as chaves de sessão, necessárias para simular uma continuação da conexão setando na requisição o cookie gerado na captura do captcha, o que é necessário pois posteriormente será validado na requisição dos dados de um CPF/CNPJ.

 

Boa tarde

Diante do exposto apostaria em verificar permissões e propriedade, apesar de acreditar que já tenha avaliado esta possibilidade, no demais, neste momento não posso contribuir em uma solução, porém caso surja algo, posto aqui.

Abraços

Editado por cap_alts

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Boa tarde

Diante do exposto apostaria em verificar permissões e propriedade, apesar de acreditar que já tenha avaliado esta possibilidade, no demais, neste momento não posso contribuir em uma solução, porém caso surja algo, posto aqui.

Abraços

 

Consegui resolver, era apenas definições de proxy.

 

Para quem tiver problemas com autenticação de proxy, basta adicionar nos parametros do curl a seguinte configuração:

$proxyNumber = '192.168.3.1';

$proxyPort = '3128';

curl_setopt($ch, CURLOPT_PROXY, "{$proxyNumber}:{$proxyPort }");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola,

 

Já tentei de toda as forma rodar o script mas no meu caso só retorna isto. Já verifiquei as variáveis no php.ini e nada, digitei as letras conferindo para não digitar errado e nada.

Tanto para CNPJ quanto CPF

 

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 )

 

Teste local apresenta esta mensagem também

Notice: Undefined variable: conteudo in D:\xampp\htdocs\Consultas\CNPJ\funcoes.php on line 33

 

No meu caso a linha 33 é esta:

{$conteudo .= fread($file, 1024);}

Se alguém passou por este problema deixe uma mensagem.

 

Obrigado.

Editado por Ualter

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola,

 

Já tentei de toda as forma rodar o script mas no meu caso só retorna isto. Já verifiquei as variáveis no php.ini e nada, digitei as letras conferindo para não digitar errado e nada.

Tanto para CNPJ quanto CPF

 

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 )

 

Teste local apresenta esta mensagem também

Notice: Undefined variable: conteudo in D:\xampp\htdocs\Consultas\CNPJ\funcoes.php on line 33

 

No meu caso a linha 33 é esta:

{$conteudo .= fread($file, 1024);}

Se alguém passou por este problema deixe uma mensagem.

 

Obrigado.

 

Quanto ao "undefined variable", altere este trecho

// 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);

Por este

// pega os dados de sessão gerados na visualização do captcha dentro do cookie
$file = fopen($cookieFile_fopen, 'r');
$conteudo = '';
while (!feof($file)) {
    $conteudo .= fread($file, 1024);
}
fclose($file);

Inicializando a variavel $conteudo antes de utilizá-la.

 

Quanto ao Captcha, aqui funcionou normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola,

 

Já tentei de toda as forma rodar o script mas no meu caso só retorna isto. Já verifiquei as variáveis no php.ini e nada, digitei as letras conferindo para não digitar errado e nada.

Tanto para CNPJ quanto CPF

 

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 )

 

Teste local apresenta esta mensagem também

Notice: Undefined variable: conteudo in D:\xampp\htdocs\Consultas\CNPJ\funcoes.php on line 33

 

No meu caso a linha 33 é esta:

{$conteudo .= fread($file, 1024);}

Se alguém passou por este problema deixe uma mensagem.

 

Obrigado.

 

 

Olá Amigo

 

Além da dica do Ruan, caso persistam os problemas adote os seguintes procedimentos afim de localizar o problema

1 - Echoe a resposta da receita na tela ao invés de mostrar apenas o Array

2 - monitore o cookie na pasta cookie_cpf , ou cookie_cnpj , verifique se está sendo gerado o arquivo dentro da pasta, e se o mesmo está sendo modificado com a inclusão do atributo flag=1 no envio dos dados do curl, conforme explicado na página2 deste post.

 

do contrário fica difícil ajuda-lo

 

Abraços

Marcos

Fico muito feliz em ver que meu scriptizinho tá rendendo bem.

 

Segue abaixo contribuição para validação dos dados no envio, validação Client-Side (Javascript) e Server-Side (PHP) que tenho utilizado em minhas aplicações para consulta, afim de enriquecer a solução.

 

Destaque para a Regex de validação de data em Javascript, que leva em consideração inclusive anos bisextos

 

JAVASCRIPT


// função para transformar campo CPF ou CNPJ em numero
function getNumber( strNumber , len )
{
	var result = '';
	var i;
	
	for ( i = 0 ; i < strNumber.length ; i++ )
	{
		number = parseInt(strNumber.charAt(i));
		if ( number )
		{result += strNumber.charAt(i)}
		else
		{
			if ( number == 0 )
			{result += strNumber.charAt(i)}
		}
	}
	if ( result.length != len )
	{
		// Completa com zeros a esq.
		result = '000000000000000' + result;
		var newLen = result.length;
		result = result.substring ( newLen - len , newLen );
	}
	return result;
}

// Validação de CPF
function checkCPF(strNumber,len_number)
{
	var result = true;
	var digit;
	var calc;
	comprimento = len_number;
	
	strNumber = getNumber(strNumber,comprimento);

	if (strNumber.length < 4) 
	{result = false;}
	
	digit = strNumber.substring(strNumber.length-2, strNumber.length);
	number = strNumber.substring(0 , strNumber.length - 2);
	calc = getCPFDigit(number);
	
	// caso o calculo é um número de 1 digito , acerta colocando um 0 na frente
	if (calc.length == 1)
	{calc = "0"+calc;}
	
	if (digit != calc)
	{result = false;}
	
	return result;
}

// Checagem CPF
function getCPFDigit(strNumber)
{
	var i;
	var digit1;
	var digit2;
	var total;
	var result;
	
	strNumber = '000000000' + getNumber(strNumber)
	strNumber = strNumber.substring(strNumber.length - 9, strNumber.length)
	
	total=0
	for (i = 1 ; i < 10; i++) 
	{total = total + strNumber.substring(i - 1 , i) * (11 - i);}
	
	digit1 = total * 10 % 11;
	if (digit1 == 10)
	{digit1 = 0;}
	
	aux = digit1.toString(10);
	strNumber = strNumber + aux.substring(aux.length - 1 , aux.length);
	total=0;
	
	for (i = 1 ; i < 11 ; i++) 
	{total = total + strNumber.substring(i - 1 , i) * (12 - i);}
	
	digit2 = total * 10 % 11;
	if (digit2 == 10)
	{digit2 = 0;}
	
	aux = digit1 * 10 + digit2;
	caux = aux.toString(10);
	result = caux.substring(caux.length - 2 , caux.length);
	return result;
} 

// Validação de CNPJ
function checkCNPJ( cnpj ) 
{ 
	var cnpjCalc; 
	var cnpjAdd; 
	var i; 
	var cnpjDigit; 
	var result;
	
	cnpj = getNumber( cnpj , 14 );

	check1( cnpj );
	
	// Pega somente os números
	cnpjCalc = cnpj.substring( 0 , 12 );
	
	// Primeira parte do Digito de verificação
	cnpjAdd = 0; 
	for( i = 0 ; i < 4 ; i++ ) 
	{ cnpjAdd += parseInt( cnpjCalc.substring( i , i + 1 ) ) * (5 - i); } 
	
	for( i = 0 ; i < 8 ; i++ ) 
	{ cnpjAdd += parseInt( cnpjCalc.substring( i + 4 , i + 4 + 1 ) ) * (9 - i); } 
	
	// Primeiro Digito
	cnpjDigit = 11 - (cnpjAdd % 11); 
	
	if ( cnpjDigit == 10 || cnpjDigit == 11 ) 
	{ cnpjCalc += '0'; } 
	else 
	{ cnpjCalc += cnpjDigit; } 
	
	// Segunda parte do digito de verificação
	cnpjAdd = 0; 
	for ( i = 0 ; i < 5 ; i++ ) 
	{ cnpjAdd += parseInt( cnpjCalc.substring( i , i + 1 ) ) * (6 - i); } 
	for ( i = 0 ; i < 8 ; i++ ) 
	{ cnpjAdd += parseInt( cnpjCalc.substring( i + 5, i + 5 + 1 ) ) * (9 - i); } 
	
	// Segundo Digito
	cnpjDigit = 11 - (cnpjAdd % 11); 
	if ( cnpjDigit == 10 || cnpjDigit == 11 ) 
	{ cnpjCalc += '0'; } 
	else 
	{ cnpjCalc += cnpjDigit; } 
	
	if ( cnpj == cnpjCalc )
	{result = true;}
	else
	{result = false;}
	
	return result;
} 

// checagem CNPJ
function check1( value )
{
	var count = 1;
	var len = value.length;
	var first;
	if ( len > 1 )
	{first = value.charAt( 0 );}
	else
	{return false;}
	for ( var i = 1; i < value.length ; i++ )
	{
		if ( value.charAt( i ) == first )
		{count++;}
	}
	
	if ( count == len )
	{return false;}
	
	return true;
}

function checkDATA(str,compr)
{

	var re = /^(((0[1-9]|[12][0-9]|3[01])([-.\/])(0[13578]|10|12)([-.\/])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-.\/])(0[469]|11)([-.\/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-.\/])(02)([-.\/])(\d{4}))|((29)(\.|-|\/)(02)([-.\/])([02468][048]00))|((29)([-.\/])(02)([-.\/])([13579][26]00))|((29)([-.\/])(02)([-.\/])([0-9][0-9][0][48]))|((29)([-.\/])(02)([-.\/])([0-9][0-9][2468][048]))|((29)([-.\/])(02)([-.\/])([0-9][0-9][13579][26])))$/; 
	var m;

	if ((m = re.exec(str)) !== null)
	{
    	if (m.index === re.lastIndex)
		{re.lastIndex++;}
	}

    if(m!== null)
	{return true;}
	else
	{return false;}

}

PHP

<php

// Checa CPF
// retorna 0 se incorreto , e 1 se correto
function CheckCPF($number)
{
	// Os str_replace servem para "corrigir" os possíveis "erros", tendo em vista que o código foi preparado apenas para trabalhar com números
	if(strstr($number,"."))
	{$number=str_replace(".","",$number);}
	if(strstr($number,"-"))
	{$number=str_replace("-","",$number);}
	if(strstr($number,"/"))
	{$number=str_replace("/","",$number);}
	if(strlen($number)!=11)
	{return "0";}
	else
	{
		for($i=0;$i<9;$i++)
		{$d1=$d1+($number[$i]*(10-$i));}
		
		$d1=11-($d1%11);
		
		if($d1>=10)
		{$d1=0;}
		
		for($i=0;$i<9;$i++)
		{$d2=$d2+($number[$i]*(11-$i));}
		
		$d2=11-(($d2+($d1*2))%11);
		
		if($d2>=10)
		{$d2=0;}
		
		if($number[9]==$d1&&$number[10]==$d2)
		{return "1";}
		else
		{return "0";}
	}
}

// checa CNPJ
// retorna 0 se incorreto , e 1 se correto
function CheckCNPJ($number)
{
	// Os str_replace servem para "corrigir" os possíveis "erros", tendo em vista que o código foi preparado apenas para trabalhar com números
	if(strstr($number,"."))
	{$number=str_replace(".","",$number);}
	if(strstr($number,"-"))
	{$number=str_replace("-","",$number);}
	if(strstr($number,"/"))
	{$number=str_replace("/","",$number);}
	if(strlen($number)!=14)
	{return "0";}
	else
	{
		$d1=$number[11]*2+$number[10]*3+$number[9]*4+$number[8]*5+$number[7]*6+$number[6]*7+$number[5]*8+$number[4]*9+$number[3]*2+$number[2]*3+$number[1]*4+$number[0]*5;
		$d1=11-($d1%11);
		
		if($d1>=10)
		{$d1=0;}
		
		$d2=$d1*2+$number[11]*3+$number[10]*4+$number[9]*5+$number[8]*6+$number[7]*7+$number[6]*8+$number[5]*9+$number[4]*2+$number[3]*3+$number[2]*4+$number[1]*5+$number[0]*6;
		$d2=11-($d2%11);
		
		if($d2>=10)
		{$d2=0;}
		if($number[12]==$d1&&$number[13]==$d2)
		{return "1";}
		else
		{return "0";}
	}
}

// Checa Data
// retorna 0 se incorreto , e 1 se correto
function CheckDATEx($number)
{

	$data_explode = explode('/',$number);
	if(checkdate($data_explode[1],$data_explode[0],$data_explode[2]))
	{return "1";}
	else
	{return "0";}


	// abaixo a mesma regex do javascript, só pra ilustrar a utilização, uma vez que o php tem função nativa (acima) para checar datas
	/*
	$re ="/^(((0[1-9]|[12][0-9]|3[01])([-.\\/])(0[13578]|10|12)([-.\\/])(\\d{4}))|(([0][1-9]|[12][0-9]|30)([-.\\/])(0[469]|11)([-.\\/])(\\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-.\\/])(02)([-.\\/])(\\d{4}))|((29)(\\.|-|\\/)(02)([-.\\/])([02468][048]00))|((29)([-.\\/])(02)([-.\\/])([13579][26]00))|((29)([-.\\/])(02)([-.\\/])([0-9][0-9][0][48]))|((29)([-.\\/])(02)([-.\\/])([0-9][0-9][2468][048]))|((29)([-.\\/])(02)([-.\\/])([0-9][0-9][13579][26])))$/"; 
	 
	preg_match($re, $number, $matches);
	if($matches[0])
	{return "1";}
	else
	{return "0";}
	*/
	
}

?>

Lembrando que a Validação do lado Server-Side deve sempre ser utilizada na entrada de dados vindos de Formulário.

A Validação Client-Side é opcional, mas a utilização de ambas é recomendada para agilidade do processo.

 

Espero ter colaborado

 

Abraços

Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite pessoal

 

Resolvi criar um repositório em GitHub para facilitar a colaboração, compartilhamento e atualização on-line dos scripts para cpnsulta de CNPJ e CPF

 

Nesta nova versão atualizada, fundi as consultas de CNPJ e CPF nos já conhecidos 4 scripts, qua agora realizam ambas consultas.

 

Fiquem a vontade para efetuar download e colaborar no seguinte link:

https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal

 

Lembrando que não é promoção. É GRATIS mesmo, rs

 

Abraços a todos

Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcos,

 

baixei do GitHub e instalei no meu servidor e entrou em loop apresentando as seguintes mensagens:

 

Warning: fopen(cpf_687728aa99c2fa9ef2001c2ef929dc8e): failed to open stream: No such file or directory in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 110

Warning: feof() expects parameter 1 to be resource, boolean given in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 111

Warning: fread() expects parameter 1 to be resource, boolean given in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 112

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcos,

 

baixei do GitHub e instalei no meu servidor e entrou em loop apresentando as seguintes mensagens:

 

Warning: fopen(cpf_687728aa99c2fa9ef2001c2ef929dc8e): failed to open stream: No such file or directory in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 110

 

Warning: feof() expects parameter 1 to be resource, boolean given in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 111

 

Warning: fread() expects parameter 1 to be resource, boolean given in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 112

 

 

Olá Marcelo

 

Ao Fundir os Scripts de CNPJ e CPF cometi um pequeno erro, me desculpe.

Já alterei o script funções.php em github.

Fique a vontade para baixar novamente

https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal

 

Abraço

Marcos

  • +1 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Quanto ao "undefined variable", altere este trecho

// 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);

Por este

// pega os dados de sessão gerados na visualização do captcha dentro do cookie
$file = fopen($cookieFile_fopen, 'r');
$conteudo = '';
while (!feof($file)) {
    $conteudo .= fread($file, 1024);
}
fclose($file);

Inicializando a variavel $conteudo antes de utilizá-la.

 

Quanto ao Captcha, aqui funcionou normalmente.

 

 

Quanto ao "undefined variable", altere este trecho

// 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);

Por este

// pega os dados de sessão gerados na visualização do captcha dentro do cookie
$file = fopen($cookieFile_fopen, 'r');
$conteudo = '';
while (!feof($file)) {
    $conteudo .= fread($file, 1024);
}
fclose($file);

Inicializando a variavel $conteudo antes de utilizá-la.

 

Quanto ao Captcha, aqui funcionou normalmente.

 

Valeu Ruan e Massa.

 

Consegui resolver aqui, o problema estava na codificação UFT8. Agora sim está rodando file.

Editado por Ualter

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Boa Noite

 

Parece que a receita gosta mesmo de criar dificuldades para vender facilidades, e muita gente gooooosta de vender facilidades.

 

Segue a solução "pós data de nascimento obrigatória" (alteração de 03/06/2015 da receita)

Seguem SOMENTE as alterações nos scripts ,.. se alguém tiver muuuuuuita dificuldade , é só pedir ajuda aqui no post ....que posto tudo (4 scripts completos GRATIS , rs)

lembrando que é totalmente GRATIS !!!! , rs

 

Alterações no Script index.php

// substituir este bloco de código
                 <input type="text" name="CPF" maxlength="11" required /> 
                  <b style="color: red">CPF</b>
                  <br />



// por este bloco , observe que agora deve ser digitado o CPF com os pontos e traços , e a data com a barra
                  <input type="text" name="CPF" maxlength="14" minlength="14" required /> 
                  <b style="color: red">CPF xxx.xxx.xxx-xx</b>
                  <br />
                  <input type="text" name="txtDataNascimento" maxlength="10" minlength="10" required /> 
                  <b style="color: red">Data Nascim. dd/mm/aaaa</b>
                  <br />  

Alterações n.1 no Script funcoes.php

// Substitua este bloco de código
    $post = array
    (
		'Enviar'						=> 'Consultar', 
		'txtCPF' 						=> $cpf, 
		'txtTexto_captcha_serpro_gov_br'=> $captcha
    );





// por este código
    $post = array
    (

		'txtTexto_captcha_serpro_gov_br'		=> $captcha,
		'tempTxtCPF'							=> $cpf,
		'tempTxtNascimento'						=> $datanascim,
		'temptxtToken_captcha_serpro_gov_br'	=> '',
		'temptxtTexto_captcha_serpro_gov_br'	=> $captcha
    );

Alterações n.2 no Script funcoes.php

// altere esta linha
function getHtmlCPF($cpf, $captcha)


// por esta linha
function getHtmlCPF($cpf, $datanascim, $captcha)

Alterações n.3 no Script funcoes.php

// altere este bloco de código
	$campos = array(
	'No do CPF:',
	'Nome da Pessoa Física:',
	'Situação Cadastral:');
	);

// por este bloco de código
	$campos = array(
	'No do CPF:',
	'Nome da Pessoa Física:',
	'Data de Nascimento:',
	'Situação Cadastral:',
	'Data da Inscrição:'
	);

por fim , SUBSTITUA o arquivo processa.php por este abaixo

<?php

require('funcoes.php');

$cpf = $_POST['CPF'];
$datanascim = $_POST['txtDataNascimento'];
$captcha = $_POST['CAPTCHA'];

$getHtmlCPF = getHtmlCPF($cpf, $datanascim, $captcha);
if($getHtmlCPF)
{
     $campos = parseHtmlCPF($getHtmlCPF);
     print_r($campos);
}
?>

Amigo

 

Se você. é programador, parta pelas soluções de consulta CPF eCNPJ deste post.

 

Creio que elas podem lhe dar uma "luz" no desenvolvimento de seu projeto , pois forma com a qual a receita trata o assunto "captcha" não difere muito destas 2 formas.

 

Grande abraço

 

Olá Massa191,

Fiz questão de me cadastrar no fórum só para agradecer pela solução.

Parabéns pela iniciativa "open source".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Tonicley

 

Quem quiser a solução completa (CPF + CNPJ) , segue Link para o repositório em Github.

Além do Download, quem quiser colaborar com o desenvolvimento desta aplicação , sugerir modificações , clonar , dar Estrela , fique a vontade.... rs

 

https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal

 

Abraço.

Marcos

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Bom dia

 

Aplicando a solução à meu script, encontrei a necessidade de tratamento quando o usuário entrasse com a data errada.

 

Por fim pesquisei o script de retorno e detectei o texto de retorno.

 

Para os que interessarem segue esta colaboração:

 

if(!$resultado[0])

{
if(strstr($html3,utf8_decode('CPF incorreto')))
{$resultado['status'] = 'CPF incorreto';}
if(strstr($html3,utf8_decode('Data de nascimento informada')))
{$resultado['status'] = 'Data de Nascimento incorreta';}
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';}
Abraços

 

cap_alts,

 

Muito boa sua colaboração.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

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