Open DanielFerreiraJorge opened 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
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!
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
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 .
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
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!
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
Entendi... vou tentar isso. Muito obrigado Ari e Alan pela ajuda!
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
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!
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!