Nota fical com PHP e certificado A1

233 views
Skip to first unread message

gilp...@gmail.com

unread,
Jan 31, 2018, 10:01:20 AM1/31/18
to NFePHP
Colegas!

É minha primeira postagem aqui forum então se eu cometer algum erro por favor me corrijam.

Estou com a seguinte dúvida: comprei o certificado do tipo A1 para emitir notas fiscais eletronicas na prefeitura aqui de Florianopolis. Já integrei todo o meu sistema com a API da Prefeitura e a forma de gerar a NFe é bem simples: eu realizo um POST contendo um XML e pronto, a Prefeitura gerará a NFe.

Minha dúvida é a seguinte: no final do arquivo XML há várias linhas que preciso preencher no formato abaixo. Como que eu gero essas linhas usando PHP e o certificado do tipo A1? Eu procurei bastante na internet e não descobri como que gero essa parte final do arquivo XML.

Acredito que vários devs estão passando pelo mesmo problema pois quando ligo no suporte da prefeitura eles dizem que muitas outras pessoas já ligaram pra lá pra saber como se faz isso e eles não sabem como responder e que eu teria que consultar um programador (eu sou um programador, pelo menos acho que sou!) para resolver isso!

OBRIGADO!


            <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Sign-4.938194207420864E7">

                <ds:SignedInfo>

                    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
                    <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                    <ds:Reference Id="RefElement-3.496850484729869E7" URI="">
                    <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
                    </ds:Transforms>
                    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                    <ds:DigestValue>KsPAoHg2H0y/wSrrOGRihebcE/g=</ds:DigestValue>
                    </ds:Reference>

                </ds:SignedInfo>

                <ds:SignatureValue Id="SignatureValueID-7.454649528132233E7">
                CkDFTzGt0+vg...==
                </ds:SignatureValue>
                <ds:KeyInfo>

                    <ds:X509Data>

                        <ds:X509IssuerSerial>

                            <ds:X509IssuerName>
                            CN=AC Instituto Fenacon RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR
                            </ds:X509IssuerName>
                            <ds:X509SerialNumber>1c28f49fd377...</ds:X509SerialNumber>

                        </ds:X509IssuerSerial>

                        <ds:X509Certificate>
                        MIIIPDCCBiSg...
                        </ds:X509Certificate>

                    </ds:X509Data>

                </ds:KeyInfo>

            </ds:Signature>

Edwin Schissato

unread,
Jan 31, 2018, 10:10:02 AM1/31/18
to nfe...@googlegroups.com
Essas tags são referentes a assinatura do xml usando o certificado digital.

A forma mais fácil de você entender como funciona isso é analisando o código da API que assina as notas fiscais e usar como base para a nota fiscal da prefeitura.

Veja o método signNFe


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

Edwin Schissato

unread,
Jan 31, 2018, 10:12:45 AM1/31/18
to nfe...@googlegroups.com

gilp...@gmail.com

unread,
Jan 31, 2018, 10:54:49 AM1/31/18
to NFePHP
MUUUUITO obrigado pela atençao de vocês. Eu consultei os links que me forneceram mas não entendi a parte de como gero esse rodapé do XML.

Veja, eu tenho um arquivo pfx (que a certificadora me forneceu). Eu não sei quase nada sobre certificados, nunca trabalhei com isso. Eu já estou há 2 dias lendo direto sobre o assunto e até agora não consegui NEM SABER quais informações do XML que postei (no inicio dessa thread) devem ser alteradas a cada nfe gerada e quais eu tenho que gerar a cada nova geracao de nf.

Por exemplo, a parte que está assim:

<ds:DigestValue>KsPAoHg2H0y/wSrrOGRihebcE/g=</ds:DigestValue>

Como que eu preencho esse valor? Esse DigestValue eu pego ele do meu arquivo pfx ou ele é algum hash aleatorio? Minha duvida é mais na questao de como gerar esses valores, estou muito perdido. Eu agradeço pela atenção desde já e me perdoem se eu não consegui ser muito claro pois realmente apos ler bastante sobre certificados ainda me sinto tão burro quando há 2 dias atras quando eu nao sabia de nada.

Roberto Machado

unread,
Feb 2, 2018, 1:02:33 PM2/2/18
to nfe...@googlegroups.com
O DIGEST é um HASH criado usando um bloco de dados e um protocolo de codificação como o SHA-1 por exemplo

Roberto

Reply all
Reply to author
Forward
Message has been deleted
Message has been deleted
0 new messages