Giter Site home page Giter Site logo

1xlab / nfe_api_webmaniabr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from felipeurbansk/nfe_api_webmaniabr

0.0 0.0 0.0 372 KB

Emissão de nota fiscal eletrônica e consulta de cep em Laravel com Guzzle para comunicação com a REST API da WebmaniaBR®.

PHP 79.84% Vue 0.41% HTML 19.75%

nfe_api_webmaniabr's Introduction

Emissão Nota Fiscal Eletrônica

Visão geral

Esse projeto foi desenvolvido em Laravel na versão 5.7 abrangendo os seguintes modulos de NF-e: Emissão, consulta, cancelamento, devolução e validação de certificado. Também incorpora um modulo para consulta de CEP, ambos utilizando a REST API disponibilizado WebManiaBR .

Banco de dados

Está sendo utilizado o banco de dados sqlite para armazenar os dados de NF-e emitida pelo sistema web, menos os dados de resposta da API, como chave e xml devido a restrição de acesso a REST API.

Controladores

Os metodos da NF-e estão inseridas no controlador NfeController, nele está toda a lógica de comunicação com a REST API NF-e utilizando a biblioteca Guzzle. Também existe o controlador CepController responsavel pela comunicação com a REST API CEP.

Validação do formulario

As validações dos dados informados no formulário estão sendo tratados em uma classe request, localizado no diretório app/Http/Requests.

As mensagens de erros não estão sendo traduzidas permanecendo assim as respostas padrões do laravel. O campo CPF e CEP são validados utilizando a biblioteca LaravelLegends/pt-br-validator.

Rotas

Nesse projeto existem 2 grupos de rotas definidas, que são

/nfe
e
/cep
.

Grupo de rotas NF-e

  • / - Redireciona para pagina index.
  • /emitir_nfe – Redireciona para o formulário de emissão.
  • /salvar_nfe – Redireciona para o controlador NfeController função salvar.
  • /consulta – Redireciona para o formulário de consulta
  • /consultar_nfe – Redireciona para o controlador NfeController função consultar_nfe
  • /cancelamento_nfe - Redireciona para o formulário de cancelamento
  • /cancelar_nfe - Redireciona para o controlador NfeController função cancelar_nfe
  • /devolver_nfe - Redireciona para o formulário de devolução
  • /devolucao_nfe - Redireciona para o controlador NfeController função devolucao_nfe
  • /validacao_cert - Redireciona para o formulário de validação de certificado
  • /validar_cert - Redireciona para o controlador NfeController função validar_cert
  • /status_sefaz - Redireciona para o controlador NfeController função status_sefaz

Grupo de rotas CEP

  • / – Redireciona para o formulário de consulta CEP.
  • /consultar_cep – Redireciona para o controlador CepController função consultar_cep

Requisitos

Para execução do sistema é necessário ter instalado

  • Composer.
  • Contratação de um plano de NF-e.
  • Para consulta de CEP é necessario apenas cadastrar um e-mail no site da WebmaniaBR para receber as chaves de acesso gratuitamente, para mais informações acessar a documentação.

Utilização

Para comunicação com a API é preciso adicionar as chaves de acesso no cabeçalho das requisições, e para isso elas devem ser inseridas no construtor de cada controlador.

Exemplo construtor controlador NF-e:


public function __construct(){
    /** URL Base */
    $this->url = "https://webmaniabr.com/api/1/nfe/";
    /** Header */
    $this->client = new Client(['headers' => 
        [
            'Content-type' => 'application/json',
            'X-Consumer-Key' => 'SEU_CONSUMER_KEY',
            'X-Consumer-Secret' => 'SEU_CONSUMER_SECRET',
            'X-Access-Token' => 'SEU_ACCESS_TOKEN',
            'X-Access-Token-Secret' => 'SEU_ACCESS_TOKEN_SECRET'
        ]
    ]);
}

Exemplo construtor controlador CEP:


public function __construct(){
    /** URL Base  */
    $this->url = "https://webmaniabr.com/api/1/cep/";
    /** Credenciais de acesso */
    $this->app_key = "sua_app_key";
    $this->app_secret = "sua_secret_key";
    /** Header */
    $this->client = new Client(['headers' => 
        [
            'Content-type' => 'application/json'
        ]
    ]);
}

Inicialmente é necessário atualizar e instalar as dependências do framework, e para isso acontecer deve ser executado um comando no terminal. Navegue até a pasta do projeto utilizando um terminal e execute o seguinte comando:

composer update

Com o framework atualizado pode dar início a migração das tabelas para o banco de dados, e para isso é necessário executar:

php artisan migrate

Com isso, todas as tabelas já estão criadas no banco, sendo necessário agora apenas preencher algumas tabelas que servem para armazenar dados que são utilizados para preencher campos do formulário de emissão, como por exemplo a tabela Operação, onde está armazenado as opções 0 – Entrada 1 – Saída.

Para preencher essas tabelas executar o seguinte comando:

php artisan db:seed

Após os passos anteriores o projeto já está pronto para ser iniciado, e para isso falta apenas iniciar o servidor web do próprio laravel:

php artisan serve

Com isso será informado um link de acesso ao sistema, por padrão esse link disponibilizado é localhost:8000.

E dessa forma já se tem acesso ao sistema web podendo assim realizar os devidos testes.

nfe_api_webmaniabr's People

Contributors

felipeurbansk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.