aricaldeira / PySPED

Sistema Público de Escrituração Digital em Python
GNU Lesser General Public License v2.1
108 stars 97 forks source link

Erro no p.conhecer_operacao_evento #9

Open DanielFerreiraJorge opened 11 years ago

DanielFerreiraJorge commented 11 years ago

Olá Ari, tudo bom?

Será que você pode me dar uma mão? Quando eu tento executar o p.conhecer_operacao_evento, eu recebo o seguinte erro do xmlsec:

func=xmlSecTransformXsltInitialize:file=xslt.c:line=106:obj=unknown:subj=g_xslt_default_security_prefs == NULL:error=100:assertion:

func=xmlSecDSigCtxProcessSignatureNode:file=xmldsig.c:line=463:obj=unknown:subj=dsigCtx->signValueNode == NULL:error=100:assertion:

func=xmlSecDSigCtxSign:file=xmldsig.c:line=303:obj=unknown:subj=xmlSecDSigCtxSigantureProcessNode:error=1:xmlsec library function failed:

Erro ao realizar a assinatura do arquivo; status: "0"

O que pode ser isso? Ja conferi todos os dados da requisição, a chave da NF-e está correta, o CNPJ bate com a NF-e e o certificado digital está válido (não está expirado) e a senha do certificado está correta!

Obrigado!

aricaldeira commented 11 years ago

Era terça-feira, 21 de maio de 2013, 09:50, e Daniel Ferreira Jorge me escreveu:

Olá Ari, tudo bom?

Será que você pode me dar uma mão? Quando eu tento executar o p.conhecer_operacao_evento, eu recebo o seguinte erro do xmlsec:

func=xmlSecTransformXsltInitialize:file=xslt.c:line=106:obj=unknown:subj=g_x slt_default_security_prefs == NULL:error=100:assertion:

func=xmlSecDSigCtxProcessSignatureNode:file=xmldsig.c:line=463:obj=unknown:s ubj=dsigCtx->signValueNode == NULL:error=100:assertion:

func=xmlSecDSigCtxSign:file=xmldsig.c:line=303:obj=unknown:subj=xmlSecDSigCt xSigantureProcessNode:error=1:xmlsec library function failed:

Erro ao realizar a assinatura do arquivo; status: "0"

O que pode ser isso? Ja conferi todos os dados da requisição, a chave da NF-e está correta, o CNPJ bate com a NF-e e o certificado digital está válido (não está expirado) e a senha do certificado está correta!

Obrigado!

Daniel,

Tudo bem?

O erro está na assinatura do xml que está sendo enviado à SEFAZ.

Na função conhecer_operacao_evento(chave_nfe='', cnpj='')

a chave_nfe é a chave da NF-e cuja operação você está dando conhecimento à SEFAZ, e o cnpj é o cnpj da sua empresa, não da empresa emissora da NF-e.

Você está tendo problemas de assinatura em outros eventos, ou na emissão da NF-e?

Aristides Caldeira Taŭga Tecnologia (15) 3411-0602

DanielFerreiraJorge commented 11 years ago

Olá Ari, muito obricado pela resposta.

Exatamente, estou utilizando o CNPJ da minha empresa, que é o mesmo do certificado digital (correspondente ao campo dest->CNPJ no xml) e a chave de 44 digitos da NF-e que recebi de nosso fornecedor. É a primeira vez que estou tentando utilizar alguma coisa que necessite de assinatura. O que venho utilizando é o NFeConsultaDest todo dia e funciona perfeitamente.

Você tem alguma ideia do que pode estar acontecendo? Estou utilizando uma versao um pouco mais antiga do PySPED, de uns 8 meses atrás. Tentei também baixar a master, mas daí nada funciona e tenho um erro diferente:

File "/home/sistema/importador.py", line 65, in module from pysped.nfe import ProcessadorNFe File "/home/sistema/pysped/init.py", line 42, in module from .nfe import * File "/home/sistema/pysped/nfe/init.py", line 43, in module from .processador_nfe import ProcessadorNFe, DANFE, Certificado File "/home/sistema/pysped/nfe/processador_nfe.py", line 64, in module from leiaute import SOAPEnvio_110, SOAPRetorno_110 File "/home/sistema/pysped/nfe/leiaute/init.py", line 198, in module from conscad_200 import ConsCad as ConsCad_200 File "/home/sistema/pysped/nfe/leiaute/conscad_200.py", line 61, in module class InfCadRecebido(conscad_101.InfCadRecebido):

Valeu!

aricaldeira commented 11 years ago

Era terça-feira, 21 de maio de 2013, 11:08, e Daniel Ferreira Jorge me escreveu:

Olá Ari, muito obricado pela resposta.

Exatamente, estou utilizando o CNPJ da minha empresa, que é o mesmo do certificado digital (correspondente ao campo no xml) e a chave de 44 digitos da NF-e que recebi de nosso fornecedor. É a primeira vez que estou tentando utilizar alguma coisa que necessite de assinatura. O que venho utilizando é o NFeConsultaDest todo dia e funciona perfeitamente.

Ok, bom, todos os eventos são assinados antes de serem enviados, e a assinatura é feita pela biblioteca xmlsec, o erro que você viu antes vem dela, é uma biblioteca em si, os bindings para ela são o pyxmlsec.

Não conheço C, senão poderia saber o que exatamente está causando esse erro.

Qual versão de Python você está usando? Versão do xmlsec, pyxmlsec? Houve alguma atualização recentemente?

Lembro que algumas bibliotecas em C tinham que ser recompiladas quando a glibc atualizava, ou algo assim.

Você tem alguma ideia do que pode estar acontecendo? Estou utilizando uma versao um pouco mais antiga do PySPED, de uns 8 meses atrás. Tentei também baixar a master, mas daí nada funciona e tenho um erro diferente:

File "/home/sistema/importador.py", line 65, in from pysped2.nfe import ProcessadorNFe File "/home/sistema/pysped/init.py", line 42, in from .nfe import * File "/home/sistema/pysped/nfe/init.py", line 43, in from .processador_nfe import ProcessadorNFe, DANFE, Certificado File "/home/sistema/pysped/nfe/processador_nfe.py", line 64, in from leiaute import SOAPEnvio_110, SOAPRetorno_110 File "/home/sistema/pysped/nfe/leiaute/init.py", line 198, in from conscad_200 import ConsCad as ConsCad_200 File "/home/sistema/pysped/nfe/leiaute/conscad_200.py", line 61, in

class InfCadRecebido(conscad_101.InfCadRecebido):

Tenta dar um clone no repositório como está hoje, e veja que no processador_nfe.py há import da pysped.xml_sped, então, não dá pra ter 2 versões da pysped ao mesmo tempo na máquina.

Faz um becape da versão que você estava usando, e usa a versão atual do github, e vamos ficar de olho no xmlsec e ver o que acontece.

Aristides Caldeira Taŭga Tecnologia (15) 3411-0602

alanjds commented 11 years ago

Você pode usar o virtualenv (http://www.virtualenv.org/en/latest/) para instalar múltiplas versões do Python ou de pacotes em teste, sem conflitar. No começo é meio confuso usa-lo, mas é a melhor prática para desenvolvimento, pelo menos por enquanto.


Alan Justino da Silva * Cel: +55 11 99822-5769


Em 21 de maio de 2013 15:23, Aristides Caldeira notifications@github.comescreveu:

Era terça-feira, 21 de maio de 2013, 11:08, e Daniel Ferreira Jorge me escreveu:

Olá Ari, muito obricado pela resposta.

Exatamente, estou utilizando o CNPJ da minha empresa, que é o mesmo do certificado digital (correspondente ao campo no xml) e a chave de 44 digitos da NF-e que recebi de nosso fornecedor. É a primeira vez que estou tentando utilizar alguma coisa que necessite de assinatura. O que venho utilizando é o NFeConsultaDest todo dia e funciona perfeitamente.

Ok, bom, todos os eventos são assinados antes de serem enviados, e a assinatura é feita pela biblioteca xmlsec, o erro que você viu antes vem dela, é uma biblioteca em si, os bindings para ela são o pyxmlsec.

Não conheço C, senão poderia saber o que exatamente está causando esse erro.

Qual versão de Python você está usando? Versão do xmlsec, pyxmlsec? Houve alguma atualização recentemente?

Lembro que algumas bibliotecas em C tinham que ser recompiladas quando a glibc atualizava, ou algo assim.

Você tem alguma ideia do que pode estar acontecendo? Estou utilizando uma versao um pouco mais antiga do PySPED, de uns 8 meses atrás. Tentei também baixar a master, mas daí nada funciona e tenho um erro diferente:

File "/home/sistema/importador.py", line 65, in from pysped2.nfe import ProcessadorNFe File "/home/sistema/pysped/init.py", line 42, in from .nfe import * File "/home/sistema/pysped/nfe/init.py", line 43, in from .processador_nfe import ProcessadorNFe, DANFE, Certificado File "/home/sistema/pysped/nfe/processador_nfe.py", line 64, in from leiaute import SOAPEnvio_110, SOAPRetorno_110 File "/home/sistema/pysped/nfe/leiaute/init.py", line 198, in

from conscad_200 import ConsCad as ConsCad_200 File "/home/sistema/pysped/nfe/leiaute/conscad_200.py", line 61, in class InfCadRecebido(conscad_101.InfCadRecebido):

Tenta dar um clone no repositório como está hoje, e veja que no processador_nfe.py há import da pysped.xml_sped, então, não dá pra ter 2 versões da pysped ao mesmo tempo na máquina.

Faz um becape da versão que você estava usando, e usa a versão atual do github, e vamos ficar de olho no xmlsec e ver o que acontece.

Aristides Caldeira Taŭga Tecnologia (15) 3411-0602

Reply to this email directly or view it on GitHubhttps://github.com/aricaldeira/PySPED/issues/9#issuecomment-18227117 .

aricaldeira commented 11 years ago

Era terça-feira, 21 de maio de 2013, 11:45, e Alan Justino da Silva me escreveu:

Você pode usar o virtualenv (http://www.virtualenv.org/en/latest/) para instalar múltiplas versões do Python ou de pacotes em teste, sem conflitar. No começo é meio confuso usa-lo, mas é a melhor prática para desenvolvimento, pelo menos por enquanto.

rsrs, verdade, eu mesmo não peguei o jeito, ainda mais com bibliotecas em C misturadas.

Aristides Caldeira Taŭga Tecnologia (15) 3411-0602

DanielFerreiraJorge commented 11 years ago

Obrigado pelas respostas!

Clonei o repo atual e criei um virtualenv mas continua dando o mesmo erro original de assinatura do xml, mesmo com a versão atual do PySPED.

Alguma sugestão do que pode ser isso?

obrigado!

aricaldeira commented 11 years ago

Era terça-feira, 21 de maio de 2013, 12:23, e Daniel Ferreira Jorge me escreveu:

Obrigado pelas respostas!

Clonei o repo atual e criei um virtualenv mas continua dando o mesmo erro original de assinatura do xml, mesmo com a versão atual do PySPED.

Alguma sugestão do que pode ser isso?

Se é o mesmo erro de antes, continua sendo na lib xmlsec.

Qual SO você usa? Versão? Instalou a xmlsec manualmente ou via algum repositório?

Experimenta reinstalar a libxmlsec ou recompilar, se for o caso, e reinstalar a pyxmlsec por via das dúvidas.

Aristides Caldeira Taŭga Tecnologia (15) 3411-0602

DanielFerreiraJorge commented 11 years ago

Entendi... vou tentar isso. Muito obrigado Ari e Alan pela ajuda!

daniel-hartmann commented 11 years ago

Funcionou?

Pra instalar o pyxmlsec:

wget http://labs.libre-entreprise.org/download.php/430/pyxmlsec-0.3.0.tar.gz tar xvzf pyxmlsec-0.3.0.tar.gz cd pyxmlsec-0.3.0

Diff: --- pyxmlsec-0.3.0/setup.py 2006-01-01 15:43:37.000000000 -0200 +++ pyxmlsec-0.3.0/setup.py 2009-11-10 17:57:29.390253522 -0200 @@ -182,7 +182,8 @@ define_macros = define_macros, include_dirs = include_dirs, library_dirs = library_dirs,

virtual_env/bin/python setup.py install

DanielFerreiraJorge commented 11 years ago

Opa, funcionou sim!

Mas eu instalei o pyxmlsec do repo do aricaldeira: https://github.com/aricaldeira/pyxmlsec que eu acho que já tem esse patch!

Obrigado a todos pelo tempo que disponibilizaram para me ajudar! Abraços!