zservices/query

Pacote para consultas em serviços do governo.

Installs: 1 052

Dependents: 0

Suggesters: 1

Security: 0

Stars: 13

Watchers: 4

Forks: 1

Open Issues: 1

Type:package

1.2.4 2017-08-07 12:56 UTC

README

Laravel 5 Latest Stable Version Total Downloads Latest Unstable Version License Build Status Dependency Status Issues Status Stars Status Code Climate Issue Count Test Coverage Scrutinizer Code Quality

Pacote para buscar informações nos serviços federais e estaduais do Brasil

É feito uma requisição no serviço, retornando cookie e captcha do serviço. Após usuário informar o captcha é feito outra requisição, retornando informações do CNPJ.

Este pacote deverá ser usado com responsabilidade, o autor e contribuidores não devem responder pelas implementações/ações feita com este pacote.

Atenção

Este pacote foi desenvolvido com o intuito de facilidade consultas através de ERP ou serviços que necessitam de consistência de dados. Não foi criado com o intuito de ser utilizado como bot

Toda implementação será de sua responsabilidade.

Quebra Automática de Captcha

Foi desenvolvido um pacote que facilita na resolução automática do captcha, faça o uso de sua responsabilidade.

Este pacote já possui referencia para tal.

Exemplo:

use zServices\ReceitaFederal\Search as ReceitaFederal;

$service = (new ReceitaFederal)->service(); 
$request = $service->request(); // inicia requisição na receita federal

$cookie = $request->cookie();
$captcha = $request->captcha();

$document = '54787138000101' // CNPJ
$decaptcher = (new \Captcha\DeathByCaptcha\Service)->credentials('yourLogin', 'yourPassword');
$service->decaptcher($decaptcher); // Passa o serviço que será usado para quebra do captcha
$array = $search->data($cnpj, $cookie, $captcha, [])->scraping(); // após alguns segundos ele retorna array com as informações da entidade.

O pacote por enquanto apenas possui implementação do DeathByCaptcha, que é um serviço pago, porém valor muito baixo por pacote de captcha resolvido. Visite o site e adquire um plano.

Version Stable

1.2.4

Instalação

$ composer require zservices/query 1.*

Laravel 5

Configure os providers e aliases em config/app.php

'providers' => [
    // ....
      zServices\Laravel\ServicesProvider::class,
    //...
];

'aliases' => [
    //...
    'Sintegra' => zServices\Laravel\SintegraFacade::class,
    'ReceitaFederal' => zServices\Laravel\ReceitaFederalFacade::class,
    //...
];
use ReceitaFederal;
$service = ReceitaFederal::service()->request();

return view('receitafederal.query.example',[
    'cookie' => $service->cookie(),
    'image'  => $service->captcha()
]);

Exemplos

Receita Federal

$rf = receitaFederal(); // retornará um array com cookie e base64 captcha

Para requisitar os dados

$rf = receitaFederal($cnpj, $cookie, $captcha); // retornará um array com os dados do CNPJ na Receita Federal

ou

use zServices\ReceitaFederal\Search as ReceitaFederal;
$search = (new ReceitaFederal)->service()->request(); // initialize

$captchaBase64Image = $search->captcha(); // captura base64_decode da imagem
$cookieRequest = $search->cookie(); // captura o cookie do request iniciado

Dados após o form

// Requisitar dados
use zServices\ReceitaFederal\Search as ReceitaFederal;

$search = (new ReceitaFederal)->service();
$crawler = $search->data($cnpj, $cookie, $captcha, []);
$arrayData = $crawler->scraping(); // array com as informações da entidade

Para consultar receita federal basta pegar o cookie e a imagem do captcha, após resolver o captcha é preciso retornar o cookie e a string resolvida para o serviço, ele deverá retornar um array associado com as informações do CNPJ informado.

Sintegra SP

Helper

$rf = sintegra(); // retornará um array com cookie e base64 captcha

Para requisitar os dados

$rf = sintegra($cnpj, $cookie, $captcha, $params); // retornará um array com os dados do documento no Sintegra

ou

use zServices\Sintegra\Search as Sintegra;
$search = (new Sintegra)->service('SP')->request(); // initialize

$captchaBase64Image = $search->captcha(); // captura base64_decode da imagem
$cookieRequest = $search->cookie(); // captura o cookie do request iniciado
$params = $search->params(); // captura o valor dos inputs
$paramBot = $params['parambot']; // captura parambot

Dados após o form

// Requisitar dados
use zServices\Sintegra\Search as Sintegra;

$search = (new Sintegra)->service('SP');
$crawler = $search->data($cnpj, $cookie, $captcha, $paramBot);
$arrayData = $crawler->scraping(); // array com as informações da entidade

O portal do sintega de SP além do captcha possui um valor no formulário com nome de paramBot. Este valor é único por requisição, não por cookie. Então para que a requisição funcione corretamente é preciso pegar e devolver ele nas requisições posteriores.

O método $search->params() devolve um array com os inputs que são necessários devolver, que no caso do sintegra de sp é apenas paramBot. Este valor deverá ser inserido em seu formulário e devolvido como array associado na requisição das informações da entidade.

Retornos

Imagem de exemplo com as informações de retorno do serviço.

Receita Federal

Retorno

Sintegra SP

Retorno

Desenvolvimento

Deseja contribuir com desenvolvimento? pull request :)

To-do

License

MIT

Free Software, Hell Yeah!