Olá!
Compartilho uma grande facilidade para implementação nos cadastros de pessoas jurídicas: a integração com o webservice (API) paga do site www.receitaws.com.br
Para quem quer um serviço profissional e estável para seus clientes, recomendo implementar a versão da API paga, pois terá resposta imediata as requisições.
O código abaixo foi baseado em pesquisas na internet e alguns tópicos aqui no fórum. Adaptei a minha necessidade.
Lembrando que é necessário gerar um TOKEN para utilizar a API paga. Todas as consultas do seu sistema ficam registradas no seu painel e podem ser cobrados do seu cliente se você achar necessário.
Chega de conversa. Segue o código.
Recomendo criar uma biblioteca interna para facilitar a sua vida com as funções abaixo:
[code]function LimpaRetornoConsultaCNPJ($valor){
$valor = trim($valor);
$valor = str_replace(".", “”, $valor);
$valor = str_replace(",", “”, $valor);
$valor = str_replace("-", “”, $valor);
$valor = str_replace("/", “”, $valor);
$valor = str_replace("\", “”, $valor);
$valor = str_replace("(", “”, $valor);
$valor = str_replace(")", “”, $valor);
return $valor;
}
/* Integrar com ReceitaWS e trazer dados de acordo com CNPJ */
function BuscaDadosCNPJReceitaWS($cnpj, $token, $days){
$url = "https://receitaws.com.br/v1/cnpj/$cnpj/days/$days";
//Inicia o cURL
$ch = curl_init($url);
//Pede o que retorne o resultado como string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// TOKEN
$authorization = "Authorization: Bearer $token";
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
//Ignora certificado SSL
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
//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;
}[/code]
Depois no seu formulário, no campo CNPJ, crie um evento Ajax OnChange e coloque o código abaixo:
[code]
if (!empty({cnpj})){
// Consulta os dados da empresa atualizados nos últimos 30 dias
$retorno_CNPJ = BuscaDadosCNPJReceitaWS({cnpj},'SEU TOKEN CRIADO', 30);
$obj = json_decode($retorno_CNPJ);
if ($obj->status=='ERROR'){
sc_ajax_message($obj->message, "ERRO na consulta do CNPJ", "", "");
}else{
{tipo} = $obj->tipo;
{nome_fantasia} = $obj->fantasia;
{razao_social} = $obj->nome;
//Busca a atividade principal
$atividade_principal = $obj->atividade_principal;
foreach ($atividade_principal as $a) {
{cnae_atividade_principal} = LimpaRetornoConsultaCNPJ($a->code);
{descricao_atividade_principal} = $a->text;
break;
}
//Busca as atividades secundárias
$atividades_secundarias = $obj->atividades_secundarias;
foreach ($atividades_secundarias as $a){
{cnae_atividade_secundaria} = LimpaRetornoConsultaCNPJ($a->code);
{descricao_atividade_secundaria} = $a->text;
break;
}
{data_abertura} = sc_date_conv(LimpaRetornoConsultaCNPJ($obj->abertura),"ddmmaaaa","db_format");
{natureza_juridica} = $obj->natureza_juridica;
{logradouro} = $obj->logradouro;
{numero} = $obj->numero;
{complemento} = $obj->complemento;
{cep} = LimpaRetornoConsultaCNPJ($obj->cep);
{bairro} = $obj->bairro;
{municipio} = $obj->municipio;
{uf} = $obj->uf;
{email} = $obj->email;
{telefone} = LimpaRetornoConsultaCNPJ($obj->telefone);
}
}[/code]
IMPORTANTE: este código é para utilizar a API PAGA do www.receitaws.com.br Para utilizar a versão gratuita tem alguns ajustes no código. Tem tópico no fórum que explica isto.