fhferreira/sintegra-cnpj-sp-gratis

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

dev-master / 1.0.x-dev 2015-06-17 04:00 UTC

This package is auto-updated.

Last update: 2024-12-08 04:48:10 UTC


README

##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