Login Registre-se
Assinatura XML  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
OperadorCarlos

JavaC Membro

Membro desde: 10/09/2015 17:50:33
Mensagens: 11
Offline

Olá Pessoal,

Cheguei agora por aqui e já tentei diversas maneiras de assinar um .xml porém não consigo fazê-lo da forma correta.

Já descobri que se eu colocar uma tag qualquer acima da <NFe> consigo colocar a assinatura entre o fechamento de </infNFe> e de </NFe>. Também já notei que posso colocar a <Signature> antes de </infNFe>. O que eu poderia estar errando?

Quando rodo o código integral de "NF-e: Assinatura dos XMLs de Envio de Lote, Cancelamento e Inutilização - Certificado A3" ele roda, mas simplesmente não assina porque não entra em:






Enfim.... já viram isto acontecer? Poderiam me indicar uma solução?

Grato

Carlos
OperadorCarlos

JavaC Membro

Membro desde: 10/09/2015 17:50:33
Mensagens: 11
Offline

...apenas complementando...

Agora forcei o acesso à...



Retirando o comando loop...



Agora o erro foi:

java.lang.NullPointerException: parent cannot be null

ou seja, já sei que temos: document.getDocumentElement().getElementsByTagName(NFE) == null

...mas porque se eu aponto pra uma segunda tag funciona e se eu aponto pra primeira Tag retorna "null"?

Agradecerei muito a ajuda,

Carlos
rfumiot

JavaC Membro
[Avatar]

Membro desde: 23/06/2015 17:19:55
Mensagens: 217
Offline

bom dia OperadorCarlos,



esse NFE dentro do getElementsByTagName é uma constante certo? qual o valor dessa constante?
OperadorCarlos

JavaC Membro

Membro desde: 10/09/2015 17:50:33
Mensagens: 11
Offline

Olá rfumiot,

Obrigado por responder. A constante é "NFe"



...mas na verdade independente da constante, o que ocorre é que se ela for a primeira Tag não funciona se eu apontar pra segunda, <infNFe> por exemplo, ou criar uma primeira para usar está funciona adequadamente.

A questão é que no primeiro caso ele vai colocar a <Signature> antes de </infNFe> e no segundo caso "fura" o Schema XML da NFe.

Grato pelo interesse,

Carlos
rfumiot

JavaC Membro
[Avatar]

Membro desde: 23/06/2015 17:19:55
Mensagens: 217
Offline

eu tive esse problema também, eu estava tentando lembrar como resolvia... rsrs

no meu eu resolvi assim...
OperadorCarlos

JavaC Membro

Membro desde: 10/09/2015 17:50:33
Mensagens: 11
Offline

Então rfumiot.....

Estes replaces iriam chegar nesta linha do xml:

<NFe xmlns="http://www.portalfiscal.inf.br/nfe">

...mas ela já está em ordem, seria ali mais um direcionamento de um erro dentro do xml, mas a questão não está no erro em si. Em qualquer estrutura xml que eu queria assinar em meu código ele não vai assinar a primeira Tag, assina apenas a partir da segunda.

Anexei o .xml que estou assinando e abaixo código de assinatura....ele não entra no loop "for" quando apontando para a primeira Tag.



Você vai notar que este código na verdade é o código do maciel um pouco modificado.

Valeu pela força,

Carlos
 Nome do arquivo teste.xml [Disk] Download
 Descrição
 Tamanho 2 Kbytes
 Baixado:  124 vez(es)

Esta mensagem foi editada 1 vez. Última atualização foi em 11/09/2015 13:25:32

rfumiot

JavaC Membro
[Avatar]

Membro desde: 23/06/2015 17:19:55
Mensagens: 217
Offline

esse xml foi você quem gerou?
no meu funcionou porque eu tenho uma tag antes da NFe, a minha primeira tag é a enviNFe...




gero da mesma forma que o maciel...


repare que no final ele adicionar o nFe no TEnviNFe

Esta mensagem foi editada 1 vez. Última atualização foi em 11/09/2015 13:54:54

OperadorCarlos

JavaC Membro

Membro desde: 10/09/2015 17:50:33
Mensagens: 11
Offline

Sim rfumiot,

Perfeito com isto assinou direitinho, o problema é que eu não uso o código de criação do maciel. É que eu gosto de fazer por minha própria conta pra poder conhecer cada campo e descobrir mais rapidamente problemas com os dados na fase de produção.

A questão é que com a <Tag> enviNFe ele não entra no Emissor Gratuito, mas eu imagino que já dá pra andar usando o o Emissor só pra comparação.

Você tem aí um xml de modelo do NfeRetAutorizacao?

Puxa, muito obrigado.... seu toque foi essencial na solução deste desafio.

Valeu

Gratíssimo

Carlos
rfumiot

JavaC Membro
[Avatar]

Membro desde: 23/06/2015 17:19:55
Mensagens: 217
Offline

no tutorial do maciel tem...

http://www.javac.com.br/downloads/XML/XML_Assinado-env-lot.xml
OperadorCarlos

JavaC Membro

Membro desde: 10/09/2015 17:50:33
Mensagens: 11
Offline

Surgiu uma outra questão: Sei que o NFe utiliza o Axis 1.6.2 e o CTe utiliza a versão 1.5.3

A questão é que nossa aplicação envia os dois documentos para a Sefaz e não consigo direcionar o projeto para que quando estou na NFe usar o Axis 1.6.2 e no CTe usar 1.5.3. Quando ambos estão presentes o sistema dá erro na NFe porque, talvez por classificação alfabética, encontra antes a 1.5.3.

Até aqui já descobri que a questão está nos nfe-ws-3.10.jar e ctews.jar.

Preciso saber se existe uma forma de controlar que cada um utilize a versão correta do Axis.

Já testei tirando o 1.5.3 e a NFe funciona numa boa porém aí é o CTe que para de funcionar.

Se já tiver se deparado com este problema poderia me ajudar.....?

Grato

Carlos
GGarcia

JavaC Membro

Membro desde: 28/05/2013 17:12:21
Mensagens: 173
Offline

Gere os stubs do CTe com a mesma versão do Axis.

Eu uso Netbeans mas gosto de gerar os stubs por fora, usando as ferramentas do Axis mesmo.

Faça o download dos WSDL da NFe. Pegue, por exemplo, do RS que possui todos os webservices. Eles podem ser encontrados nesse endereço aqui: http://www.nfe.fazenda.gov.br/portal/webServices.aspx?tipoConteudo=Wak0FwB7dKs=

Instale seu certificado digital no browser de sua preferência.

Pegue endereço a endereço do SEFAZ do RS, copie e cole no browser e, no final do endereço, coloque ?wsdl



Produção e homologação são a mesma coisa. Não precisa faze separado.

Vai abrir o arquivo no browser. Salve em uma pasta qualquer. Repita até ter todos os WSDL que precisa.

Depois, descompacte o zip da versão desejada do Axis.

Pelo prompt de comando, vá até a pasta bin do Axis.

Digite o seguinte comando:

wsdl2java.bat -o <caminho classe java> -uri <caminho wsdl>

Vamos supor que a pasta escolhida seja c:\WSDL

vai estar assim:


Repita para cada WSDL. Ao final, você terá uma pasta src em c:\WSDL

Pegue o conteúdo dessa pasta e jogue em um projeto do Netbeans, adicionando os jars da pasta lib do Axis com bibliotecas do projeto e compile o projeto.

Pronto. Seu jar com os WSDL da NFe e do CTe estão gerados. Pode fazer tudo no mesmo pacote se preferir.

Esta mensagem foi editada 1 vez. Última atualização foi em 06/10/2015 13:37:22


If you're here, who's running hell?
OperadorCarlos

JavaC Membro

Membro desde: 10/09/2015 17:50:33
Mensagens: 11
Offline

Olá GGarcia,

Pelo que entendi você está gerando manualmente o quê seriam meus nfe-ws-3.10.jar e ctews.jar. Você chamou estas libs do Maciel de Stubs (desculpe a ignorância)?

Grato pela ajuda.

Carlos
GGarcia

JavaC Membro

Membro desde: 28/05/2013 17:12:21
Mensagens: 173
Offline

Exato, gerando manualmente.

Da mesma forma, você pode gerar via Eclipse ou Netbeans como um projeto de WebService.

Da forma com eu fiz, fica independente de IDE e posso colocar o fonte em qualquer uma e compilar.

Sobre os stubs, é que cada vez que você usa o comando wsdl2java para gerar os arquivo .java, existem os arquivos de callback e os arquivos de stub. O nome de um deles seria CadConsultaCadastro2Stub.java, por exemplo.

Chame de mania

Esta mensagem foi editada 2 vezes. Última atualização foi em 06/10/2015 15:14:06


If you're here, who's running hell?
wordred

JavaC Membro

Membro desde: 11/08/2015 10:38:15
Mensagens: 2
Offline

Bom dia Pessoal, parabéns pelo trabalho

Estou sofrendo com um erro na hora de assinar o xml, sou novato neste esquema de xml.

o Erro do logo e este:

| ERROR: | gnu.xml.dom.DomEx: The operation violates XML Namespaces.
More Information: setting xmlns attribute to illegal value
Node Name: Signature

O xml que desejo assinar:

<enviNFe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe">
<idLote>0000001</idLote>
<indSinc>0</indSinc>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe versao="3.10" Id="NFe41150911807080000108650010000001151525113020">
<ide>
<cUF>41</cUF>
<cNF>52511302</cNF>
<natOp>VENDA DE PRODUCAO DO ESTABELECIMENTO</natOp>
<indPag>0</indPag>
<mod>55</mod>
<serie>1</serie>
<nNF>115</nNF>
<dhEmi>2015-09-24T09:21:35-03:00</dhEmi>
<tpNF>1</tpNF>
<idDest>1</idDest>
<cMunFG>4106902</cMunFG>
<tpImp>4</tpImp>
<tpEmis>1</tpEmis>
<cDV>0</cDV>
<tpAmb>2</tpAmb>
<finNFe>1</finNFe>
<indFinal>1</indFinal>
<indPres>1</indPres>
<procEmi>0</procEmi>
<verProc>3.0</verProc>
</ide>
<emit>
<CNPJ>1180XXXXXXXXXX</CNPJ>
<xNome>XME EEXXXX LTDA</xNome>
<xFant>XME EEXXXX</xFant>
<enderEmit>
<xLgr>RUA LOURENCO AFONSO</xLgr>
<nro>1250</nro>
<xBairro>AFONSO PENA</xBairro>
<cMun>4106902</cMun>
<xMun>SAO JOSE DOS PINHAS</xMun>
<UF>PR</UF>
<CEP>83050XXX</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
<fone>41406XXXXX</fone>
</enderEmit>
<IE>01234XXXXX</IE>
<CRT>3</CRT>
</emit>
<dest>
<CPF>015713XXXXX</CPF>
<xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome>
<enderDest>
<xLgr>RUA AFONSO</xLgr>
<nro>1250</nro>
<xBairro>AFONSO PENA</xBairro>
<cMun>4106902</cMun>
<xMun>SAO JOSE DOS PINHAS</xMun>
<UF>PR</UF>
<CEP>83050120</CEP>
<cPais>1058</cPais>
<xPais>83050120</xPais>
<fone>4140639765</fone>
</enderDest>
<indIEDest>9</indIEDest>
</dest>
<det nItem="1">
<prod>
<cProd>142</cProd>
<cEAN></cEAN>
<xProd>208 LAN CABLE ADP CAT 5E AZUL</xProd>
<NCM>85444900</NCM>
<CFOP>5101</CFOP>
<uCom>CX</uCom>
<qCom>1.0000</qCom>
<vUnCom>32.6200000000</vUnCom>
<vProd>32.62</vProd>
<cEANTrib></cEANTrib>
<uTrib>CX</uTrib>
<qTrib>1.0000</qTrib>
<vUnTrib>32.6200000000</vUnTrib>
<indTot>1</indTot>
</prod>
<imposto>
<ICMS>
<ICMS00>
<orig>1</orig>
<CST>00</CST>
<modBC>0</modBC>
<vBC>0.00</vBC>
<pICMS>0.0000</pICMS>
<vICMS>0.00</vICMS>
</ICMS00>
</ICMS>
</imposto>
</det>
<total>
<ICMSTot>
<vBC>0.00</vBC>
<vICMS>0.00</vICMS>
<vICMSDeson>0.00</vICMSDeson>
<vBCST>0.00</vBCST>
<vST>0.00</vST>
<vProd>32.62</vProd>
<vFrete>0.00</vFrete>
<vSeg>0.00</vSeg>
<vDesc>0.00</vDesc>
<vII>0.00</vII>
<vIPI>0.00</vIPI>
<vPIS>0.00</vPIS>
<vCOFINS>0.00</vCOFINS>
<vOutro>0.00</vOutro>
<vNF>32.62</vNF>
<vTotTrib>16.60</vTotTrib>
</ICMSTot>
</total>
<transp>
<modFrete>9</modFrete>
</transp>
</infNFe>
</NFe>
</enviNFe>


Obrigado
OperadorCarlos

JavaC Membro

Membro desde: 10/09/2015 17:50:33
Mensagens: 11
Offline

Bom dia wordred,

Tem isto no seu xml? <?xml version="1.0" encoding="UTF-8" ?>

Carlos
 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team