GRMagic / Sefaz

Biblioteca para download de notas fiscais e conhecimentos de transportes
MIT License
12 stars 1 forks source link

Como obter a Chave de acesso documentos baixados #24

Open crmmvio opened 1 week ago

crmmvio commented 1 week ago

Seria muito util se tivesse na lista de propriedade do retorno da consulta o numero de Chave de acesso do Documento ao invés de ter somente a NSU, isso seria possível?

GRMagic commented 1 week ago

A chave de acesso vai depender do schema do documento. Teria que verificar como pegar a chave para cada possível schema, acho que é meio "padrão" que tenha a propriedade ID com a chave. Mas precisaria conferir isso.

GRMagic commented 1 week ago

Se você puder conferir isso e me passar as informações de como pegar a chave para cada tipo de documento que a API pode retornar, eu posso sim incluir a informação da chave no Documento.

crmmvio commented 1 week ago

Estou usando assim, mas não sei te falar para todos por que no meu caso eu só estou considerando os documentos CTe e NFe, eu leio atravez do XmlDocument retornado na classe Documento, mas assim que eu tiver mais tempo tento fazer algo melhor e possa ser usado para todos os documentos.

namespace = http://www.portalfiscal.inf.br

para CTe ` var sefazNamespace = _configurationCustom.GetSectionValue("AppConfig:SefazNamespace"); XmlNamespaceManager ns = new XmlNamespaceManager(xmlDoc.NameTable); ns.AddNamespace("ns", $"{sefazNamespace}/cte");

XmlNode globalNode = xmlDoc.FirstChild; XmlNode nodeChaveAcesso = globalNode.SelectSingleNode("//ns:chCTe", ns); `

para NFe ` var sefazNamespace = _configurationCustom.GetSectionValue("AppConfig:SefazNamespace"); XmlNamespaceManager ns = new XmlNamespaceManager(xmlDoc.NameTable); ns.AddNamespace("ns", $"{sefazNamespace}/nfe");

XmlNode globalNode = xmlDoc.FirstChild; XmlNode nodeChaveAcesso = globalNode.SelectSingleNode("//ns:chNFe", ns); string result = nodeChaveAcesso.InnerText; `