You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.1 KiB

from pynfe.processamento.comunicacao import ComunicacaoSefaz
from pynfe.utils.descompactar import DescompactaGzip
from pynfe.utils.flags import NAMESPACE_NFE
from lxml import etree
CNPJ = 'CPNJ_DA_EMPRESA'
CHAVE = 'CHAVE_DA_NOTA_DA_CONSULTA'
certificado = "/certs/cert.pfx"
senha = '1234'
uf = 'pi'
homologacao = False
con = ComunicacaoSefaz(uf, certificado, senha, homologacao)
xml = con.consulta_distribuicao(cnpj=CNPJ,chave=CHAVE)
#print('\n\n Retorno:')
#print(xml.text)
print('Descompactado \n\n')
# exemplo de leitura da resposta
ns = {'ns': NAMESPACE_NFE}
#esse retorno precisa ser melhorado
resposta = etree.fromstring(xml.content)
#desconpactando a mensagem
zip_resposta = resposta.xpath('//ns:retDistDFeInt/ns:loteDistDFeInt/ns:docZip', namespaces=ns)[0].text
des_resposta = DescompactaGzip.descompacta(zip_resposta)
#recuperando valores do resultado da descompactacao
chave = des_resposta.xpath('//ns:resNFe/ns:chNFe',namespaces=ns)[0].text
valor = des_resposta.xpath('//ns:resNFe/ns:vNF',namespaces=ns)[0].text
print('chave:{}\nvalor:{}'.format(chave,valor))