-
Notifications
You must be signed in to change notification settings - Fork 686
Instalação no Windows
Suponho que tenha lido o Manual de Orientação do Contribuinte (neste exemplo estava na v.6.0.0) disponibilizado pela SEFAZ, além também de ter lido todas as páginas do Wiki antes de voltar até aqui e iniciar os trabalhos com a API NFePHP, se você não entender como funciona a emissão de um documento fiscal e toda a estrutura deste projeto jamais vai conseguir contribuir (ou utilizar a API). Acredito que tenha todos os requisitos básicos para começar a utilizar a API, tais como conhecimentos em Linguagem PHP, programas e frameworks necessários como Git, Composer, Node, Grunt, Bower, (Eu particularmente recomendo o Ruby também...), Laravel, e claro um servidor web que interprete as páginas PHP (neste exemplo eu uso XAMPP v.3.2.1). Tudo instalado, configurado e funcionando!
Se leu todo o Wiki vai saber como o projeto caminha e como funciona as atualizações, não vou criar redundância sobre isso, então acesse a página de Releases e baixe o último lançamento estável do projeto (neste exemplo estava na v4.0.43), descompacte no seu htdocs (ou www), acesse a pasta, clique com o direito do mouse em uma área limpa e no menu de opções clique em Use Composer Here (isso vai nos economizar tempo em abrir o Composer e acessar o diretório através de cd.. cd... Mentira! isso é coisa de preguiçoso mesmo...), com isso o Composer será executado e direcionado para a pasta atual, sendo assim vamos baixar os pacotes necessários para o funcionamento da API (são pacotes externos da API mantido por outros desenvolvedor, gerador de Código de Barras, QrCode, PDF, Enviador de E-mails e etc... tudo que a API não precisa fazer, porque alguém já fez e só precisamos usar... utilizando dessa forma e usando o Composer para gerir eles, fica fácil baixar/atualizar esses pacotes, sendo que quando os outros desenvolvedores atualizarem esses pacotes daremos somente um update por aqui e todos os brinquedos novos chegaram embaladinhos e pronto para brincadeira).
Execute o comando:
composer update
Agora relaxe e aguarde o Composer baixar e configurar tudo, vá no youtube assistir alguns Trailers de filme da Marvel...
Depois de alguns segundos (é bem rápido mesmo...), você vai receber a última mensagem Generating autoload files, Parabéns deu tudo certo, a parti de agora podemos começar a usar a API. =)
Caso alguma coisa deu errado ou você recebeu a mensagem the requested php extension [nome_da_biblioteca] is missing from your system, uma ou varias vezes, você esta em más lençóis!!! Não chore, vá até o seu php.ini e descomente as bibliotecas que foram informadas pelo Composer, essa mensagem significa que você não tem as bibliotecas do PHP instaladas (ou disponíveis para uso...). Se você precisar instalar alguma biblioteca do PHP (.dll), não me procure, isso é chato pra caralho.
Depois de sanar os problemas, execute o comando de update novamente para baixar o que faltou devido os erros de bibliotecas do PHP.
Após baixar todos os arquivos e colocar tudo no lugar através do Composer (sem erros é claro...), através do navegador acesse o pasta install/ do projeto, será carregado uma página de configuração que contém várias abas, tais como:
- Módulos - O uso do NFePHP requer vários módulos do PHP para que possa funcionar, todos os módulos listados são necessários e tem que esta marcado com um OK verde.
- Emitente - São as informações jurídicas da empresa que irá emitir as notas além e claro do Certificado Digital (se você não tem um, ou não possui acesso a de nenhum cliente seu, feche essa janela e vá atrás de um, sem certificado você não pode fazer nada, nem testar o projeto...), após informar o arquivo do certificado e a senha do mesmo é possível testar o uso clicando em "Testar", se passar no teste será criado arquivos .pem que serão utilizados pela API. Token IBPT é necessário para quem possui cadastro no portal deles e deseja que a informação sobre carga tributária seja calculada e de responsabilidade deles, caso contrário o calculo deve ser efetuado por você, já que informar a carga tributária é lei (12.741/12). CSC - Código de Segurança do Contribuinte, é obrigatório informar para quem deseja emitir NFC-e, é fornecido pelas SEFAZ (ou pode ser gerado através da API se sua SEFAZ possui o serviço por WebService).
- Pastas - A estrutura de pastas é onde os arquivos xml são salvos, sejam NFe, NFCe, CTe, MDFe, CLe, ou NFSe, bem como todos os arquivos xml relativos as mensagens da comunicação SOAP, tanto as enviadas como as recebidas. Tanto para ambiente de produção como de homologação. Leia essa página da Wiki: Diretórios de armazenamento dos XML
- Impressoras - Configurações da Impressora e logo que será exibido na DANFE e DANFCE, será bastante útil para quem deseja emitir NFC-e, o arquivo é enviado direto para impressora, economizando tempo na emissão da Nota (DANFCE por enquanto é gerada apenas em PDF, não sendo enviada diretamente para a Impressora!).
- Webservices - Nome dos arquivos XML que possui os endereços das WebServices, geralmente os campos já vem pré-definidos (em meu caso particular eu precisei remover o endereço criado pela aplicação, deixando somente o nome do arquivo...).
- Schemas - Nome dos arquivos XSD que possui os Esquemas para validação dos XMLs, esses campos também vem pré-definido.
- Email - Informações de uma conta de E-mail para que a API envie as notas por e-mail.
- Proxy - Configurações caso o sistema esteja instalado em um ambiente de rede cujo acesso a internet seja feito através de um servidor proxy.
Preencheu tudo e deu certo, será criado um arquivo config.json que terá todas essas informações informadas para que a API utilize.
Agora que temos todos os arquivos do projeto atualizados e configurados com nossos dados empresarial, já podemos emitir Notas Fiscais, a regra é:
1 - criar o xml (usando a classe NFe/MakeNFe.php) veja o exemplo
2 - assinar o xml (usando a classe NFe/ToolsNFe.php) veja o exemplo
3 - validar o xml assinado (usando a classe NFe/ToolsNFe.php) veja o exemplo
4 - enviar o lote de NFe para a Sefaz (usando a classe NFe/ToolsNFe.php) veja o exemplo e pegar o recibo retornado.
5 - como o sistema é assíncrono é necessário buscar o resultado da analise da SEFAZ (usando a classe NFe/ToolsNFe.php) veja o exemplo
6 - se a NFe foi aprovada então adicionar o protocolo de autorização ao xml original enviado (usando a classe NFe/ToolsNFe.php veja o exemplo
7 - com o protocolo já anexado então está autorizada a impressão da DANFE (usando a classe auxiliar Extras/Danfe.php) veja o exemplo
Pronto! emitiu sua primeira NFe pela API, agora você já pode contribuir com o projeto, já que entende o funcionamento.
Dica: Sempre que for trabalha no projeto, dê um comando Composer update para atualizar os pacotes do projeto e ter acesso a todos os novos recursos.
PS: Em 2013 fiz um folk desse projeto sem nem saber o que é Git, estava mais perdido que o john travolta, nem sabia por onde começar, é claro não fui pra frente, até afastei do projeto, recentemente aproximei novamente e somente após ler praticamente todos os arquivos do site da SEFAZ (rapaz tinha arquivo que nem era sobre nfe...), e ler todo o Wiki do projeto (que sinceramente é um vai e volta...) é que me situei e conseguir fazer alguma coisa, acredito que se você não fizer isso também, você vai ficar toda hora no fórum perguntando besteira, pois a resposta esta aqui ou em alguma Issues já resolvida. Fica a dica! =)
por Chinnon Santos
Estou dando uma olhada na NFePHP e resolvi fazer uns testes. Meu ambiente é Windows 7 com xampp 1.7.4 e gostaria de compartilhar as dicas de como fiz para instalar:
- Ocorreu um problema com a classe Mail do PEAR: Incluí a linha abaixo na classe Mail_mail do PEAR (deve haver uma forma mais elegante, configurando corretamente include_path etc). require_once "Mail.php";
- Ocorreu um erro com o PHP Open SSL: Criei a linha abaixo na lista de extensões do PHP (PHP.INI) extension=php_openssl.dll
- Ocorreu um problema com o caminho do diretório NFE : Informei o caminho escapando as barras invertidas, exemplo:
"C:\\xampp\\htdocs\\minhaempresa\\nfe"
No caminho da logomarca também pode ocorrer esse problema. - Ocorreu um erro ao tentar carregar o módulo CURL do PHP : Criei a linha abaixo na lista de extensões do PHP (PHP.INI) extension=php_curl.dll
Espero que seja útil.
por Dieison Rabêlo