nfe v2 - tutorial 1  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
kuesley
JavaBaby

Membro desde: 14/03/2005 00:16:00
Mensagens: 89
Localização: Brasilia / DF
Offline

Pessoal,

Como não sou membro com "moral" para colocar tópico na seção de tutoriais, vou deixar por enquanto aqui,
se alguém quiser, podem mover pra lá.
A ideia aqui é ajuda e ser ajudado.
Até este ponto já está 100% funcionando, então vou postar um passo a passo (bem mastigado) pra quem tiver enfrentando problemas.
Espero que alguma alma possa contribuir com este roteiro também.

Escopo deste tutorial:
- instalação dos certificados
- criação do repositório de chaves (keystore)
- consulta do web service NfeStatusServico2

Arquivos/Classes que fazem parte deste tutorial:

Arquivo 1) Arquivo com o certificado digital do ambiente de homologação da Sefaz Virtual:
https://homologacao.nfe.sefaz.rs.gov.br/Certificado_AC_NFE.SEFAZ.RS.p7b

Arquivo 2) PFX2JKSProgram.java - classe que importa as chaves para dentro do repositório de chaves (keystore)

Bom vamos lá:

Instalação do certificado da sefaz:
Abra o IE (Internet Explorer) -> Ferramentas -> Opções de Internet -> Conteúdo -> Certificados
Importar e escolha o arquivo que você baixou do site da SEFAZ (Arquivo 1)
** Por padrão será armazenado na aba "Outras Pessoas" (pelo menos no meu aqui )

Exportação dos certificados:
Agora vamos exportar os certificados, inclusive de toda a cadeia.
Vai na aba Outras Pessoas e exporte os três certificados (escolha X.509 codificado na base 64(*.cer)):
"Autoridade Certificadora do SERPRO Final v2" para um arquivo em c:\certificados\nf1.cer
"Autoridade Certificadora Raiz Brasileira v1" para um arquivo em c:\certificados\nf2.cer
"Autoridade Certificadora SERPRO v2" para um arquivo em c:\certificados\nf3.cer

Criação do nosso keystore:
Saia para o prompt do MS-DOS (para os antigos) ou Prompt de Comando para os novatos:
keytool -genkey -alias nfe -keyalg RSA -keypass 123456 -storepass 123456 -keystore c:/certificados/nfe.jks -dname "cn=NOMEDASUAEMPRESA, ou=Desenvolvimento, o=EMPRESA, l=Cidade, S=DF, c=BR" -validity 365

Agora importar os certificados para dentro do seu keystore:
Ainda no prompt de comando:
keytool -importcert -alias nfe1 -keystore c:/certificados/nfe.jks -file c:/certificados/nf1.cer -storepass 123456
keytool -importcert -alias nfe2 -keystore c:/certificados/nfe.jks -file c:/certificados/nf2.cer -storepass 123456
keytool -importcert -alias nfe3 -keystore c:/certificados/nfe.jks -file c:/certificados/nf3.cer -storepass 123456

Agora os certificados estão instalados.

Agora vamos importar os certificados/chaves que estão dentro do seu arquivo A1 (.PFX) para dentro do seu
keystore:

Para isso basta executar a classe PFX2JKSProgram.java que está anexo neste tutorial.
Antes de executar a classe, abra o arquivo e altere algumas informações, pois dentro desta classe,
no método main, voce terá que informar os dados do seu certificado, como por exemplo:

Considerando que seu arquivo PFX chama-se JUREMA.PFX e está em c:\certificados
altere as variaveis:

certificadoPFX = "c:\certificados\JUREMA.PFX"
passwordPFX = "123456"

Após rodar esta classe, seu keystore estará com todas as informações pra rodar seu primeiro webservice (NfeStatusServico2)

Testando o webservice:

Agora basta rodar a classe NfeStatusServico2Soap e sair para o abraço, o resultado deverá ser:



Note que no final do XML de retorno, tem uma MSG "Servico em Operacao", isso significa que deu certo e que o serviço está em operação

Bom,

Espero logo postar mais novidades.
Agora vou para o NfeRecepcao2
 Nome do arquivo NfeStatusServico2Soap.java [Disk] Download
 Descrição Classe de teste do webservice
 Tamanho 4 Kbytes
 Baixado:  145 vez(es)

 Nome do arquivo PFX2JKSProgram.java [Disk] Download
 Descrição Arquivo que importa as chaves/certificados para o keystore
 Tamanho 2 Kbytes
 Baixado:  135 vez(es)

 Nome do arquivo Certificado_AC_NFE.SEFAZ.RS.p7b [Disk] Download
 Descrição Arquivo com certificados da SEFAZ VIRTUAL (homologação)
 Tamanho 3 Kbytes
 Baixado:  72 vez(es)

This message was edited 2 times. Last update was at 03/03/2011 16:42:57


Curioso...
Polverini
Virtual Machine Man
[Avatar]

Membro desde: 26/05/2009 15:57:49
Mensagens: 707
Offline

mto bom, gostei da ideia

Antes de postar consulte seu amigo GOOGLE é de graça !




Estudante de Sistemas de Informação Unifil
[Email]
dudu_sps
Java Ninja
[Avatar]

Membro desde: 22/09/2009 17:58:18
Mensagens: 279
Offline

o que mudaria se no lugar do certificado A1 , fosse um A3 Token??

É Facil, depois de feito!
A dificuldade está nas Pessoas!
[WWW]
valkkefast
Entusiasta Java

Membro desde: 21/01/2011 09:47:38
Mensagens: 19
Offline

Cara o meu da esse erro aqui:

Message enviada
com.sun.xml.internal.messaging.saaj.soap.ver1_2.Message1_2Impl@201f9
java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Message send failed
08/06/2011 15:53:37 com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection post
SEVERE: SAAJ0009: Message send failed
kuesley
JavaBaby

Membro desde: 14/03/2005 00:16:00
Mensagens: 89
Localização: Brasilia / DF
Offline

valkkefast wrote:Cara o meu da esse erro aqui:

Message enviada
com.sun.xml.internal.messaging.saaj.soap.ver1_2.Message1_2Impl@201f9
java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Message send failed
08/06/2011 15:53:37 com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection post
SEVERE: SAAJ0009: Message send failed


Essas msgs da nfe são muito boas né?!

Eu já tive isso ai com o cabeçalho do meu xml errado!
Me matei pra descobrir isso quase 2 dias.

Curioso...
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team