Bom dia pessoal.
Confesso que tem, e vi bastante coisa não só aqui no forum, mas em outros links sobre certificado digital. Estou bastante confuso, e não sai do lugar ainda.
Estou trabalhando no desenvolvimento da NFe (Nota Fiscal eletronica, versão 2.0) para um cliente, vou resumir o que fiz até agora.
- Baixei o manual de integração do site da receita.
- Criei as classes (NFe, InfNfe, Imposto, Produto…etc…etc…) para a geração dos arquivos xml.
- Consegui o certificado digital A1 do cliente pra fazer a assinatura do arquivo xml.
- Fiz a validação e assinatura do arquivo xml.
Beleza, até aqui tive sucesso.
Agora estou apanhando há dois dias com a comunicação com o WebService da receita.
Não sei bem como funciona isso:
Vi em muitos lugares que tem que baixar os WSDL da receita e gerar as classes java (não fiz ainda), outros dizem que não é preciso, dá pra chamar o serviço direto na receita, acessando por exemplo:
WebService.callWebService("https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/nferecepcao.asmx?WSDL", WebService.nfeRecepcaoLote2, msgXml);
Quando eu faço assim, eu tenho esse erro:
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
pelo que entendi, o certificado digital não foi encontrado. Pois bem, eu já tenho o certificado digital que obtive do cliente, certo? Então abri meu navegador, no meu caso o FireFox e acessei : https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/nferecepcao.asmx?WSDL
e adicionei o cerificado (quando acessei já apareceu a janela pedindo o certificado), daí apareceu a “estrutura” do WSDL, que é um xml.
Dúvida: Por que na aplicação aparece o erro?
Vi ainda que tem que gerar um keystore pra este arquivo .pfx, usar uns System.setProperty e tals, mas to muito confuso.
Se alguém puder me ajudar, por favor, não sei como continuar o meu desenvolvimento.