assinaturas de arquivos xml da NFe  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
tspaulino
Thread.start()
[Avatar]

Membro desde: 27/12/2007 17:58:05
Mensagens: 37
Localização: Goiânia - GO
Offline

Bem pessoal,

Depois de alguns dias rachando o crânio, consegui adaptar um método para assinatura de XML's para envio de NF-e.
Fiz o uso dele no arquivo disponibilizado para teste no site:
E coloquei no link:
para validar a assinatura e foi tudo ok!!

RELEMBRANDO: ele assina o XML, mas com base nos dados que este já tem. Para assiná-lo você já deve estar com a chave de acesso OK e todos os campos validados. ELE REALMENTE SÓ ASSINA O XML.

Enfim, tá ae o código:


Qualquer dúvidam, entrem em contato via MP.

Obrigado a todos os colegas que têm postado as suas soluções aqui. Profissionais inexperientes como eu (3 semanas ) aprendem muito a partir das dicas dos colegas.

Abraço,

Tiago Paulino.

"Uma linguagem que não afeta seu jeito de pensar sobre programação não vale a pena aprender" - Alan Perlis
f-schmitt
JavaChild
[Avatar]

Membro desde: 29/07/2006 08:25:22
Mensagens: 116
Localização: Gravatal
Offline

alexandretalbert wrote: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!!



voce tera q implementar o webservice,
http://www.guj.com.br/posts/list/30/72325.java#553800
aqui tem o codigo com expemplo pra gerar as classes que acessam

abraço

Java, Clarion, HB++, PostgreSQL
[MSN]
vcsmetallica
JavaEvangelist
[Avatar]

Membro desde: 18/06/2008 14:22:41
Mensagens: 436
Localização: Belo Horizonte
Offline

Galera,

Estou seguindo o código do julianosott postado na primeira página desse tópico. Quando assino a minha nota fiscal ela esta vindo com a seguinte tag:


Alguem sabe como que eu tiro essa propriedade standalone dessa tag?

Acho que é isso que esta quebrando as minhas pernas na hora do envio da nota fiscal.
Estou usando java 1.5_10.

vcsmetallica
JavaEvangelist
[Avatar]

Membro desde: 18/06/2008 14:22:41
Mensagens: 436
Localização: Belo Horizonte
Offline

Galera,

Achei aqui, se alguem passar por isso é so colocar assim:
f-schmitt
JavaChild
[Avatar]

Membro desde: 29/07/2006 08:25:22
Mensagens: 116
Localização: Gravatal
Offline

boa tarde pessoal
alguem sabe algo sobre isso???

http://nfe.sef.sc.gov.br/index.php?option=com_content&task=view&id=75&Itemid=54

abraço

Java, Clarion, HB++, PostgreSQL
[MSN]
philler
JavaTeenager
[Avatar]

Membro desde: 26/11/2007 18:34:06
Mensagens: 184
Offline

julianosott wrote: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:
...

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.


Tenho tido casos estranhos de Assinatura invalida de uma nota dentro de lote com varias outras.
Explico os detalhes:

Uma nota x, gerada seu xml e assinada passa pelo validador tanto do site acima como no programa fornecido pela SEFAZ, o "AssinadorRS v2.1.0".
Dentro do mesmo programa, gerando um lote com esta nota (ja validada pelo dito), o lote gerado resulta em "Assinatura INVALIDA".

Prestem atencao ao detalhe que, sem sair do programa AssinadorRS v2.1.0, a nota avulsa valida e a mesma dentro de um lote nao valida.

O suporte da NFe me relatou na sua ultima resposta:

Pode estar acontecendo 2 erros:

- o primeiro é o uso de algum caractere especial não permitido (< > & " ') - ver pg. 69 manual de integração - contribuinte.

A outra possibilidade é de a nota estar sendo alterada entre a assinatura e a transmissão da NF-e


Duvida: se o xml da nota avulsa tivesse algum caracter nao permitido, teria validado no schema e na assinatura?
A segunda hipotese cai por agua, pelos testes que fiz.

Se alguem ja passou por isso ou se tiver alguma dica, por favor, retornem o quanto antes possivel.

Grato

Alencar
P.S.: Em anexo os result do AssinadorRS v2.1.0. Por motivos de sigilo, nao posso anexar os xml.
 Nome do arquivo valida_nota.txt [Disk] Download
 Descrição
 Tamanho 2 Kbytes
 Baixado:  295 vez(es)

 Nome do arquivo valida_lote.txt [Disk] Download
 Descrição
 Tamanho 3 Kbytes
 Baixado:  216 vez(es)


---------------------------------------------
Philler Informatica - Alencar
"Feliz aquele que transfere o que sabe
e aprende o que ensina" Cora Coralina
philler
JavaTeenager
[Avatar]

Membro desde: 26/11/2007 18:34:06
Mensagens: 184
Offline

philler wrote:
Tenho tido casos estranhos de Assinatura invalida de uma nota dentro de lote com varias outras.
Explico os detalhes:

Uma nota x, gerada seu xml e assinada passa pelo validador tanto do site acima como no programa fornecido pela SEFAZ, o "AssinadorRS v2.1.0".
Dentro do mesmo programa, gerando um lote com esta nota (ja validada pelo dito), o lote gerado resulta em "Assinatura INVALIDA".

Prestem atencao ao detalhe que, sem sair do programa AssinadorRS v2.1.0, a nota avulsa valida e a mesma dentro de um lote nao valida.

O suporte da NFe me relatou na sua ultima resposta:

Pode estar acontecendo 2 erros:

- o primeiro é o uso de algum caractere especial não permitido (< > & " ') - ver pg. 69 manual de integração - contribuinte.

A outra possibilidade é de a nota estar sendo alterada entre a assinatura e a transmissão da NF-e


Duvida: se o xml da nota avulsa tivesse algum caracter nao permitido, teria validado no schema e na assinatura?
A segunda hipotese cai por agua, pelos testes que fiz.

Se alguem ja passou por isso ou se tiver alguma dica, por favor, retornem o quanto antes possivel.

Grato

Alencar
P.S.: Em anexo os result do AssinadorRS v2.1.0. Por motivos de sigilo, nao posso anexar os xml.


Respondendo ao meu proprio email, descobri apos 2 dias intensos de testes.
Dentro do campo observacao da nota, constava algo do tipo "Entrega: Rua Etc, 123456", onde entre o : e a primeira letra
tinha DOIS ESPACOS.
Tirando um deles tudo volta a funcionar.

Pergunto aos amigos: que b...ta de regra e' esta que o usuario nao pode preencher um campo texto de 60 caracteres do jeito
que ele bem entende ou precisa?
Sao BURROCRACIAS assim que trancam um processo simples como a NFe.

Alencar

---------------------------------------------
Philler Informatica - Alencar
"Feliz aquele que transfere o que sabe
e aprende o que ensina" Cora Coralina
f-schmitt
JavaChild
[Avatar]

Membro desde: 29/07/2006 08:25:22
Mensagens: 116
Localização: Gravatal
Offline

é realmente, a nf-e tem umas regras bem chatinhas.... mas por outro lado é bom pra manter a integridade dos dados....

estou usando xstream pra gerar o xml, ele ja substitui os < > & e tals, pra nao dar problema no xml, isso é uma coisa útil, acredito que o jaxb tbm faça isso...

o que andou me encomodando, é o campo obs que no nosso sistema aceita \r\n (enter do windows) e no xml isso estava dando problema, tive de tratar usando o replaceALL do String....

abraço

Java, Clarion, HB++, PostgreSQL
[MSN]
f-schmitt
JavaChild
[Avatar]

Membro desde: 29/07/2006 08:25:22
Mensagens: 116
Localização: Gravatal
Offline

boa tarde pessoal estou usado o iKey2032 que (pelo que entendi) usa a dll dkck201.dll

to com uns problemas....
ta dando (403)Forbiden quando vou acessar os webservice...

estou setando as propriedades assim:



meu arquivo token.cfg ta assim


alguem sabe o que pode estar errado???
alguem ja usou esse token?

abraço!

Java, Clarion, HB++, PostgreSQL
[MSN]
philler
JavaTeenager
[Avatar]

Membro desde: 26/11/2007 18:34:06
Mensagens: 184
Offline

f-schmitt wrote:boa tarde pessoal estou usado o iKey2032 que (pelo que entendi) usa a dll dkck201.dll

to com uns problemas....
ta dando (403)Forbiden quando vou acessar os webservice...

estou setando as propriedades assim:



meu arquivo token.cfg ta assim


alguem sabe o que pode estar errado???
alguem ja usou esse token?

abraço!


Tente alterar para isso:


Alencar

---------------------------------------------
Philler Informatica - Alencar
"Feliz aquele que transfere o que sabe
e aprende o que ensina" Cora Coralina
f-schmitt
JavaChild
[Avatar]

Membro desde: 29/07/2006 08:25:22
Mensagens: 116
Localização: Gravatal
Offline

OPA, vou testar aqui...

o trust nao vou trocar pq ja uso assim, ok?



o que voce coloca no ALIAS?

VALEU!!!!

Java, Clarion, HB++, PostgreSQL
[MSN]
f-schmitt
JavaChild
[Avatar]

Membro desde: 29/07/2006 08:25:22
Mensagens: 116
Localização: Gravatal
Offline

troquei la


fiz assim:



deu erro denovo
no debug
deu isso


  • keyStore is : NONE
    keyStore type is : PKCS11
    keyStore provider is : SunPKCS11-Safenetikey2032
    init keystore
    default context init failed: java.security.NoSuchProviderException: no such prov
    ider: SunPKCS11-Safenetikey2032


  • o card funcionou tao bem,,, agora o token ta me deixando preocupado....

    Java, Clarion, HB++, PostgreSQL
    [MSN]
    philler
    JavaTeenager
    [Avatar]

    Membro desde: 26/11/2007 18:34:06
    Mensagens: 184
    Offline

    f-schmitt wrote:
    deu erro denovo
    no debug
    deu isso


  • keyStore is : NONE
    keyStore type is : PKCS11
    keyStore provider is : SunPKCS11-Safenetikey2032
    init keystore
    default context init failed: java.security.NoSuchProviderException: no such prov
    ider: SunPKCS11-Safenetikey2032



  • Este erro é tipico quando o nome dentro do .cfg esta errado.
    Tente algumas alteracoes neste nome, tipo name = Card, e no provider toque por SunPKCS11Card.
    Sei que passei por isso e era no nome o problema.
    O que acontece no caso java.security.NoSuchProviderException é porque nao encontrou a dll.

    Alencar

    ---------------------------------------------
    Philler Informatica - Alencar
    "Feliz aquele que transfere o que sabe
    e aprende o que ensina" Cora Coralina
    evandromib
    JavaBaby
    [Avatar]

    Membro desde: 28/01/2009 14:47:30
    Mensagens: 99
    Offline

    pessoal alguem poderia me ajudar estou usando o codigo deixado acima mais estou com um pequeno problema em resolver este erro aqui

    java.lang.NullPointerException
    at TratadorCertificado.getValidade(TratadorCertificado.java:82)
    at TratadorCertificado.getCertificado(TratadorCertificado.java:100)
    at TratadorCertificado.main(TratadorCertificado.java:159)

    ja aconteceu com alguem ?

    "N.A.S"
    [Email]
    philler
    JavaTeenager
    [Avatar]

    Membro desde: 26/11/2007 18:34:06
    Mensagens: 184
    Offline

    evandromib wrote:pessoal alguem poderia me ajudar estou usando o codigo deixado acima mais estou com um pequeno problema em resolver este erro aqui

    java.lang.NullPointerException
    at TratadorCertificado.getValidade(TratadorCertificado.java:82)
    at TratadorCertificado.getCertificado(TratadorCertificado.java:100)
    at TratadorCertificado.main(TratadorCertificado.java:159)

    ja aconteceu com alguem ?


    Poderia especificar qual dos codigos acima voce esta usando?
    Ja debugou para ver onde da o erro exatamente?

    Alencar

    ---------------------------------------------
    Philler Informatica - Alencar
    "Feliz aquele que transfere o que sabe
    e aprende o que ensina" Cora Coralina
     
    Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team