na classe InstallCert tem alguma maneira de eu gerar pra duas url ? tipo meu cliente tem empresa em RS e SC ai teria que passar "homologacao_nfe_sefaz_rs_gov_br"
e “homologacao_nfe_sefazvirtual_rs_gov_br”, isso funciona ? alguem ja fez ? o certificado pra ambas é o mesmo, ele vai gerar 2 arquivos caccerts ?
[quote=Heero]Em PIS e COFINS, vcs estão colocando os campos de ST (Substituição Tributária)? Por que? É Realmente necessário?
Se sim, vai ficar campo d+.[/quote]
não é necessario PISST e COFINSST, é opcional…
abraço
Aos brother da NFe ai :lol: ,
existe alguma forma de eu umplementar meu sistema para poder trabalhar homologação e produção juntos, tipo ao clicar num botão passar para homologação ou para produção ? ou melhor tem alguma maneira de eu trabalhar na aplicação 2 ambientes, pois uso a classe istallCert e passo a url pra ela tipo aqui pro rs homologacao.nfe.sefaz.rs.gov.br e preciso ter outro projeto para homologacao.nfe.sefaz.pr.gov.br ? tem como eu fazer minha installCert para 2 endereços ou mais, ou alguma outra forma, para poder usar a mesma aplicação para + de um cliente ? obrigado.
@edit
o problema com o namespace xmlns="" que aparecia em algumas tags sem eu ter colocado ele ali foi resolvido, agora o problema eh adicionar o mesmo namespace em uma tag filha que faz uso desse namespace
esta assim:
<?xml version="1.0" encoding="UTF-8"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10">
<idLote>1</idLote>
[b]<NFe xmlns="">[/b]
deveria ser assim:
<?xml version="1.0" encoding="UTF-8"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10">
<idLote>1</idLote>
[b]<NFe xmlns="http://www.portalfiscal.inf.br/nfe">[/b]
a tag nfe precisa ter o mesmo namespace da tag enviNFe, e quando eu adiciono ele mesmo criando um novo objeto namespace, aparece somente as tags vazias…
Senhores, estou começando a desenvolver nfe agora, já li umas três vezes este forum e mais outro monte de artigos referentes a nfe.
Só que tem algumas coisas que não estou conseguindo entender. Desculpem se for coisa boba, mas, é que esse lance de webService, certificados, xStream, tudo é novo para mim.
Já adquiri o e-CNPJ dos Correios.
Fiz o backup do certificado, foi gerado um arquivo *.p12.
Também baixei os certificados da SEFAZ/AM (produção e homologação), foram gerados dois arquivos *.crt.
Baixei também os arquivos *.xsd do site da receita.
Sei da existencia dos WSDL.
Verifiquei no manual de integração do contribuinte o anexo I, que trata do layout da nfe.
Agora, por favor me expliquem, como devo aplicar tudo isso?
Devo criar todas as classes baseadas no Anexo I do manual de integração, usar o xStream para gerar os arquivos em xml, assinar usando o certificado do Correio e acessar os webservices da sefaz? E os xsd e wsdl? Qual a aplicação deles?
Sei que tem a ver com SOAP, mas agracederia muito se alguem pudesse me esclarecer isso.
Fala Gilson, resumindo o processo:
- vc tera de gerar o XML com os dados da NFe utilizando todas as regras do manual de integracao (puta trampo)
- Esse XML vc tera de assinar utilizando seu certificado + certificado da sefaz
- ja pensando nisso, existe um XML para de Lote, onde vc adicionara os XMLs dos pedidos dentro desse lote, pois no final vc enviara o lote e nao a NFe apenas. (pode ser 1 NFe dentro de cada lote)
- os WSDLs sao as estruturas do webservice. Por exemplo o webservice de verificar o status do sistema informara os parametros necessarios para a requisicao e o q sera retornado como resposta. O Eclipse tem a funcionalidade de vc criar as classes do webservice utilizando esse arquivo WSDL, automaticamente, o q ja ajuda.
- Para o envio da NFe mesmo, existem 2 webservices: o envio do lote, entao sera retornado o status desse envio do lote + protocolo, e fim do webservice, vc nao tera as informacoes se a NFe mesmo foi autorizada ou nao. Entao um segundo webservice para verificar pelo protoloco do lote o status de cada NFe dentro desse lote, e dai sim vc tera a informacao se a NFe foi autorizada ou nao.
Praticamente esse é o processo.
Abracos,
Magno
magno_jr, obrigado pela resposta.
Então não tem jeito mesmo, vou ter que implementar todas as classes que aparecem no anexo I do Manual de Integração do contribuinte. Puts, realmente vai dar trabalho.
Então eu devo gerar uma classe para cada WSDL?
Como faço para usar estas classe?
f-schmitt
Esou tentando usar o seu GeradorWSDL (que voce postou lah na pagina 3 deste forum) para gerar as classes do webservice, porem, na hora que executo ele soh cria as classes da “nfestatusservico”. O estranho eh que nao joga nenhum erro.
Ele deveria jogar uma mensagem apos executar cada linha abaixo:
GeradorWSDL gerador = new GeradorWSDL();
gerador.setProperties();
gerador.geraWSDL(nfestatusservico, "nfestatusservico");
gerador.geraWSDL(nfeconsulta, "nfeconsulta");
gerador.geraWSDL(nferecepcao, "nferecepcao");
gerador.geraWSDL(nferetrecepcao, "nferetrecepcao");
gerador.geraWSDL(nfecancelamento, "nfecancelamento");
gerador.geraWSDL(nfeinutilizacao, "nfeinutilizacao");
public void geraWSDL(String wsdl, String pack) {
WSDL2Java.main(new String[] { wsdl, "-o", "src", "-p",
"br.com.minhaempresa.nfe.service." + pack });
System.out.println("*** Geração concluída ***"); // deveria imprimir isso!!!
}
mas nao esta imprimindo.
Tem alguma ideia do que seja?
Ola nobres colegas estou acompanhando esse tópico faz algumas semanas
e por enquanto só estou sugando
mas agora vou postar tb um problema que estou tendo já vi algo parecido no
tópico mas as solucões propostas nenhuma serviu para mim…
estou enviando o serviço de "nfeStatusServicoNF" aparentimente minha solicitação está certa
mas o servidor persiste em dar a mesma mensagem 243 - Rejeicao: XML Mal Formado
se alguem passou por essa mesma situação e quer compartilhar…fico agradecido…
só para complementar o certificado é de Santa Catarina e estou usando a SEFAZ do Rio Grande do Sul
segue o codigo XML da minha solicitação
//Cabeçario
<?xml version="1.0" encoding="UTF-8"?>
<nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.02">
<versaoDados>1.07</versaoDados>
</nfeCabecMsg>
//Dados
<?xml version="1.0" encoding="UTF-8"?>
<consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.07" >
<tpAmb>2</tpAmb>
<cUF>42</cUF>
<xServ>STATUS</xServ>
</consStatServ>
//Resposta do servidor
<?xml version="1.0" encoding="utf-8"?>
<retConsStatServ versao="1.07" xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>2</tpAmb>
<verAplic>RS20090908084241</verAplic>
<cStat>243</cStat>
<xMotivo>Rejeicao: XML Mal Formado</xMotivo>
<cUF>0</cUF>
<dhRecbto>2009-09-21T17:11:17</dhRecbto>
<tMed>1</tMed>
</retConsStatServ>
[quote=alexborges]Ola nobres colegas estou acompanhando esse tópico faz algumas semanas
e por enquanto só estou sugando
mas agora vou postar tb um problema que estou tendo já vi algo parecido no
tópico mas as solucões propostas nenhuma serviu para mim…
estou enviando o serviço de "nfeStatusServicoNF" aparentimente minha solicitação está certa
mas o servidor persiste em dar a mesma mensagem 243 - Rejeicao: XML Mal Formado
se alguem passou por essa mesma situação e quer compartilhar…fico agradecido…
só para complementar o certificado é de Santa Catarina e estou usando a SEFAZ do Rio Grande do Sul
segue o codigo XML da minha solicitação
//Cabeçario
<?xml version="1.0" encoding="UTF-8"?>
<nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.02">
<versaoDados>1.07</versaoDados>
</nfeCabecMsg>
//Dados
<?xml version="1.0" encoding="UTF-8"?>
<consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.07" >
<tpAmb>2</tpAmb>
<cUF>42</cUF>
<xServ>STATUS</xServ>
</consStatServ>
//Resposta do servidor
<?xml version="1.0" encoding="utf-8"?>
<retConsStatServ versao="1.07" xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>2</tpAmb>
<verAplic>RS20090908084241</verAplic>
<cStat>243</cStat>
<xMotivo>Rejeicao: XML Mal Formado</xMotivo>
<cUF>0</cUF>
<dhRecbto>2009-09-21T17:11:17</dhRecbto>
<tMed>1</tMed>
</retConsStatServ>
[/quote]
String nfeCabecMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
"<cabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\" "+
"versao=\"1.02\">" +
"<versaoDados>1.07</versaoDados>"+
"</cabecMsg>";
String nfeDadosMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
"<consStatServ " +
" versao=\"1.07\""+
" xmlns=\"http://www.portalfiscal.inf.br/nfe\">"+
"<tpAmb>2</tpAmb>" +
"<cUF>52</cUF>"+
"<xServ>STATUS</xServ>" +
"</consStatServ>";
pois é percebi o erro de ter colocado errado a tag nfeCabecMsg que o certo é cabecMsg
como segue no post do valtemir…mas mesmo assim corrigindo essa parte do codigo
continua voltando o mesmo erro "Rejeicao: XML Mal Formado"
só para esclarecer melhor estou usando axis 1.4 por q vi com ele é possivel
consumir os ws sem precisar ter os wsdl de cada estado fiz isso para generalizar um pouco mais o código.
mas fazendo o teste com axis2 usando as wsdl consegui fazer a solicitação sem problemas mas com axis 1.4 já não foi…
mas percebi visualizando o log gerado pelo axis q o xml com o soap é um pouco diferente entre os gerados com axis 1.4 e axis2 sera q esta ai o problema…??? não posso postar agora o código do xml com o soap por q não me encontro na empresa
mas quando estiver acesso ja posto aqui…
alguem conseguiu fazer a nfe sem as wsdl???
.
Pessoal eu nao to conseguindo nem gerar as classes java a partir do xsd.
Erro:
C:\Documents and Settings\giovanni>“C:/Arquivos de programas/Java/jdk1.6.0_12/bi
n/xjc.exe” “C:/Documents and Settings/giovanni/Desktop/jnfe/impl/PL_005d” -d “D:
/Documentos/CODEBASICPLUS/CODEBASICPLUS2/Nfe/” -p br.com.codesoftwares.nfe.bean
parsing a schema…
[ERROR] ‘TEndereco’ is already defined
line 3645 of file:/C:/Documents%20and%20Settings/giovanni/Desktop/jnfe/impl/PL
_005d/leiauteNFe_v1.10.xsd
[ERROR] (related to above error) the first definition appears here
line 235 of file:/C:/Documents%20and%20Settings/giovanni/Desktop/jnfe/impl/PL_
005d/leiauteConsultaCadastro_v1.01.xsd
Failed to parse a schema.
C:\Documents and Settings\giovanni>“C:/Arquivos de programas/Java/jdk1.6.0_12/bi
n/xjc.exe” -version
xjc version "JAXB 2.1.3 in JDK 1.6"
JavaTM Architecture for XML Binding(JAXB) Reference Implementation, (build JAXB
2.1.3 in JDK 1.6)
Se der para dar alguma ajudinha.
Estou com esse erro ao tentar acessar os Web Services passando por um proxy:
[color=red]
com.sun.xml.internal.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of InaccessibleWSDLException.
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 407 Proxy Authentication Required"
java.io.IOException: Unable to tunnel through proxy. Proxy returns “HTTP/1.0 407 Proxy Authentication Required”
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:146)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:122)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:226)
at com.sun.xml.internal.ws.client.WSServiceDelegate.(WSServiceDelegate.java:189)
at com.sun.xml.internal.ws.client.WSServiceDelegate.(WSServiceDelegate.java:159)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:81)
at javax.xml.ws.Service.(Service.java:56)
at br.inf.portalfiscal.nfe.wsdl.nfestatusservico.NfeStatusServico.(NfeStatusServico.java:44)
at Main.main(Main.java:35)
[/color]
Código da classe:
import br.inf.portalfiscal.nfe.wsdl.nfestatusservico.NfeStatusServico;
import br.inf.portalfiscal.nfe.wsdl.nfestatusservico.NfeStatusServicoNF;
import br.inf.portalfiscal.nfe.wsdl.nfestatusservico.NfeStatusServicoSoap;
import br.inf.portalfiscal.nfe.wsdl.nfestatusservico.ObjectFactory;
import java.net.URL;
import java.security.Security;
import javax.xml.namespace.QName;
public class Main {
public static void main(String... args) {
try {
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.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "c:\\homologa_SP"); // Arquivo gerado com o InstallCert
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", "c:\\NFe emissao.pfx"); // o arquivo com o certificado do emitente
System.setProperty("javax.net.ssl.keyStorePassword", "senhaCertificado"); // a senha do arquivo
System.setProperty("https.proxyHost", "192.168.1.254");
System.setProperty("https.proxyPort", "5981");
System.setProperty("https.proxyUser", "usuarioProxy");
System.setProperty("https.proxyPassword", "senhaProxy");
NfeStatusServicoNF status = new ObjectFactory().createNfeStatusServicoNF();
status.setNfeCabecMsg("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><cabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.02\"><versaoDados>1.07</versaoDados></cabecMsg>");
status.setNfeDadosMsg("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><consStatServ xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.07\"><tpAmb>2</tpAmb><cUF>35</cUF><xServ>STATUS</xServ></consStatServ>");
NfeStatusServico service = new NfeStatusServico(new URL("https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/nfestatusservico.asmx "), new QName("http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico", "NfeStatusServico"));
NfeStatusServicoSoap soap = service.getNfeStatusServicoSoap();
String result = soap.nfeStatusServicoNF(status.getNfeCabecMsg(), status.getNfeDadosMsg());
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Quando a conexão é direta (sem proxy) funciona perfeitamente.
alguém implementou o DPEC??
criei um tópico http://www.guj.com.br/posts/list/140891.java
se puderem dar uma força… agradeço…
gilmaslima, tem um esquema que vc faz com o SSL que ele autentica no proxy, se vc pesquisar sobre javamail vc encontra
na época eu estava fazendo um aplicativo que entrava na caixa de email e acabei vendo isso
Vim até aqui para agradecer a comunidade GUJ pela ajuda dada ao decorrer do desenvolvimento do projeto da NFe
graças a participação de todos aqui consegui finalizar todas as etapas…
então como gratidão me disponibilizo para qualquer um aqui q tenha alguma duvida referente a alguma etapa
na geração da NFe…
e ja dando um dica o usuario f-schmitt tem varios posts bem interessantes sobre a NFe aproveitei muitas coisas dele…
mas vlw abraços para todos fiquem com DEUS
=]
[quote=alexborges]Vim até aqui para agradecer a comunidade GUJ pela ajuda dada ao decorrer do desenvolvimento do projeto da NFe
graças a participação de todos aqui consegui finalizar todas as etapas…
então como gratidão me disponibilizo para qualquer um aqui q tenha alguma duvida referente a alguma etapa
na geração da NFe…
e ja dando um dica o usuario f-schmitt tem varios posts bem interessantes sobre a NFe aproveitei muitas coisas dele…
mas vlw abraços para todos fiquem com DEUS
=][/quote]
implementou o DPEC?
Olá pessoal, estou fazendo o DPEC
logo vou participar do topico que foi aberto
abraço!
[quote=alves.Felipe][quote=alexborges]Vim até aqui para agradecer a comunidade GUJ pela ajuda dada ao decorrer do desenvolvimento do projeto da NFe
graças a participação de todos aqui consegui finalizar todas as etapas…
então como gratidão me disponibilizo para qualquer um aqui q tenha alguma duvida referente a alguma etapa
na geração da NFe…
e ja dando um dica o usuario f-schmitt tem varios posts bem interessantes sobre a NFe aproveitei muitas coisas dele…
mas vlw abraços para todos fiquem com DEUS
=][/quote]
implementou o DPEC?[/quote]
O modelo de contingência não sera implementado por enquanto aqui por nós…
Olá Boa Tarde a todos!
Comecei a trabalhar com a nfe a pouco tempo mas ja consegui fazer a consulta ao Status do Serviço o tutorial que encontrei aqui http://www.guj.com.br/posts/list/15/52035.java foi de grande ajuda mas como nem tudo é perfeito estou começando a ter problemas, parti para a consulta de cadastro do contribuinte e tentei seguir mais ou menos os mesmos passos mas agora ele apresenta o seguinte erro:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
faultActor:
faultNode:
faultDetail:
esta ligado a algum problema no certificado digital… blz agora vem as minhas duvidas se alguma boa alma puder ajudar…
eu acredito q o meu problema esta na keystore (veja bem acredito não tenho certeza) neste tutorial q foi criado ele ensina como cria-la fiz como esta descrito e é gerado o .keystore só q eu vejo q em alguns trechos de cód. as pessoas usarem um arq .jks qual a diferença? o meu .keystore não funciona? se não como faço para gerar este tal .jks eu vi em outros posts explicando mas eles dizem q deve ser gerado a partir de um .pfx o certificado da empresa aqui é um .pfx mas o q vem la da sefaz é um .p7b…
outra coisa eu percebi q para a consulta do status de serviço eu posso comentar todas estas linhas q continua funcionando:
System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12”);
System.setProperty(“javax.net.ssl.keyStore”, caminhoPfx);
System.setProperty(“javax.net.ssl.keyStorePassword”, senhaPfx);
System.setProperty(“javax.net.ssl.trustStoreType”, “JKS”);
System.setProperty(“javax.net.ssl.trustStore”, caminhoKeyStore);
é como se para o status não precisa-se de uma validaçao de certificado mas para a consulta de cadastro de contribuinte sim…
Alguem pode me ajudar ou pelo menos me dar um caminho se pelo menos der uma maior explicação ja agradeço, desde ja muito grato