Ir para conteúdo
  • Cadastre-se

emoser

Membros
  • Total de ítens

    1
  • Registro em

  • Última visita

Tudo que emoser postou

  1. emoser

    Assinatura Nfse

    Caros colegas, também enfrentei esse problema. A questão está justamente na forma da assinatura. 1-Na NFe (modelo 55) é necessário montar o template Signature sem adicionar no documento, assinar e só então depois adicionar. 2-No caso da NFSe (serviços) é preciso adicionar o template Signature no documento xml para assinar junto gerando DigestValue, SignatureValue e X509Certificate. // Meu exemplo funciona para ambos (NFe e NFSe-"Equiplano") // ANodes vem do documento XML original (é a tag a ser assinada) // Eu faço uma array com todos os nodes necessarios (FindNode) e depois vou assinado um a um // Não utilizo SelectNodes pq houveram problemas com isso, até pq a Signature não está no documento ainda. // Isso somente funcionava bem com nota NFe (modelo 55). // Informar o Id e a URI a ser assinada e preparar o Signature para receber a assinatura xmldsig.signature := CreateSignature( ANodes ); // gera a estrutura para assinatura () --> template if ReferenceById(ANodes) = '' then // Não tem atributo "Id" (é uma NFSe), adicionar no documento antes de assinar. ANodes.appendChild( xmldsig.signature ); // Informar a URI como referencia antes de assinar(xmldsig.sign). Ex: xmldsig.setReferenceData('#L001', ANodes); // xmldsig.setReferenceData( "", ANodes ); // Id="NFe...." ou sem Id fica "" como na NFse. // xmldsig.setReferenceData( "#NFe1232131...", ANodes ); xmldsig.setReferenceData( ReferenceById(ANodes), ANodes ); // Assinar o conteudo xml da tag informada na URI oSigned := xmldsig.sign(oKey, PURGE or CERTIFICATES) // exporta X509Certificate junto com a assinatura. if oSigned = nil then // Não gerou assinatura begin result := WebResponseNew( EC_XML_NOSIGNER, 'A assinatura do conteúdo não foi realizada.' ); Exit; end; if ReferenceById(ANodes) <> '' then // TEM atributo "Id" (é uma NFe), adicionar no documento somente após assinar. ANodes.parentNode.appendChild( xmldsig.signature );
×
×
  • 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...