[RESOLVIDO] - Busca CNPJ - diretamente do site da receita

Olá pessoal,
Estou precisando buscar alguns dados diretamente do site da receita pelo cnpj, já busquei em diversos lugares e não encontrei como fazer isso, alguém sabe de alguma forma como posso fazer isso, ou já tenha algo que eu possa utilizar?

Veja:
1 - http://www.gigasystems.com.br/artigo/88/consultar-cnpj-pela-receita-federal-com-php
2 - https://jansenfelipe.com.br/2015/05/15/cnpjgratis-library-php-buscar-dados-cnpj-receita/
3 - http://tretasdanet.com/get/284c9ad300-coletando-informacoes-do-cnpj-direto-da-receita-federal-em-php

Ronyan, já tentei estes procedimentos e não tive sucesso com nenhum, tentarei novamente, se eu conseguir posto o resultado aqui.

Olá, bom dia!

As dicas do Ronyan não resolve?

Da mais uma olhadinha no fórum, pois um companheiro gravou um vídeo demonstrando tal integração dessa rotina. Salvo me engano fizeram até um seminário sobre isso.

Abraço.

Estranhamente nem o seminário nem os arquivos deste encontram-se mais disponíveis, eu estava usando até a semana passada, do nada parou de funcionar, inclusive estavam em 4 projetos meus…, para não ter mais dor de cabeça acabei abandonando esta integração.

Esse seminário foi feito por um membro do grupo. Por algum motivo o mesmo deletou. Seria interessante ele informar o que houve, acho que o nome do rapaz que fez o seminário se chamava Clarck ou algo parecido.

Salvo me engano ele deve ter usado esse mesmo package https://jansenfelipe.com.br/2015/05/15/cnpjgratis-library-php-buscar-dados-cnpj-receita/

Pessoal, achei uma forma de fazer isto, vou compartilhar com todos. Visto que é uma solução que pode ser temporária, pois depende de uma API de terceiros.
lá vai.

crie uma função Curl:

function curlExec($url, $post = NULL, array $header = array()){

//Inicia o cURL
$ch = curl_init($url);

//Pede o que retorne o resultado como string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//Envia cabeçalhos (Caso tenha)
if(count($header) > 0) {
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}

//Envia post (Caso tenha)
if($post !== null) {
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}

//Ignora certificado SSL
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

//Manda executar a requisição
$data = curl_exec($ch);

//Fecha a conexão para economizar recursos do servidor
curl_close($ch);

//Retorna o resultado da requisição

return $data;

}

//---------------------Exemplo de utilização --------------------------------------------
$cnpj = “01432667000126”;

$teste = curlExec(“http://receitaws.com.br/v1/cnpj/”.$cnpj);

$obj = json_decode($teste);

//busca a atividade principal
$atividade_principal = $obj->atividade_principal;
foreach ($atividade_principal as $a) {
echo "atividade: $a->text - $a->code ";
}

//busca a data da situaçao
$data_situacao = $obj->data_situacao;
echo "Data de situação: $data_situacao ";

//busca o tipo = Matriz/filial
$tipo = $obj->tipo;
echo "Tipo: $tipo ";

//busca o nome
$nome = $obj->nome;
echo "Nome: $nome ";

//busca as atividades secundárias
$atividades_secundarias = $obj->atividades_secundarias;
echo "Atividades secundárias: ";

foreach ($atividades_secundarias as $a){
echo "$a->text : $a->code ";
}

//------------------Outros parâmetros que podem ser buscados ----------------------
$obj->situacao
$obj->bairro
$obj->logradouro
$obj->numero
$obj->cep
$obj->municipio
$obj->uf
$obj->abertura
$obj->natureza_juridica
$obj->fantasia
$obj->cnpj
$obj->ultima_atualizacao
$obj->status
$obj->complemento
$obj->email
$obj->efr
$obj->motivo_situacao
$obj->situacao_especial
$obj->data_situacao_especial

Desulpe a ignorância! Estou aprendendo!
com o exemplo eu crio uma aplicação tipo formulário?
a função eu devo inserir nos eventos?
att

Amigo sei que estas começando, mas sugiro estudar o básico do SC. Assista aos videos percorra os exemplos e treine. Verás que não é dificil essa parte básica. Em relação ao solicitado deverá cria uma aplicação blank da seguinte maneira:

====

No evento onExecute coloque o código:

$cnpj = “01432667000126”;
$teste = curlExec(“https://receitaws.com.br/v1/cnpj/”.$cnpj);
$obj = json_decode($teste);

//busca a atividade principal
$atividade_principal = $obj->atividade_principal;
foreach ($atividade_principal as $a) {
echo "atividade: $a->text - $a->code ";
}

//busca a data da situaçao
$data_situacao = $obj->data_situacao;
echo "Data de situação: $data_situacao ";

//busca o tipo = Matriz/filial
$tipo = $obj->tipo;
echo "Tipo: $tipo ";

//busca o nome
$nome = $obj->nome;
echo "Nome: $nome ";

//busca as atividades secundárias
$atividades_secundarias = $obj->atividades_secundarias;
echo "Atividades secundárias: ";

foreach ($atividades_secundarias as $a){
echo "$a->text : $a->code ";
}

=====

criar uma função da seguinte forma:
Metodos PHP (em programação) coloque o código:

//Inicia o cURL
$ch = curl_init($url);

//Pede o que retorne o resultado como string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//Envia cabeçalhos (Caso tenha)
if(count($header) > 0) {
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}

//Envia post (Caso tenha)
if($post !== null) {
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}

//Ignora certificado SSL
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

//Manda executar a requisição
$data = curl_exec($ch);

//Fecha a conexão para economizar recursos do servidor
curl_close($ch);

//Retorna o resultado da requisição

return $data;

Lembre-se de criar os parâmetros da função (use o botão PARÂMETROS para criá-los) use o lapizinho para editar. Veja a figura abaixo:

O cabeçalho da função deverá conter as variáveis como na figura abaixo:

Claro que dá para ficar bem melhor que isso. O ideal seria criar um controle com um campo virtual para digitar o CNPJ e processar a requisição na API. Mas para aprender acredito já ser um caminho!

Veja o documentação da API em https://www.receitaws.com.br/api e verás mais detalhes.

Espero ter ajudado!

1 Curtida

Joni Morais
Obrigado pela ajuda!
Criei, com suas orientações, uma aplicação de controle com o campo virtual para digitar o cnpj e um insert para inserir os dados no banco de dados, preliminarmente está funcionando, falta eu adaptar para gravar a array da atividade principal e secundária.
Grande abraço!

Lancei um vídeo no meu canal sobre isso.

2 Curtidas