Dúvidas de iniciante ao sped-nfe

1,370 views
Skip to first unread message

Tiago Caus

unread,
Nov 28, 2017, 1:00:48 PM11/28/17
to NFePHP
Sou iniciante ao speed-nfe e ao composer.

Vou isso vou tentar colocar minha dúvida o mais pratica e didática possível para que outros possam usar como referencia.



PARTE 1

Para baixar os arquivos eu devo montar o arquivo composer.json assim:


ou assim:

{
   
"require": {
       
"nfephp-org/sped-nfe": "stable",
       
"nfephp-org/sped-da": "stable"
   
}
}




PARTE 2

- Depois de ter baixado, em qual pasta coloca o arquivo do CERTIFICADO DIGITAL?
- É possível testar sem certificado digital?



PARTE 3

A ordem do processo é: GERAR XML > ASSINAR > GERAR DANFE?



PARTE 4

No projeto antigo phpnfe, tinha arquivos prontos para já fazer um teste. O sped-nfe tem esses arquivos para montar a partir deles?






Acredito que seja somente isso, caso falte algum tópico, coloque em baixo, acredito que fazendo dessa forma, ira ajudar muita gente, incluindo eu.



Obrigado a todos.






Roberto Machado

unread,
Nov 28, 2017, 1:13:25 PM11/28/17
to nfe...@googlegroups.com
PARTE 1

Na raiz da sua aplicação digite no terminal

composer require nfephp-org/sped-nfe


composer require nfephp-org/sped-da

ou 

edite seu composer.json incluindo 


    
"require": {
       
"nfephp-org/sped-nfe": "^5.0",
       
"nfephp-org/sped-da": "^0.1"
    
}

PARTE 2

Não precisa gravar o certificado em nenhuma pasta especifica, o certificado pode estar em qualquer lugar acessível (inclusive na base de dados)
O que você deve fazer é pode ler o conteúdo do mesmo e passar para a classe que instancia e controla os certificados 

NÃO É POSSÍVEL FAZER TESTES SEM UM CERTIFICADO VÁLIDO E ACEITO PELAS SEFAZ


PARTE 3

A sequencia básica é a seguinte desde que não haja nenhuma rejeição!!

criar XML -> assinar -> validar -> enviar -> consultar recibo -> protocolar -> salvar -> enviar por email ao destinatário -> imprimir o DANFE


PARTE 4

Sim e não, existem alguns exemplos, mas muita coisa está documentada em 

IMPORTANTE 

Ler e entender a documentação da SEFAZ (Toda ela, sem atalhos)

Roberto

Tiago Caus

unread,
Nov 29, 2017, 9:35:38 AM11/29/17
to NFePHP
Uso o PHPStorm, baixei via compouser, mas não estou sabendo como usar.




- Como inicia a construção do XML?

- Quais includes deve ser feita?


Obrigado.

Roberto Machado

unread,
Nov 29, 2017, 9:39:50 AM11/29/17
to nfe...@googlegroups.com
Nesse caso meu amigo ! 

você necessita de conceitos básicos de programação.

Sugiro fazer algum curso.

Roberto

Tiago Caus

unread,
Nov 29, 2017, 10:02:49 AM11/29/17
to NFePHP
Olá Sr. Roberto,
O pouco que aprendi, foi lendo em foruns e perguntando.

Não tenho condições de pagar um curso.

Por favor, me ajude em seu vasto conhecimento levará alguns segundos para sanar minha dúvida.

Quando era NFePHP, fazia assim:

include
("nfephp/config/config.php");
include
('libs\NFe\ToolsNFePHP.class.php');
include
('libs\NFe\MakeNFePHP.class');

class nfe {
  

   
public function gerarXML($_prNota){
     
.
     .
     .
  
}
  

}




Roberto Machado

unread,
Nov 29, 2017, 10:04:10 AM11/29/17
to nfe...@googlegroups.com

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+unsubscribe@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Roberto
Nisi utile est quod facimus stulta est gloriae (Julius Phaedous)

Tiago Caus

unread,
Nov 29, 2017, 10:14:45 AM11/29/17
to NFePHP
Já estava pesquisando.

O arquivo https://github.com/nfephp-org/sped-nfe/blob/master/docs/Make.md não da instruções de qual include fazer.

Tiago Caus

unread,
Nov 29, 2017, 11:29:27 AM11/29/17
to NFePHP
Seria assim?


<?php
include "vendor/autoload.php";

use NFePHP\NFe\Make;

$nfe = new Make();

Carlos Alberto

unread,
Nov 30, 2017, 6:32:26 AM11/30/17
to NFePHP
Só com esses dados fica difícil te ajudar, mas vamos tentar.

Eu estou utilizando o framework laravel, então, algumas importações já são feitas automaticamente (autoload por exemplo).

Eu dividi a emissão basicamente em 2 classes (mas é claro que dependo de outras para a montagem do Model, este que não está ligado diretamente ao nfephp), sendo o controller e um service.
O controller só organiza as informações e o serviço faz o resto.

Eu precisei importar:
use NFePHP\NFe\Make;
use NFePHP\NFe\Tools;

E para enviar a nota, eu faço mais ou menos assim:
public function enviarNota($configFile, $xml, $certificado, $nota)
{
$nfeTools = new Tools($configFile, $certificado);
$nfeTools->model($nota->modelo_nota);
$nfeTools->version($nota->versao_webservice);
$idLote = $this->nfeUtilsRepository->gerarIdLote();
$indSinc = 0;
$flagZip = false;
$retorno = $nfeTools->sefazEnviaLote([$xml], $idLote, $indSinc, $flagZip);
// dd($idLote);
return $retorno;
}

É claro que eu mudei algumas coisas ai da minha regra.
Mas no geral eu tenho um método para cada etapa do processo.

Tiago Caus

unread,
Nov 30, 2017, 6:38:04 AM11/30/17
to NFePHP
Olá Carlos,
Eu estou na faze inicial. Ainda estou tentando montar o XML.

Maicon Fernando Stefene da Silva

unread,
Apr 10, 2018, 5:17:58 PM4/10/18
to NFePHP
Boa tarde

Tiago, você conseguiu fazer os testes, estou com dificuldade para pegar o certificado digital mesmo lendo a documentação acima não consegui obter sucesso me da o erro abaixo.

Warning: file_get_contents() expects at least 1 parameter, 0 given in C:\wamp64\www\xml\_app\teste.php on line 23

O que devo informar aqui,  $strchain = file_get_contents(); eu nao achei documentacao sobre esta variavel
Meu codigo esta assim
if (file_exists(PATH_CERTIFICADO . NOME_CERTIFICADO)):
            echo PATH_CERTIFICADO . NOME_CERTIFICADO . '<p>';
        endif;


        $pfx = file_get_contents(PATH_CERTIFICADO . NOME_CERTIFICADO);
        $cert = Certificate::readPfx($pfx, 'S!uxAKu@5JetRU');

//carrega a cadeia de certificados, usar apenas se necessário
        $strchain = file_get_contents();
        $chain = new CertificationChain($strchain);

        $cert->chainKeys = $chain;
Reply all
Reply to author
Forward
Message has been deleted
0 new messages