Skip to content

fhferreira/sintegra-cnpj-sp-gratis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

##Extração de dados Sintegra

###Package com Crawler para extração gratuita de dados utilizando CNPJ's diretamente no site do sintegra de sp.

####Módulo baseado no formato utilizado por JansenFelipe para extração no site da Receita, por meio do CPF e CNPJ.

<?php
//Captura dos dados e cookie
$params = \Fhferreira\SintegraCnpjSpGratis\SintegraCnpjSpGratis::getParams();

//Envio dos Dados via POST e captura da Resposta
$returnCrawler = \Fhferreira\SintegraCnpjSpGratis\SintegraCnpjSpGratis::consulta(
                                                                                    $_POST['cnpj'],
                                                                                    null,
                                                                                    $_POST['paramBot'],
                                                                                    $_POST['captcha'],
                                                                                    $_POST['cookie']
                                                                                );

Exemplo utilizando Silex + Twig

<?php
    $app->get('/cnpj-sintegra-sp', function() use($app) {
        $cnpj   = $app['session']->getFlashBag()->get('cnpj');
        $cnpj   = count($cnpj)?$cnpj[0]:'';
        $ie     = $app['session']->getFlashBag()->get('ie');
        $ie     = count($ie)?$ie[0]:'';
        $params = \Fhferreira\SintegraCnpjSpGratis\SintegraCnpjSpGratis::getParams();
        return $app['twig']->render('cnpj/form-sintegra.twig', compact('cnpj', 'ie', 'params'));
    });

    $app->post('/cnpj-sintegra-sp', function() use($app, $environment) {
        try {
            $return = \Fhferreira\SintegraCnpjSpGratis\SintegraCnpjSpGratis::consulta($_POST['cnpj'],$_POST['ie'],$_POST['paramBot'],$_POST['captcha'], $_POST['cookie']);
        } catch(\Exception $e) {
            $app['session']->getFlashBag()->add('message',  $e->getMessage() );//. ' \nLine:' . $e->getLine(). ' \nFile:' . $e->getFile() . "\n" . $e->getTraceAsString()
            $app['session']->getFlashBag()->add('cnpj', $_POST['cnpj']);
            $app['session']->getFlashBag()->add('ie', $_POST['ie']);
            return $app->redirect('/cnpj-sintegra-sp');
        }
        header('Content-Type: application/json');
        //foreach($return as $k => $v) {
        //    $return[$k] = encodeToUtf8($v);
        //}
        echo json_encode(($return));
        die();
    });
?>

##View

{# views/cnpj/form-sintegra.twig #}
{% extends 'layout.twig' %}

{% block title %}Consulta CNPJ Sintegra{% endblock %}

{% block body %}
    <form action="" method="POST">
        <img src="{{ params['captchaBase64'] }}" class="img-thumbnail" />
        <br/><br/>

        {% for message in app.session.getFlashBag.get('message') %}
            <span style="color:red;font-size:20px;">{{ message }}</span>
            <br/>
        {% endfor %}

        <input type="hidden" name="cookie" value="{{ params['cookie'] }}" />
        <input type="hidden" name="paramBot" value="{{ params['paramBot'] }}" />

        <div class="form-group">
            <input type="text" name="captcha" placeholder="Captcha" required="required" class="form-control"/>
            <p class="help-block">Digite corretamente o captcha.</p>
        </div>
        <div class="form-group">
            <input type="text" name="cnpj" id="cnpj" placeholder="Cnpj" required="required"  class="form-control" value="{{ cnpj?:'' }}" />
            <p class="help-block">Digite corretamente o CNPJ.</p>
        </div>
        <input type="submit" value="Consultar" class="btn btn-success" />
    </form>
{% endblock %}

##Blade + Lumen/Laravel

$app->get('/cnpj-sintegra-sp', "App\Http\Controllers\CnpjSintegraController@getForm");
$app->post('/cnpj-sintegra-sp', "App\Http\Controllers\CnpjSintegraController@postForm");
<?php namespace App\Http\Controllers;

use DB;
use Session;

class CnpjSintegraController extends Controller
{
	public function getForm()
	{
		$cnpj = session('cnpj');
		$ie   = session('ie');
		$params = \Fhferreira\SintegraSpGratis\SintegraSpGratis::getParams();
    	return view('cnpj.form-sintegra', compact('cnpj', 'ie', 'params'));
	}

	public function postForm()
	{
	    try {
	        $returnCrawler = \Fhferreira\SintegraSpGratis\SintegraSpGratis::consulta($_POST['cnpj'],$_POST['ie'],$_POST['paramBot'],$_POST['captcha'], $_POST['cookie']);
	    } catch(\Exception $e) {
	        Session::flash('message', $e->getMessage() );
	        Session::flash('cnpj', $_POST['cnpj']);
	        return redirect('/cnpj-sintegra-sp');
	    }	    
	    return $returnCrawler;
	}
}
@extends("layout")

@section("title")
Consulta CNPJ Sintegra
@stop

@section("body")
    <form action="" method="POST">
        <img src="{{ $params['captchaBase64'] }}" class="img-thumbnail" />
        <br/><br/>

        @if(Session::has("message"))
            <span style="color:red;font-size:20px;">{{ Session::get("message") }}</span>
            <br/>
        @endif

        <input type="hidden" name="cookie" value="{{ $params['cookie'] }}" />
        <input type="hidden" name="paramBot" value="{{ $params['paramBot'] }}" />

        <div class="form-group">
            <input type="text" name="captcha" placeholder="Captcha" required="required" class="form-control"/>
            <p class="help-block">Digite corretamente o captcha.</p>
        </div>
        <div class="form-group">
            <input type="text" name="cnpj" id="cnpj" placeholder="Cnpj" required="required"  class="form-control" value="{{ $cnpj?:'' }}" />
            <p class="help-block">Digite corretamente o CNPJ.</p>
        </div>
        <!--
        <div class="form-group">
            <input type="text" name="ie" placeholder="Inscrição Estadual" class="form-control" value="{{ $ie }}" />
            <p class="help-block">Digite corretamente o IE.</p>
        </div>
        //-->
        <input type="hidden" name="ie"/>
        <input type="submit" value="Consultar" class="btn btn-success" />
    </form>
@stop

@section("onload")
    //$('#cnpj').mask("99.999.999/9999-99");
@stop

About

Pacote com Crawler para extração gratuita de dados utilizando CNPJ's diretamente no site do sintegra de sp.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages