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