Pessoal estou com uma dúvida sobre a tag indTot dos produtos…
No manual diz "0 se não compõe o total do valor da nfe e 1 se compõe o total"
A dúvida é…
se eu adiconar 1 no indTot de um ítem , o valor da nota será o valor do ítem? isto é…que o ítem representa o valor total da nota;;;;
ou se somar todos os ítens que tiverem a tag 1 terá que dar automaticamente o valor da nfe?
Alguem conseguiu consultar o cadastro versao layout 2.0 (CadConsultaCadastro2) através do webservice do RS ? Se sim, como fez, o que ferramenta usou, axis ? Não estou conseguindo…
Tente isso… abraco[/quote]
Olá, como estou completamente perdido nessa etapa de verificar o status do serviço na homologação, usei seu código como exemplo, veja como ficou o meu e veja a exceção que recebo, se puder me apontar alguma coisa que estou fazendo errado, por favor eu ficaria muito agradecido.
NfeStatusServico2Stub nfe = new NfeStatusServico2Stub("https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeStatusServico2.asmx");
NfeCabecMsgE nfeCabecMsg1 = new NfeCabecMsgE();
NfeCabecMsg param = new NfeCabecMsg();
param.setCUF(cUF);
param.setVersaoDados(versao);
nfeCabecMsg1.setNfeCabecMsg(param);
OMElement ome = AXIOMUtil.stringToOM(nfeDadosMsg);
NfeDadosMsg nf2 = new NfeDadosMsg();
nf2.setExtraElement(ome);
NfeStatusServicoNF2Result resp = nfe.nfeStatusServicoNF2(nf2, nfeCabecMsg1);
System.out.println("Retorno : \n" + resp.getExtraElement().toString());
[/code]
Exceção que dá naquela linha para imprimir:
org.apache.axis2.AxisFault: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:203)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at emissor.webservices.status2.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:174)
at emissor.lib.NFe.statusServico(NFe.java:84)
[quote=zoren][quote=fafb]galera utilizando o axis2 as classes geradas a partir dos wsdl sao essas, mas vendo aki no forum as q vii sao outras, minha duvia eh: tenho q utilizar o axis1 em vez de axis2??
Eu utilizo o Axis2 para gerar as classes, funciona normal, mas o nome da segunda e da terceira estão estranhos[/quote]
Eu também uso o Axis2, já tou ficando maluco com tantos nomes de classes diferentes, cada um que vejo está diferente do outro, e isso só o de status do serviço, quais são suas classes?
Teria um exemplo de código para verificar o status do serviço?
Fala galera, há muito tempo eu desenvolvi o projeto da NFe aqui na empresa onde trabalho, recebi muita ajuda aqui do GUJ e ajudei muita gente também.
Agora infelizmente eu tive que voltar pra esse projeto para adapta-lo a versão 2 da NFe. E agora eu estou precisando da ajuda aqui do pessoal.
Já fiz as comunicações com WEB-Service e estão tudo ok (usando o AXIS 2), meu problema é o seguinte:
Nosso sistema é WEB e trabalha com um grupo de empresas logo precisamos configuar o certificado do cliente de forma dinamica não da pra usar o System.properies.
na versão 1 do XML eu utilizava uma classe chamada: org.apache.axis.client.SSLClientAxisEngineConfig
e agora no Axis 2 alguem ja utilizou isso, eu andei dando uma fuçada na classe ConfigurationContext que se passa no construtor dos Stubs mas não consegui.
Alguem pode me ajudar?
A minha ultima cartada que eu não queria dar pq vai ficar muito gambiarra seria trocar o properties do sistema através do método System.setProperties(props); para um que obtivesse os valores da Session do servidor.
[quote=javer][quote=zoren][quote=fafb]galera utilizando o axis2 as classes geradas a partir dos wsdl sao essas, mas vendo aki no forum as q vii sao outras, minha duvia eh: tenho q utilizar o axis1 em vez de axis2??
Eu utilizo o Axis2 para gerar as classes, funciona normal, mas o nome da segunda e da terceira estão estranhos[/quote]
Eu também uso o Axis2, já tou ficando maluco com tantos nomes de classes diferentes, cada um que vejo está diferente do outro, e isso só o de status do serviço, quais são suas classes?
Teria um exemplo de código para verificar o status do serviço?
Obrigado.[/quote]
segue um exemplo…
ConfiguraKeystore.setPropertySefaz("C:\\CertificadosHomologacao\\exportado\\");//configura os certificados
br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub stub = new br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub();
br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub.NfeDadosMsg nfeDadosMsg7= null;
// TODO : Fill in the nfeDadosMsg7 here
String nfeDadosMsg =
"<nfeDadosMsg xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\">" +
"<consStatServ versao=\"2.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">" +
"<tpAmb>2</tpAmb>" +
"<cUF>42</cUF>" +
"<xServ>STATUS</xServ>" +
"</consStatServ>" +
"</nfeDadosMsg>";
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
Factory factory = new Factory();
nfeDadosMsg7 = factory.parse(inputFactory.createXMLStreamReader(new StringReader(nfeDadosMsg)));
// br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub.NfeCabecMsgE nfeCabecMsg8 = new br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub.NfeCabecMsgE();
System.out.println("aqui 1");
NfeCabecMsgE nfeCabecMsg8 = new NfeCabecMsgE();
System.out.println("aqui 2");
// TODO : Fill in the nfeCabecMsg8 here
NfeCabecMsg cabec = new NfeCabecMsg();
cabec.setCUF("42");
cabec.setVersaoDados("2.00");
nfeCabecMsg8.setNfeCabecMsg(cabec);
NfeStatusServicoNF2Result result = stub.nfeStatusServicoNF2(nfeDadosMsg7, nfeCabecMsg8);
System.out.println(result.localExtraElement);
[quote=roassunca]Resolvido: o problema estava na consulta do recibo da NFe, e não no envio.
Estava gerando o XML da consulta com ConsReciNFe (c em maiúsculo - bobeira).
E não estava conseguindo consultar pela chave de acesso no site da Sefaz-SP pois recebi como resposta: “Rejeição: Total do Produto / Serviço difere do somatório dos itens”.[/quote]
Olá, como foi que resolveu esse problema dos somatórios?
Estou fazendo um teste simples com apenas uma nota fiscal (homologação), com apenas um produto/serviço e está me retornando isso, não sei mais o que fazer, já conferi todos as tags e valores, onde pode ser essa somatória?
[code]Codigo retorno recibo…: 104
Versao leiaute SEFAZ…: 2.00
Tipo de ambiente recibo.: 2
Versao aplicativo SEFAZ.: SP_NFE_PL_006e
Numero recibo consultado: 351000021585236
Status da resposta…: Lote processado
UF que atendeu a chamada: 35
Codigo da Mensagem…: null
Mensagem…: null
ID…: null
Tipo de ambiente…: 2
Versao aplicativo…: SP_NFE_PL_006e
Chave de acesso…: 35100902767116000186550010000266861020711469
Data/hora recebimento.: 2010-09-23T07:11:48
Numero do protocolo…: null
Codigo do status…: 564
Resposta…: Rejeição: Total do Produto / Serviço difere do somatório dos itens
[/code]
Será que alguém teria, por favor, [color=darkblue]um exemplo de como consultar o cadastro do emitente[/color]? (as classes do webservice).
Peguei o WSDL e gerei as classes mas parece que não estão corretas (fora do padrão dos demais webservices), estou querendo consultar o cadastro na UF de SP, a classe CadConsultaCadastro2Stub que gerou para mim (com Axis2) não tem a …Result, tem uma classe chamada ConsultaCadastro2Result_type0, não achei quase nada na net sobre isso.
Minha última etapa na homologação, já tava comemorando e agora não consigo passar disso.
Estou com outro problema seríssimo, tenho 2 certificados A3 em tokens, com um acesso todos os serviços normalmente, já com o segundo está me retornando uma maldita de uma Exception que não consigo resolver, no Axis2:
org.apache.axis2.AxisFault: Transport error: 403 Error: Forbidden
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at emissor.ws.h.status.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:173)
at emissor.lib.NFe.getStatusServico(NFe.java:457)
at emissor.ui.NotasFiscaisUI$1.run(NotasFiscaisUI.java:154)
Alguma alma bondosa poderia me ajudar a resolver isso?
[quote=javer]Estou com outro problema seríssimo, tenho 2 certificados A3 em tokens, com um acesso todos os serviços normalmente, já com o segundo está me retornando uma maldita de uma Exception que não consigo resolver, no Axis2:
org.apache.axis2.AxisFault: Transport error: 403 Error: Forbidden
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at emissor.ws.h.status.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:173)
at emissor.lib.NFe.getStatusServico(NFe.java:457)
at emissor.ui.NotasFiscaisUI$1.run(NotasFiscaisUI.java:154)
Alguma alma bondosa poderia me ajudar a resolver isso?
Será algum problema no certificado?[/quote]
O segundo token deve estar sem a cadeia certificadora ou até tem, mas errada.
Já tive casos em que a cadeia que constava no token não correspondia ao certificado do cliente.
Verifique quem (AC) emitiu o certificado do cliente, tipo CAIXAPJ, ACNOTORIAL, etc…
Importe o certificado do emitente no token, assim como todos os certificados da cadeia,
até chegar na Raiz Brasileira v1.
Já liguei no suporte da Certisign e fizeram um teste no site da prefeitura de SP e o certificado foi aceito.
O que tá me matando é que tenho dois, o outro (que utiliza a mesma forma de acessar o serviço) funciona e o outro não.
A pessoa da Certisign disse que se a raíz estivesse errada no site da prefeitura de SP não ia funcionar, me disse também que o token só pode ser gravado uma vez, ou seja, não tem como reinicializar e importar raíz.
Eu utilizo o programa eToken PKI Client para ver as propriedades dos certificados, segue imagens que retirei do certificado que está me dando problemas.
Infelizmente a imagem do certificado tockprint nao veio.
Por favor, vamos resolver isso por email para não tumultuar a lista, visto ser um caso particular seu.
Verifique quem (AC) emitiu o certificado do cliente, tipo CAIXAPJ, ACNOTORIAL, etc…
Importe o certificado do emitente no token, assim como todos os certificados da cadeia,
até chegar na Raiz Brasileira v1.
Pronto.
Alencar[/quote]
Respondendo para a lista para registro e consultas futuras:
Quem emitiu o certificado da Tockprint foi a AC Certisign Multipla G3.
Mas a cadeia certificadora que consta no token é:
AC Certisign RFB G3
AC Secretaria da Rece…
Autoridade Certi…
Entendeu? O certificado AC Certisign Multipla G3 não consta na cadeia.
Importe o certificado no token, clicando com o botao direito em cima de Certificados AC.