assinaturas de arquivos xml da NFe  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
julianosott
HelloWorld

Membro desde: 07/02/2008 11:20:43
Mensagens: 18
Offline

Boa tarde a todos
Aqui na empresa estamos tendo problemas para assinar o xml para o envio dos dados da NFe. O web service da receita sempre retorna o erro:
297 Rejeição: Assinatura difere do calculado
Acho que o erro está no campo SignatureValue da assinatura. Alguém conseguiu fazer a assinatura funcionar?

Abaixo está o código que usei: (encontrei o código aqui no forum e adaptei)

julianosott
HelloWorld

Membro desde: 07/02/2008 11:20:43
Mensagens: 18
Offline

conseguimos fazer funcionar aqui. Quem tiver duvidas é só pedir. Estamos pensando em fazer um tutorial pra nfe :-p (se ninguem for contra :-p)
Yky Mattshawn
Virtual Machine Man
[Avatar]
Membro desde: 18/12/2006 03:34:14
Mensagens: 651
Localização: São Sebastião do Caí / RS
Offline

julianosott wrote:conseguimos fazer funcionar aqui. Quem tiver duvidas é só pedir. Estamos pensando em fazer um tutorial pra nfe :-p (se ninguem for contra :-p)


Bah, um tutorial seria muito bacana! Aqui na empresa temos planos para implementar a NFe nos próximos e ter um artigo sobre isso feito por alguém que já teve problemas e conseguiu resolver seria de muita valia! Pois você já tem noção dos problemas encontrados nesse processo.


Yky Mattshawn [ Compusoft - Desenvolvimento de Sistemas Empresariais ]
"Tudo que é ortodoxo ou heterodoxo demais gera heresia."
Bixo 2010 - Ciência da Computação - Feevale/RS e Unisinos/RS
[Email] [MSN] [ICQ]
victorwss
Forum Spammer
[Avatar]

Membro desde: 18/12/2007 14:46:00
Mensagens: 2368
Localização: São Paulo - SP
Online

Um tutorial de NFe seria legal. Eu apoio esta idéia.

Victor Williams Stafusa da Silva

Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Mestrando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.

Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.

Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.


É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).
[MSN]
crdornelles
Smalltalk
[Avatar]

Membro desde: 01/02/2008 16:55:47
Mensagens: 1
Offline

Opa,

Conta ai o segredo de tostines...
Como vc conseguiu fazer funcionar?
[MSN]
julianosott
HelloWorld

Membro desde: 07/02/2008 11:20:43
Mensagens: 18
Offline

Consegui terminar os métodos que eu queria. Fiz dois métodos que recebem uma string com o xml e retornam uma String como o xml assinado. O primeiro pega um enviNFe e assina todas as NFe dentro dele. O outro assina o elemento raíz do xml, servindo para o cancelamento e para a inutilização da nota.

aqui vai o método para assinar o enviNFe:


este aqui assina o elemento raiz do xml:


uma coisa que temque cuidar muito é o cabeçalho do xml que temque tá desse jeito


ou seja, não pode ter o xmlns:ns2="http://www.w3.org/2000/09/xmldsig#"

o mesmo vale para o enviNFe:


nesse caso tanto o envi como cada nfe devem ter xmlns="http://www.portalfiscal.inf.br/nfe" e o envi não pode ter o xmlns:ns2="http://www.w3.org/2000/09/xmldsig#". Se por acaso o xml estiver do jeito errado, pode usar esses códigos no assinador, ou criar outro método:

esse aqui remove o xmlns:ns2 do elemento raíz:


esse aqui adiciona o xmlns necessário a tag NFe:


Quem quiser verificar o xml pode usar esse site: http://www.sefaz.rs.gov.br/AAE_ROOT/NFE/SAT-WEB-NFE-VAL_1.asp Acho que ele só valida os certificados do Rio Grande do Sul, mas o bom é que ele verifica a estrutura do xml tb.

É isso por enquanto, qualquer coisa é só perguntar.
julianosott
HelloWorld

Membro desde: 07/02/2008 11:20:43
Mensagens: 18
Offline

esqueci de colocar, esse são os imports da classe:



Estou usando Java 5. então para usar os crypto eu tive que baixar o jwsdp-2.0 (java web server) e importar alguns jars dele. acho que foram esses:

/xmldsig/lib/xmldsig.jar" />
/jaxp/lib/jaxp-api.jar" />
/jaxp/lib/endorsed/dom.jar" />
/jaxp/lib/endorsed/xercesImpl.jar" />
/jwsdp-shared/lib/xmlsec.jar" />
/jaxp/lib/endorsed/xalan.jar" />
ale_desenv
Smalltalk

Membro desde: 14/03/2008 21:11:06
Mensagens: 1
Offline

String configName = "/token.cfg";
Provider p = new sun.security.pkcs11.SunPKCS11(configName);
Security.addProvider(p);
char[] pin = { 's', 'a', 'f', 'e', 'w', 'e', 'b' };

Com relação ao codigo acima, gostaria de saber sobre esse arq. token.cfg que informação contem nesse arquivo, como faço para gerar esse arquivo ?
e com relação ao char[] pin que informação eu devo setar ?
elissandromendes
HelloWorld

Membro desde: 06/03/2007 19:30:42
Mensagens: 13
Localização: Fortaleza
Offline

ale,

Nesse arquivo temos informações sobre o driver do dispositivo pkcs11 instalado.

Segue exemplo:

name = Safenetikey2032

library = c:\windows\system32\dkck201.dll

beleza?


Elissandro A. Mendes
Desenvolvedor INTEQ Systems
Fortaleza-Ceará
[WWW] [MSN]
pbnf
JavaChild

Membro desde: 18/06/2003 12:06:55
Mensagens: 122
Localização: De volta a Cuiabá-MT, 40º na sombra !!!
Online

...

This message was edited 1 time. Last update was at 28/03/2008 02:21:58

alexandretalbert
HelloWorld

Membro desde: 31/03/2008 09:59:55
Mensagens: 14
Offline

Olá,

Estou iniciando com SOAP tbm para um projeto de NFE. Alguém poderiam postar o código que transmite o arquivo após a assinatura?

Muito Obrigado!!
alexandretalbert
HelloWorld

Membro desde: 31/03/2008 09:59:55
Mensagens: 14
Offline

Bom dia pessoal,

Como fica o código acima quando tenho como certificado, um arquivo pfx (serasa)? Como uso o keytool para importar para um keystore e como ficaria o código que busca o certificado?

Orbigado!!!
reinaldoaraujo
HelloWorld

Membro desde: 11/04/2008 08:13:22
Mensagens: 12
Offline

Boa tarde pessoal,

Estou tentando assinar um XML da NFe usando o código acima, já consegui efetuar a conexão com o web-server usando o código abaixo:

System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", verConf.getPathKeyPFX());
System.setProperty("javax.net.ssl.keyStorePassword", "xxxx");

System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore",verConf.getPathKeyJKS());


Alguem já conseguiu assinar um XML NFe usando somente o arquivo .pfx ??
developermaster
HelloWorld

Membro desde: 07/10/2007 23:52:31
Mensagens: 10
Offline

Eu consegui... veja a parte do certificado:



So que o retorno da sefaz de MT e o seguinte:
developermaster
HelloWorld

Membro desde: 07/10/2007 23:52:31
Mensagens: 10
Offline

Será que o erro de rejeição tem a ver com encoding, ou algo do sentido?
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team