Jump to content
Vinoli

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

Recommended Posts

Amigo tentei usar todo o seu "mastigado" ele consegue pagar a imagem do captcha mas não importa quantas vezes eu tente ele sempre diz que a imagem esta erada alguem consegue me explicar o motivo ou se puder me dar uma luz eu agradeço.

Amigo

A Receita , pra variar.... , alterou ontem o javascript , que agora altera o cookie antes do envio do form , adicionando o parâmetro flag=1 no cookie para depois fazer a validação por session.

Passei o dia todo tentando encontrar uma solução.

Encontre agora a noite

Amanhã posto a solução

Share this post


Link to post
Share on other sites

VIq0cxO.jpg


Solução:

 

Altere o script :

funcoes.php

por este logo abaixo

<?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]);

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

}

?>

NÃO ESQUECA DE CRIAR A PASTA:

cookies_cnpj

 

no mesmo diretório onde vão estar os 4 Scripts.

Share this post


Link to post
Share on other sites

Lá vai então novamente !!!!!!!!!!!!!!!!!!!!!!!

 

São 4 SCRIPTS

LEMBRE-SE de criar a pasta cookies_cnpj no mesmo diretório onde vc. subir os 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]);

		// 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 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 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();
$cookieFile_fopen = HTTPCOOKIELOCAL.session_id();        
$cookieFile = COOKIELOCAL.session_id();

// cria arquivo onde será salva a sessão com a receita, caso ele não exista
if(!file_exists($cookieFile))
{
	$file = fopen($cookieFile, 'w');
	fclose($file);
}

// faz a chamaa para a receita que exibe o captcha
$url = 'http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/captcha/gerarCaptcha.asp';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);	// salva os dados de sessão
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);	// atualiza os dados de sessão se estiverem desatualizados
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0');
// não utilizar returntransfer , este script replica imagem captcha da receita
$imgsource = curl_exec($ch);
curl_close($ch);

// se tiver imagem , mostra
if(!empty($imgsource))
{
	$img = imagecreatefromstring($imgsource);
	header('Content-type: image/jpg');
	imagejpeg($img);
}


//	Script abaixo simula que mostrou a página com formulário de entrada da receita (Cnpjreva_Solicitacao2.asp)
// pois do contrário a primeira consulta não retorna válida , possivelmente por conta de algo gravado na sessão da receita

// 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);	    // dados de sessão e flag=1
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);

?>

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

?>

Caso vc. continue com o mesmo problema ,

1 - verifique se a Bibl CURL está ativa em seu phpinfo()

2 - Echoe o resultado HTML (Variavel $getHtmlCNPJ do script processa.php) para ver a resposta da receita ao invés do array

3 - abra o cookie gerado antes e apos a consulta se foi acrescentada a linha com o parâmetro flag=1

 

Abraço
Marcos Peli

  • +1 1

Share this post


Link to post
Share on other sites
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

www.receita.fazenda.gov.br	FALSE	/	FALSE	0	ASPSESSIONIDSSDARBDB	JNNEEJNCOFPLKICCAOCOKJHB

curl

cURL support	enabled
cURL Information	7.21.0
Age	3
Features
AsynchDNS	No
Debug	No
GSS-Negotiate	Yes
IDN	Yes
IPv6	Yes
Largefile	Yes
NTLM	Yes
SPNEGO	No
SSL	Yes
SSPI	No
krb4	No
libz	Yes
CharConv	No
Protocols	dict, file, ftp, ftps, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
Host	x86_64-pc-linux-gnu
SSL Version	OpenSSL/0.9.8o
ZLib Version	1.2.3.4
libSSH Version	libssh2/1.2.6

com o echo no $getHtmlCNPJ tras a tela de erro da receita.

 

e o cookie antes e depois continua do mesmo jeito como pode ver acima

 

Ainda continua dando a mensagem de "Imagem digitada incorretamente"

Share this post


Link to post
Share on other sites

Amigo

 

Seu problema são as diretivas http://php.net/manual/pt_BR/filesystem.configuration.php#ini.allow-url-fopen , daí fopen não abrir com os parâmetros atuais.

 

ou vc. muda as diretivas allow_url_fopen em seu php , ou vc. faz a seguinte alteração no Script funcoes.php

 

exclua esta linha no inicio do script:

define('HTTPCOOKIELOCAL', 'http://'.$_SERVER['SERVER_NAME'].str_replace(pathinfo($_SERVER['SCRIPT_FILENAME'],PATHINFO_BASENAME),'',$_SERVER['SCRIPT_NAME']).$pasta_cookies);

inclua esta no lugar:

define('HTTPCOOKIELOCAL',$pasta_cookies);

E seus problemas deverão terminar , rs

 

Abraço
Marcos Peli


Em tempo ,... Esta alteração tb. deve ser feita nas primeiras linhas do script getcaptcha.php

  • +1 1

Share this post


Link to post
Share on other sites

Cara muito obrigado isso matou a charada funcionou perfeitamente.

 

Só tive um problema no inicio que ele retornava os dados validos da receita com o print_r no html mas trazia os dados do array vazio descobri que o utf8_decode estava ferrando a função pega_o_que_interessa só troquei no funçoes.php

 

isso:

$html2 = strstr($html,utf8_decode($campos[$i]));
$resultado[] = trim(pega_o_que_interessa(utf8_decode($campos[$i]).'<b>','<br>',$html2));

por isso:

$html2 = strstr($html,($campos[$i]));
$resultado[] = trim(pega_o_que_interessa(($campos[$i]).'<b>','<br>',$html2));

e tudo funcionou perfeito.

 

Muito grato pela sua ajuda ela me foi muito útil.

Share this post


Link to post
Share on other sites

No meu caso deu o erro:

PHP Warning:  curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir

Sabe o que pode estar ocorrendo? Com o CPF aparentemente está funcionando... só com o do CNPJ que ocorre isso.

Share this post


Link to post
Share on other sites

Estranhamente fui verificar hoje e o cpf agora também está apresentando erro. Com relação ao servidor, estou verificando essas alterações... mas parece que eles adoram dificultar.

 

Mas pelos testes que fiz é isso mesmo pois no local funciona.

 

De qualquer forma, obrigado pela ajuda!

 

------------------------------

 

Realmente funcionou, o problema era apenas o open_basedir que tinha valor preenchido.

 

Muito obrigado.

Edited by falconramos

Share this post


Link to post
Share on other sites

Deu certinho aqui, alguma ideia de como a partir disso eu acesso o QSA?

Edited by htngp

Share this post


Link to post
Share on other sites

Deu certinho aqui, alguma ideia de como a partir disso eu acesso o QSA?

 

Creio que uma consulta CURL a url='Cnpjreva_qsa.asp' passando o parâmetro qsa='Consulta QSA / Capital Social' além do cookie e da session das consultas anteriores deve resolver , mas as informações do QSA são na maioria das vezes inconsistentes e não lhe servirão para muita coisa

 

Abraço

Marcos Peli

  • +1 1

Share this post


Link to post
Share on other sites

 

Creio que uma consulta CURL a url='Cnpjreva_qsa.asp' passando o parâmetro qsa='Consulta QSA / Capital Social' além do cookie e da session das consultas anteriores deve resolver , mas as informações do QSA são na maioria das vezes inconsistentes e não lhe servirão para muita coisa

 

Abraço

Marcos Peli

deu certo aqui Marcos vlw... eu precisava do QSA para fazer validações quando nao vem alguma informação da DBM.

Share this post


Link to post
Share on other sites

:yes: :yes: :assobiando: :assobiando: :coolio: :coolio: :yes: :yes:


deu certo aqui Marcos vlw... eu precisava do QSA para fazer validações quando nao vem alguma informação da DBM.


Amigo dá pra me dar uma ajuda??? No meu estou tentando localmete e a imagem nao gera fica apenas rodando e não gera o captcha

 

Amigo

 

Só com esta informação fica difícil ajudar.

 

Verifique inicialmente em seu phpini se a biblioteca CURL e a biblioteca GD estão ativas.

imagejpeg() é utilizada em getcaptcha.php, é uma função GD: http://php.net/manual/pt_BR/book.image.php

Depois disso , verifique as diretivas :

allow-url-fopen , safe-mod , e open_basedir

 

Aconselho Uma boa lida neste tópico desde a primeira postagem , pois algumas pessoas passaram por dificuldades semelhantes, e é claro , abuse também do amigo google.

 

Abraço
Marcos

Share this post


Link to post
Share on other sites

deu certo aqui Marcos vlw... eu precisava do QSA para fazer validações quando nao vem alguma informação da DBM.

 

Olá htngp,

 

Você poderia postar o código de consulta do QSA. Não entendo muito de curl e gostaria de obter estes dados juntamente com os dados da consulta do CNPJ.

 

Obrigado

Share this post


Link to post
Share on other sites

Alguém esta tendo problemas na consulta do CNPJ no sintegra estes dias? As consultas ficam carregando e não gera a imagem, já isolei os códigos da aplicação, já coloquei em um servidor separado e nada de funcionar

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.