TadaSoftware / PyNFe

Projeto de biblioteca para fazer interface com o webservice de Nota Fiscal eletrônica para Python, disponível sob LGPL.
http://groups.google.com/group/pynfe
Other
426 stars 173 forks source link

Estou com problema ao usar a manifestação destinatário. Como posso contornar isso ? #359

Closed yury-miguel closed 2 months ago

yury-miguel commented 2 months ago
from pynfe.processamento.comunicacao import ComunicacaoSefaz
from pynfe.processamento.serializacao import SerializacaoXML
from pynfe.processamento.assinatura import AssinaturaA1
from pynfe.entidades.evento import EventoManifestacaoDest
from pynfe.entidades.fonte_dados import _fonte_dados
import datetime

certificado = r"/certificado"
senha = "senha"
uf = "mg"
homologacao = True

manif_dest = EventoManifestacaoDest(
    cnpj="10433766000113", 
    chave='31240917291576000158550120006195981382624277', 
    data_emissao=datetime.datetime.now(),
    uf='AN',
    operacao=1 
)

try:
    serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao)
    nfe_manif = serializador.serializar_evento(manif_dest)
    print("Evento serializado com sucesso.")
except Exception as e:
    print(f"Erro ao serializar o evento: {e}")

try:
    a1 = AssinaturaA1(certificado, senha)
    xml = a1.assinar(nfe_manif)
    print("XML assinado com sucesso.")
except Exception as e:
    print(f"Erro ao assinar o XML: {e}")

try:
    con = ComunicacaoSefaz(uf, certificado, senha, homologacao)
    envio = con.evento(modelo='nfe', evento=xml)
    print(envio.text)
except Exception as e:
    print(f"Erro ao enviar o evento para a SEFAZ: {e}")

ERROS :

Evento serializado com sucesso. Erro ao assinar o XML: No PEM-encoded certificates found in string cert input data Erro ao enviar o evento para a SEFAZ: name 'xml' is not defined

marcelodelta commented 2 months ago

Também estou com mesmo problema. Conseguiu resolver ?

yury-miguel commented 2 months ago

@marcelodelta sim, o que precisa fazer é atualizar alguns arquivos. Se observar aqui no código deles, alguns arquivos como :

manifesto.py serializacao.py comunicacao.py assinatura.py servico_consultar_nfse_resposta_v03.py servico_consultar_lote_rps_resposta_v03.py

E comparar com os que estão em sua máquina quando instala a lib, verá que há diferenças e precisará de atualizar.

yury-miguel commented 2 months ago

o que precisa fazer é atualizar alguns arquivos. Se observar aqui no código deles, alguns arquivos como :

manifesto.py serializacao.py comunicacao.py assinatura.py servico_consultar_nfse_resposta_v03.py servico_consultar_lote_rps_resposta_v03.py

E comparar com os que estão em sua máquina quando instala a lib, verá que há diferenças e precisará de atualizar.

marcelodelta commented 2 months ago

Atualizar para qual versão ?

yury-miguel commented 2 months ago

@marcelodelta basicamente você vai pegar esses arquivos e vai baixar eles. E então ir no local de instalação da lib dentro da sua máquina e substitui