Ir para conteúdo
  • Cadastre-se

dev botao

Nfc-E - Nota Fiscal Do Consumidor Eletrônica


  • Este tópico foi criado há 3552 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Tentei utilizar o exemplo Acbrnfe_demo e vi que tem uma aba NFCe.. Configurei os dados do certificado emissor e no webservice, coloquei RS. Depois removi os dados do destinatário, já que para Nfce não é obrigatório. Quanto envio a Nfce, processa e retorna o seguinte:post-20334-0-56714600-1402948674.jpg

 

  

Link para o comentário
Compartilhar em outros sites

Boa tarde pessoal

 

Estou enfrentando um problema para gerar o QR-Code de uma NFC-e em contingência referente ao estado do RS. Ao consultar o QR-Code retorna os seguintes erros:

  • Msg: 361 - QR-Code Inválido (Digest Value)
  • Msg: 401 - QR-Code Inválido (Hash do QR-Code)

 

Segundo o manual:

  •  Para o caso da emissão em contingência off-line (tpEmis=9) o digest value corresponde ao algoritmo SHA1 sobre o arquivo XML da NFCe.

Pelo que entendi quando for uma NFC-e em contingência em virtude de o XML ainda não estar assinado, o DigestValue é branco, dessa forma eles exigem que o campo DigestValue utilizado para geração do QR-Code, seja o SHA1 do XML da NFC-e.

 

Ainda segundo o manual:

  • Ao se efetuar a assinatura digital da NFCe emitida em contingência off-line, o campo digest value constante da XMl Signature deve obrigatoriamente ser idêntico ao encontrado quando da geração do digest value para a montagem QR Code.

Pelo que se entende então, que ao realizar a transmissão da NFC-e em contingência o DigestValue após ser assinada deve receber o valor que foi informado na geração do QR-Code (SHA1 do XML).

 

 

Testes efetuados NFC-e Contingência:

 

1º  - Passado o SHA1 do XML no parâmetro DigestValue do método GetURLQRCode, retornar apenas um erro dessa forma.

Erro: Msg: 370 - QR-Code Inválido (Digest Value)

 

1º  - Passado o SHA1 do XML no parâmetro DigestValue do método GetURLQRCode, e alterado para não converter para hexa (pelo que se entende no manual, não deveria converter para hexa o DigestValue quando for contingência), retornar o mesmo erro dessa forma também.

Erro: Msg: 370 - QR-Code Inválido (Digest Value)

 

Obs: SHA1 do XML retorna 40 caracteres, após ser convertido para Hexa dentro do método GetURLQRCode o DigestValue fica com 80 caracteres.

Segundo o manual esse campo obrigatóriamente deve ter 56 caracteres.

 

 

 

Alguém por acaso já enfrentou esse problema ou conseguiu gerar o QR-Code em contingência sem erros?

 

Att. Vanessa Mocellin | Arquiteta de Sistemas 
Sysmo Sistemas Ltda
São Miguel do Oeste - SC | Filial: Itajaí - SC
Fone: 49 3631.0600 | Ramal: 612

www.sysmo.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Vanessa,

 

No meu entendimento quando emitidos o DANFE da NFC-e em contingência, devemos:

 

1. Trocar o Tipo de emissão para (tpEmis=9) 

2. Assinar o XML

3. Utilizar o Digest Value da assinatura no QR-Code.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa tarde Vanessa,

 

No meu entendimento quando emitidos o DANFE da NFC-e em contingência, devemos:

 

1. Trocar o Tipo de emissão para (tpEmis=9) 

2. Assinar o XML

3. Utilizar o Digest Value da assinatura no QR-Code.

Boa tarde Italo,

 

Meu cenário é o seguinte:

Tenho um servidor de aplicação responsável por realizar a transmissão das NFC-e para SEFAZ (que possui o certificado instalado).

E tenho estações (PDV's) que realizam comunicação com o servidor (que possui o token).

 

Quando o PDV (frente de caixa) não consegue realizar comunicação com o servidor, ele gera uma NFC-e em contingência.

 

Então no meu caso, eu não teria como assinar o XML nesse momento.

Partindo da seguinte lógica, que quando a emissão é do tipo contingência ela é realizada nos PDV's, onde não tenho o certificado instalado, tenho apenas o token.

Onde o objetivo do token é justamente essa, de evitar ter que instalar o certificado em todos as estações.

 

Pelo que da para entender no manual ( item 3.5 penúltimo paragrafo da página 18 ) deverá ter um tratamento diferenciado para o DigestValue quando for contingência, já prevendo que esse campo não terá valor, devido não ter assinatura no momento da geração.

E ainda pelo que se entende, depois quando o documento for assinado e transmitido o DigestValue gerado deverá ser o mesmo que foi gerado no QR-Code.

 

Porém seguindo o que consta no manual, 'da forma que entendi' não consegui gerar um DigestValue válido com 56 caracteres.

Att. Vanessa Mocellin | Arquiteta de Sistemas 
Sysmo Sistemas Ltda
São Miguel do Oeste - SC | Filial: Itajaí - SC
Fone: 49 3631.0600 | Ramal: 612

www.sysmo.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Vanessa,

 

Acredito que todos os DANFE - NFC-e que já foram feitos pegam o digVal do XML, no caso de contingência como não esta assinado o seu conteúdo vai ser vazio.

 

Com essa alteração nas Especificações Técnicas sobre o QR-Code vamos ter que voltar a prancheta para resolver essa questão.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa tarde Vanessa,

 

Acredito que todos os DANFE - NFC-e que já foram feitos pegam o digVal do XML, no caso de contingência como não esta assinado o seu conteúdo vai ser vazio.

 

Com essa alteração nas Especificações Técnicas sobre o QR-Code vamos ter que voltar a prancheta para resolver essa questão.

 

Certo Italo, qualquer coisa estou a disposição se precisar de algo.

 

Obrigado

Att. Vanessa Mocellin | Arquiteta de Sistemas 
Sysmo Sistemas Ltda
São Miguel do Oeste - SC | Filial: Itajaí - SC
Fone: 49 3631.0600 | Ramal: 612

www.sysmo.com.br

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Pelo que da para entender no manual ( item 3.5 penúltimo paragrafo da página 18 ) deverá ter um tratamento diferenciado para o DigestValue quando for contingência, já prevendo que esse campo não terá valor, devido não ter assinatura no momento da geração.

Lendo o manual não tive esse entendimento de que a nota não precisa ser assinada por estar em contingência. Todos os modos de contingência exigem a geração do XML e posterior envio do XML que foi gerado e assinado no momento da contingência.

De qualquer forma, vc pode tentar calcular o DigestValue usando o ACBrEAD.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

Pessoal, bom dia...

 

Tenho algumas colocações a fazer:

 

1- São Paulo DIZ que em outubro vai ser obrigatorio o SAT, MAS AINDA NÃO TEM NENHUM EQUIPAMENTO HOMOLOGADO, então acho que será prorrogado, DE NOVO.

 

2- Existe uma VERTENTE do SEFAZ-SP que propoe a adoção COMO OPÇÃO, ou seja, vai ser SAT ou NFC-e, mas NFC-e só para o ano que vem, então, acho que se o SAT for adiado, provavelmente vai virar SUCATA.

 

3- Estou fazendo NFC-e para o AMAZONAS, e percebi que MUDARAM AS URL´s (vi pelo site) e ainda não atualizaram a unit: ACBrNFeUtil.pas. Segue as novas URL´s PUBLICADAS no SITE. Alguem pode confirmar e corrigir se necessário?

 

{
HOMOLOGAÇÃO:
 
AUTORIZAÇÃO (3.10): homnfce.sefaz.am.gov.br/nfce-services/services/NfeAutorizacao
RETORNO AUTORIZAÇÃO (3.10): homnfce.sefaz.am.gov.br/nfce-services/services/NfeRetAutorizacao
CONSULTA: homnfce.sefaz.am.gov.br/nfce-services/services/NfeConsulta2
RECEPÇÃO: homnfce.sefaz.am.gov.br/nfce-services/services/NfeRecepcao2
RETORNO RECEPÇÃO: homnfce.sefaz.am.gov.br/nfce-services/services/NfeRetRecepcao2
EVENTO: homnfce.sefaz.am.gov.br/nfce-services/services/RecepcaoEvento
STATUS DO SERVIÇO: homnfce.sefaz.am.gov.br/nfce-services/services/NfeStatusServico2
CONSULTA NOTA: homnfce.sefaz.am.gov.br/nfce-services/services/NfeConsultaNFe
INUTILIZAÇÃO: homnfce.sefaz.am.gov.br/nfce-services/services/NfeInutilizacao2
QR-CODE: homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?
 
PRODUÇÃO:
 
AUTORIZAÇÃO (3.10): nfce.sefaz.am.gov.br/nfce-services/services/NfeAutorizacao
RETORNO AUTORIZAÇÃO (3.10):  nfce.sefaz.am.gov.br/nfce-services/services/NfeRetAutorizacao
CONSULTA: nfce.sefaz.am.gov.br/nfce-services/services/NfeConsulta2
RECEPÇÃO: nfce.sefaz.am.gov.br/nfce-services/services/NfeRecepcao2
RETORNO RECEPÇÃO: nfce.sefaz.am.gov.br/nfce-services/services/NfeRetRecepcao2
EVENTO: nfce.sefaz.am.gov.br/nfce-services/services/RecepcaoEvento
STATUS DO SERVIÇO: nfce.sefaz.am.gov.br/nfce-services/services/NfeStatusServico2
CONSULTA NOTA: nfce.sefaz.am.gov.br/nfce-services/services/NfeConsultaNFe
INUTILIZACAO: nfce.sefaz.am.gov.br/nfce-services/services/NfeInutilizacao2
QR-CODE: sistemas.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?
}
 
SE EU ESTIVER ERRADO, por favor me corrijam.
 
valew
 
P.S.: Um agradecimento especial para o Juliomar, gente FINÍSSIMA que tem me ajudado MUUUUITO... Ele que me aconselhou a colocar isso no forum.
Link para o comentário
Compartilhar em outros sites

Tenho mais umas dúvidas, quem puder me ajudar, agradeço:
 
1- Uso CLX, mas programo para WINDOWS. Fiz esta besteria pois um grande cliente meu queria trabalhar com LINUX DESKTOP, mas não virou.
Eu queria poder converter TUDO para VCL, mas.... como o trabalho é grande, simplesmente eu uso UNIT´s das VCL junto com CLX, funciona, exceto para componentes básicos, que não posso misturar (tipo IMAGE, COMBOBOX, e similares). Por este motivo estou tendo dificuldades pois NO AMAZONAS, TODAS AS NOVAS EMPRESAS, A PARTIR DO DIA 1 DESTE MES, já são obrigadas a utilizar o NFC-e. Mesmo que já tenha ECF, se precisar colocar um segundo ou terceiro caixa, TEM QUE SER NFC-e: e este é meu problema: a impressão... como imprimir o QRCODE? o ACBr Só tem o ACBrNFeDANFeESCPOS para isso? que tipo de impressora é compativel? se eu usar o ACBrDANFCeFortesFr, qual o QuickReport devo instalar no meu DELPHI? ele é o 7...
 
valew....
Link para o comentário
Compartilhar em outros sites

  • Moderadores

ACBr Só tem o ACBrNFeDANFeESCPOS para isso? que tipo de impressora é compativel?

Não, vc mesmo responde sua pergunta, existe o ACBrDANFCeFortesFr. O DANFCe foi testado em impressoras da Epson e Dascom.

se eu usar o ACBrDANFCeFortesFr, qual o QuickReport devo instalar no meu DELPHI? ele é o 7...

Se vc usar o ACBrDANFCeFortesFr vc deve usar o gerador Fortes Report e não QuickReport.
djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia!

 

Hoje procurei fazer uns testes com a NFC-e no Paraná. Não estou conseguindo, me retorna o seguinte resultado:

 

[ENVIO]
Versao=PR-v3_0_6
TpAmb=2
VerAplic=PR-v3_0_6
CStat=103
XMotivo=Lote recebido com sucesso
CUF=41
NRec=411110210689987
DhRecbto=19/06/2014 11:14:31
TMed=1
Nota(s) não confirmadas:
41->Modelo da NF-e diferente de 55 Modelo informado: 65

 

 

Dei uma olhada neste arquivo: http://svn.code.sf.net/p/acbr/code/trunk/Fontes/ACBrNFe2/ACBrNFeUtil.pas  (obs.: Não sei se é este o atualizado)

e localizei estes endereços para o PR:

 

case ALayOut of
LayNfeAutorizacao : Result := DFeUtil.SeSenao(AAmbiente=1, '', 'https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeAutorizacao3');
LayNfeRetAutorizacao : Result := DFeUtil.SeSenao(AAmbiente=1, '', 'https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeRetAutorizacao3');
LayNfeInutilizacao : Result := DFeUtil.SeSenao(AAmbiente=1, '', 'https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeInutilizacao3');
LayNfeConsulta : Result := DFeUtil.SeSenao(AAmbiente=1, '', 'https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeConsulta3');
LayNfeStatusServico : Result := DFeUtil.SeSenao(AAmbiente=1, '', 'https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeStatusServico3');
LayNfeCadastro : Result := DFeUtil.SeSenao(AAmbiente=1, '', 'https://homologacao.nfe.fazenda.pr.gov.br/nfe/CadConsultaCadastro2');
LayNFeCCe,
LayNFeEvento : Result := DFeUtil.SeSenao(AAmbiente=1, '', 'https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeRecepcaoEvento');

 

 

Observei que estes dois últimos não correspondem com o que está no site: http://boletim.fazenda.pr.gov.br/boletins/item/2014/4

".nfe2" ao invés de ".nfe" para os dois últimos endereços.

 

Os novos endereços dos Web Services da versão 3.10 estão disponíveis no Portal do SPED/PR e são:
https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeAutorizacao3 
https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeRetAutorizacao3 
https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeConsulta3 
https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeInutilizacao3
https://homologacao.nfe.fazenda.pr.gov.br/nfe/NFeStatusServico3
https://homologacao.nfe2.fazenda.pr.gov.br/nfe/CadConsultaCadastro2
https://homologacao.nfe2.fazenda.pr.gov.br/nfe-evento/NFeRecepcaoEvento

 

 

Alguém pode verificar se é isto mesmo ou se eu que estou olhando no arquivo errado.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Hoje procurei fazer uns testes com a NFC-e no Paraná.

Aparentemente apenas NFe está funcionando no PR, pois o boletim diz "contemplando as alterações contidas na Nota Técnica 2013.005 – v1.02, relacionadas apenas a NF-e, modelo 55".

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bem observado André!

 

Realmente sendo isto faz sentido a mensagem: "Modelo da NF-e diferente de 55 Modelo informado: 65"

 

Obrigado!


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Lendo o manual não tive esse entendimento de que a nota não precisa ser assinada por estar em contingência. Todos os modos de contingência exigem a geração do XML e posterior envio do XML que foi gerado e assinado no momento da contingência.

De qualquer forma, vc pode tentar calcular o DigestValue usando o ACBrEAD.

 

Bom dia André,

 

Quando contingência, a SEFAZ da a possibilidade de gerar o DigestValue de forma diferenciada, com o objetivo de não obrigar o contribuinte ter que instalar o certificado em todos os PDV's (motivo pelo qual existe o token).

Isso seria apenas uma forma de auxiliar a implantação de empresas grandes, mas isso não impede que empresas de pequeno porte (com poucos terminais) tenham instalado o certificado em todas as máquinas.

 

Como mencionei anteriormente no post , nos testes efetuados tentei gerar o DigestValue a partir do arquivo XML conforme me orientou, porém retorna  Erro: Msg: 370 - QR-Code Inválido (Digest Value)

 

Não consigo gerar um DigestValue válido.

 

Pode ser que tenha me passado em alguma coisa, abaixo codificação utilizada para gerar o DigestValue:

 

    if ( TipoTransmissao = 'N' ) then
      sDigestValue := oACBrNFe.NotasFiscais.Items[ 0 ].NFe.signature.DigestValue;
    else
    begin
      with ( TACBrEAD.Create( nil )) do
      try
        sDigestValue := CalcularHash(oACBrNFe.NotasFiscais.Items[ 0 ].XML, dgstSHA1);
      finally
        Free;
      end;
    end;

 

Seria esse método CalcularHash que me orientou a usar para gerar o DigestValue?

Att. Vanessa Mocellin | Arquiteta de Sistemas 
Sysmo Sistemas Ltda
São Miguel do Oeste - SC | Filial: Itajaí - SC
Fone: 49 3631.0600 | Ramal: 612

www.sysmo.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Vanessa,

 

O que tudo indica, sim, a sua rotina esta correta.

 

Só falta checar 2 coisas:

 

1. oACBrNFe.NotasFiscais.Items[ 0 ].XML esta retornando o XML inteiro da NF-e (sem a assinatura)?

2. O tamanho em caracteres do sDigestValue é o mesmo quando TipoTransmissao é igual a 'N'?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia Vanessa,

 

O que tudo indica, sim, a sua rotina esta correta.

 

Só falta checar 2 coisas:

 

1. oACBrNFe.NotasFiscais.Items[ 0 ].XML esta retornando o XML inteiro da NF-e (sem a assinatura)?

2. O tamanho em caracteres do sDigestValue é o mesmo quando TipoTransmissao é igual a 'N'?

Bom dia Italo,

 

1 - Estou passando o XML inteiro, sem assinatura. Estou realizado esse procedimento no PDV onde não tenho certificado.

 

2 - Os tamanhos dos retornos são diferentes, quando é transmissão NORMAL o DigestValue tem 28 caracteres, que posteriormente ( na função NotaUtil.GetURLQRCode ) é convertido para hexa ficando com 56 caracteres, o tamanho correto solicitado pelo manual.

Quando transmissão CONTINGÊNCIA o DigestValue fica com 40 caracteres e posteriormente após a conversão para hexa fica com 80 caracteres.

Obs: Testei também sem a conversão para hexa, pois no manual não esta especificado que para esse caso necessite da conversão, porém ocorreu o mesmo erro.

 

Segundo consta no manual o tamanho do DigestValue deve ser exatamente 56 caracteres.

Editado por Vanessinha Mocellin

Att. Vanessa Mocellin | Arquiteta de Sistemas 
Sysmo Sistemas Ltda
São Miguel do Oeste - SC | Filial: Itajaí - SC
Fone: 49 3631.0600 | Ramal: 612

www.sysmo.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Vanessa,

 

Segundo a Especificação Técnica, diz que quando o XML receber a assinatura o DigestValue  tem que ser exatamente igual ao informado no QR-Code.

 

Ai temos um problema, pois quando é realizado a assinatura o DigestValue fica com 28 caracteres, mas quando é calculado o Hash no XML fica com 40.

 

O próximo teste é comparar esses 2, caractere por caractere.

 

Para saber se no segundo caso devemos pegar os 28 primeiros caracteres ou os últimos, ....

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo,

 

Não seria algo tão simples, eles não estão nem perto de serem iguais kkkkkkk essa é minha grande preocupação, porque dessa forma quebra com a assinatura digital...

 

Vou te explicar passo a passo, para você entender melhor como estou procedendo, caso esteja fazendo algo errado:

 

1º - No PDV gero uma NFC-e em contingência, e de acordo com o seu XML (anexo xml.xml) gero o DigestValue conforme código abaixo: 

             

                   sDigestValue := CalcularHash(oACBrNFe.NotasFiscais.Items[ 0 ].XML, dgstSHA1);

 

     O SHA1 gerado a partir do XML = 93922644CECEE6988CF28CC5F0E885F5D441ADD3 (40 caracteres)

     Segundo exemplos encontrados no link: http://pt.wikipedia.org/wiki/SHA1 sempre é gerado 40 caracteres para o SHA1

 

     Utilizo o método NotaUtil.GetURLQRCode, passando de parâmetro o DigestValue gerado.

     No método NotaUtil.GetURLQRCode, após converter o DigestValue para hexa fica com 80 caracteres: 39333932323634344345434545363938384346323843433546304538383546354434343141444433

 

QR-Code gerado:

https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx?chNFe=43140690180621000197650550000001229000001221&nVersao=100&tpAmb=2&dhEmi=323031342D30362D32305431343A35363A30332D30333A3030&vNF=0.50&vICMS=0.09&digVal=39333932323634344345434545363938384346323843433546304538383546354434343141444433&cIdToken=000001&cHashQRCode=D06B7FC810E41E2B220170631F913F119A58EAEB

 

     Obs: Se gerar o SHA1 do xml em anexo no site http://www.convertstring.com/pt_PT/Hash/SHA1 se obtém o mesmo valor, ou seja, o método CalcularHash esta de acordo.

 

 

2º - Quando estabelecer comunicação com o Servidor essa NFC-e é assinada e transmitida, nesse momento o DigestValue gerado é: AJ5CxasySMKMI8exBXxh1lwOlSM= (28 caracteres)

      Em anexo para comparativo o arquivo xml-assinado.xml.

      Após converter o DigestValue para hexa fica com 56 caracteres: 414a354378617379534d4b4d4938657842587868316c774f6c534d3d

 

Obs: Mesma situação ocorre no estado do MT.

xml.xml

xml-assinado.xml

Editado por Vanessinha Mocellin

Att. Vanessa Mocellin | Arquiteta de Sistemas 
Sysmo Sistemas Ltda
São Miguel do Oeste - SC | Filial: Itajaí - SC
Fone: 49 3631.0600 | Ramal: 612

www.sysmo.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Vanessa,

 

Pesquisando na Internet achei esta função que calcula o DigestValue, não testei.

 

function DigestValue(XML: String; out Dados: WideString): Boolean; 
var 
  HashedData: IHashedData; 
  AlgoHash : CAPICOM_HASH_ALGORITHM; 
begin 
  Try 
    AlgoHash := CAPICOM_HASH_ALGORITHM_SHA1; 
 
    HashedData := CoHashedData.Create; 
    HashedData.Algorithm := AlgoHash; 
    HashedData.Hash(XML); 
    Dados := HashedData.Value; 
 
    Result := True; 
  except 
    on E: Exception do 
    begin 
      Result := False; 
      MessageDlg(E.Message, mtError, [mbOk], 0); 
    end; 
  end; 
end;
 
O segundo parâmetro é o retorno, ou seja o DigestValue.
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

 

Bom dia Vanessa,

 

Pesquisando na Internet achei esta função que calcula o DigestValue, não testei.

 

Boa tarde Italo,

 

Fiz os testes com a função que passou, abaixo valores apresentados para analise:

 

Função DigestValue ( método que passou ) = '53BB5D9649587F8C8D408419043E476E537692FC'
 
Função CalcularHash = '80B94CCA98CB8703E16935707CE4DAE3D808219F'
 
DigestValue gerado no XML após ser assinado = 'btK9KvFLa4YtuoewJAK8iHxHUrw='

 

 

A função que passou gera um número diferente do gerado pelo CalcularHash, porém gera com 40 caracteres também. Ficando dessa forma o DigestValue inválido.

Não sei, talvez teria que converter para alguma coisa o valor obtido, pois são muito diferente do DigestValue gerado após o XML ser assinado.

 

A questão é que no manual consta que o DigestValue deve possuir 56 caracteres e o SHA1 resulta em 40, já não fecha de cara.

Editado por Vanessinha Mocellin

Att. Vanessa Mocellin | Arquiteta de Sistemas 
Sysmo Sistemas Ltda
São Miguel do Oeste - SC | Filial: Itajaí - SC
Fone: 49 3631.0600 | Ramal: 612

www.sysmo.com.br

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vc deve seguir os passos informados no manual para assinatura:

 

- canonização C14N XML

- Calcular SHA1

- Converter para Base 64

 

Não me lembro se tem mais algum passo a ser feito.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

Vc deve seguir os passos informados no manual para assinatura:

 

- canonização C14N XML

 

Essa canonização C14N XML que você cita, seria oque os métodos AssinarLibXML e AssinarMSXML da unit ACBrNFeUtil fazem?

Editado por Vanessinha Mocellin

Att. Vanessa Mocellin | Arquiteta de Sistemas 
Sysmo Sistemas Ltda
São Miguel do Oeste - SC | Filial: Itajaí - SC
Fone: 49 3631.0600 | Ramal: 612

www.sysmo.com.br

Link para o comentário
Compartilhar em outros sites

André, bom dia...

 

1- Sabe se alguem verificou as URL´s do Amazonas?

 

2- Como eu passo os parametros da NF-e para o ACBrDANFCeFortesFr ?

 

já tenho um componente TACBrNFe no meu formulário principal, que já carreguei o XML do cupom fiscal nele.

 

coloquei (no meu form principal):

 

var

  form_cupom: TACBrNFeDANFCeFortesFr;
 

coloquei um botão que cria um formulario:    Application.CreateForm(TACBrNFeDANFCeFortesFr, form_cupom)

 
como jogo no form os dados? quando abre esta dando a mensagem: Sistema não está de acordo com a versão do FortesReport. Versão atual: 3.72B
 
Obrigado.
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3552 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...