Boa noite a todos.
Estou tentando já a alguns dias verificar o status do webservice da NFe sem sucesso (ainda estou tentando fazer a NFe 1.10).
Recebi do meu cliente um arquivo de certificado .pfx (somente esse arquivo e a senha) e consegui com ele fazer a assinatura do arquivo, no entanto não consigo me comunicar com o webservice para verificar o status.
Fiz o seguinte.
1 - Importei esse arquivo pfx pra dentro do IE8
2 - Exportei ele como um certificado X.509 codificado base 64 (*.cer)
3 - Gerei o arquivo jks atraves do keytool do java
4 - Utilizei o código abaixo para tentar se comunicar (e muitas outra variantes):
[code]public static void main(String[] args) {
//Esse é o layout para o cabeçalho e rodapé para o Status do Serviço conforme o manual de integração explica
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>35</cUF>"
+ "<xServ>STATUS</xServ>" + "</consStatServ>";
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.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore","C:\\nfe\\certificado.pfx");//Aqui vem o arquivo do certificado do seu cliente
System.setProperty("javax.net.ssl.keyStorePassword", "senha_do_certificado");//Aqui a senha deste certificado
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl. ", "C:\\nfe\\serasa\\nfe.ks");//Aqui vem o arquivo criado através do comando keytool no passo 3
// As classes abaixo são as classes geradas atavés do arquivo WSDL no passo 1
NfeStatusServico service = new NfeStatusServicoLocator();
try {
NfeStatusServicoSoap nfeStatus = service.getNfeStatusServicoSoap();
System.out.println(nfeStatus.nfeStatusServicoNF(nfeCabecMsg, nfeDadosMsg));// O retorno deve ser um XML com o status do serviço
} catch (Throwable e1) {
e1.printStackTrace();
}
} [/code]
Estou recebendo o erro unable to find valid certification path to requested target quando executo essa classe.
Minhas dúvidas
Existe mais algum arquivo enviado pelo sefaz que preciso utilizar e meu cliente não enviou?
O jks que devo gerar é usando como base o certificado de meu cliente exportado?
Ainda é possível usar o ambiente de homologação da NFe 1.10 ou não é mais permitido?
Qualquer ajuda será muito bem vinda.
Obrigado.