Nf-e Manaus

Assuntos gerais sobre o Compiere / Adempiere e sobre este fórum.
Raimundo Cruz
Mensagens: 48
Registrado em: Dom Abr 24, 2016 9:56 am

Nf-e Manaus

Mensagempor Raimundo Cruz » Qui Jan 26, 2017 4:11 pm

Boa tarde,
Desde inicio de janeiro venho rodando em paralelo, homologação, nas Notas Fiscais Eletronicas para nossa filial Itapevi e Manaus(AM).
Todos os testes rodaram com sucesso.
No ultimo dia 23/01 coloquei em produção e a Filial Itapevi (SP) esta rodando sem problema. Já rodamos cerca de 30 notas entre Venda, Consignação e Doação.

Hoje tentamos rodar a primeira nota para Manaus e o negócio não passa.

No ambiente de homologação, tenho o seguinte:
Testa o status do serviço da NF-e

** Processo completado com sucesso

Ambiente: 2 - Homologation
Versão: AM3.10
Estado: 107 - Servico em Operacao
UF: 13
Data/Hora: 26/01/2017 15:02:54
Tempo Médio de Processamento: 2 minuto(s)

No ambiente de produção, tenho a seguinte mensagem:
Testa o status do serviço da NF-e

** Erro: - Falha na verificação de Status - javax.net.ssl.SSLException: Connection has been shutdown: 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.

Quando tento enviar a NFe, ocorre a mesma mensagem.

Não sei nem por onde começar a procurar a solução, por que os certificados não são os mesmos para homologação e produção?

Grato, pela ajuda.

Raimundo

Raimundo Cruz
Mensagens: 48
Registrado em: Dom Abr 24, 2016 9:56 am

Re: Nf-e Manaus

Mensagempor Raimundo Cruz » Qui Jan 26, 2017 4:46 pm

Segue o log do erro:

-----------> MWFActivity.run: MWFNode[1120077-(DocComplete),Action=DocumentAction=--] [140]
java.lang.Exception: javax.net.ssl.SSLException: Connection has been shutdown: 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
at org.compiere.wf.MWFActivity.performWork(MWFActivity.java:947)
at org.compiere.wf.MWFActivity.run(MWFActivity.java:790)
at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:370)
at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:280)
at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:279)
at org.compiere.wf.MWFActivity.run(MWFActivity.java:807)
at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:370)
at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:280)
at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:279)
at org.compiere.wf.MWFActivity.run(MWFActivity.java:807)
at org.compiere.wf.MWFProcess.startWork(MWFProcess.java:502)
at org.compiere.wf.MWorkflow.start(MWorkflow.java:696)
at org.compiere.wf.MWorkflow.startWait(MWorkflow.java:726)

Espero que isso ajude.
Grato,
Raimundo

Raimundo Cruz
Mensagens: 48
Registrado em: Dom Abr 24, 2016 9:56 am

Re: Nf-e Manaus

Mensagempor Raimundo Cruz » Sex Jan 27, 2017 2:57 pm

Localizei a classe ProcStatusServico, mas não consigo identificar o problema.

/******************************************************************************
* Product: ADempiereLBR - ADempiere Localization Brazil *
* This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published *
* by the Free Software Foundation. This program is distributed in the hope *
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* See the GNU General Public License for more details. *
* You should have received a copy of the GNU General Public License along *
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
*****************************************************************************/
package org.adempierelbr.process;

import java.io.StringReader;
import java.util.logging.Level;

import javax.xml.stream.XMLInputFactory;

import org.adempierelbr.model.MLBRDigitalCertificate;
import org.adempierelbr.model.MLBRNFConfig;
import org.adempierelbr.model.MLBRNFeWebService;
import org.adempierelbr.model.MLBRNotaFiscal;
import org.adempierelbr.nfe.api.NfeStatusServico2Stub;
import org.adempierelbr.util.BPartnerUtil;
import org.adempierelbr.util.NFeUtil;
import org.apache.axiom.om.OMElement;
import org.compiere.model.MLocation;
import org.compiere.model.MOrgInfo;
import org.compiere.model.MRefList;
import org.compiere.process.ProcessInfoParameter;
import org.compiere.process.SvrProcess;
import org.compiere.util.CLogger;
import org.compiere.util.Env;

import br.inf.portalfiscal.nfe.v310.ConsStatServDocument;
import br.inf.portalfiscal.nfe.v310.RetConsStatServDocument;
import br.inf.portalfiscal.nfe.v310.TAmb;
import br.inf.portalfiscal.nfe.v310.TCodUfIBGE;
import br.inf.portalfiscal.nfe.v310.TConsStatServ;
import br.inf.portalfiscal.nfe.v310.TConsStatServ.XServ;
import br.inf.portalfiscal.nfe.v310.TRetConsStatServ;
import br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeCabecMsg;
import br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeCabecMsgE;
import br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeDadosMsg;

/**
* Processo para consultar o Status do Serviço
*
* @author Ricardo Santana (Kenos, www.kenos.com.br)
* <li> Tornar compatível com a NF-e 3.10
*
* @author Mario Grigioni
* @version $Id: ProcStatusServico.java, 08/04/2010 15:35:00 mgrigioni
*/
public class ProcStatusServico extends SvrProcess
{

/** Logger */
private static CLogger log = CLogger.getCLogger(ProcStatusServico.class);

/** Organization */
private int p_AD_Org_ID = 0;

/** Environment */
private String p_LBR_EnvType = null;

/** Tipo de Emissão */
private String p_LBR_TPEmis = null;

/**
* Prepare - e.g., get Parameters.
*/
protected void prepare()
{
ProcessInfoParameter[] para = getParameter();
for (int i = 0; i < para.length; i++)
{
String name = para[i].getParameterName();
if (name == null)
;
else if (name.equals("AD_Org_ID"))
p_AD_Org_ID = para[i].getParameterAsInt();
else if (name.equals("lbr_NFeEnv"))
p_LBR_EnvType = (String) para[i].getParameter();
else if (name.equals("LBR_TPEmis"))
p_LBR_TPEmis = (String) para[i].getParameter();
else
log.log(Level.SEVERE, "prepare - Unknown Parameter: " + name);
}
} // prepare

/**
* DoIt
*/
protected String doIt() throws Exception
{
if (p_AD_Org_ID == 0)
p_AD_Org_ID = Env.getAD_Org_ID(getCtx());

// Informações da Organização
MOrgInfo orgInfo = MOrgInfo.get (getCtx(), p_AD_Org_ID, null);
if (orgInfo == null)
return "Organização não encontrada";

MLocation orgLoc = new MLocation (getCtx(), orgInfo.getC_Location_ID(), null);

// Ambiente da NF
if (p_LBR_EnvType == null)
{
// Configuração da NF
MLBRNFConfig nfconfig = MLBRNFConfig.get(p_AD_Org_ID);

if (nfconfig == null)
return "Impossível identificar o Ambiente da NF-e.";

p_LBR_EnvType = nfconfig.getlbr_NFeEnv();
}

String region = BPartnerUtil.getRegionCode(orgLoc);
if (region.isEmpty())
return "UF Inválida";

// Tipo de Emissão
if (p_LBR_TPEmis == null)
p_LBR_TPEmis = MLBRNFConfig.LBR_TPEMIS_EmissãoNormal;

// Inicializa o Certificado
MLBRDigitalCertificate.setCertificate (getCtx(), p_AD_Org_ID);
//
StringBuilder msg = new StringBuilder ();[/color]

try
{
// Status Service Object
ConsStatServDocument statServDoc = ConsStatServDocument.Factory.newInstance();
TConsStatServ statServ = statServDoc.addNewConsStatServ();
statServ.setTpAmb(TAmb.Enum.forString(p_LBR_EnvType));
statServ.setCUF(TCodUfIBGE.Enum.forString(region));
statServ.setXServ(XServ.STATUS);
statServ.setVersao(NFeUtil.VERSAO_LAYOUT);

// XML
StringReader xml = new StringReader (NFeUtil.wrapMsg (statServDoc.xmlText(NFeUtil.getXmlOpt())));

// Mensagem
NfeDadosMsg dadosMsg = NfeDadosMsg.Factory.parse (XMLInputFactory.newInstance().createXMLStreamReader(xml));

// Cabeçalho
NfeCabecMsg cabecMsg = new NfeCabecMsg ();
cabecMsg.setCUF(region);
cabecMsg.setVersaoDados(NFeUtil.VERSAO_LAYOUT);

NfeCabecMsgE cabecMsgE = new NfeCabecMsgE ();
cabecMsgE.setNfeCabecMsg(cabecMsg);

String url = MLBRNFeWebService.getURL (MLBRNFeWebService.STATUSSERVICO, p_LBR_EnvType, NFeUtil.VERSAO_LAYOUT, p_LBR_TPEmis, orgLoc.getC_Region_ID());
NfeStatusServico2Stub.setAmbiente(url);
NfeStatusServico2Stub stub = new NfeStatusServico2Stub();

OMElement nfeStatusServicoNF2 = stub.nfeStatusServicoNF2(dadosMsg.getExtraElement(), cabecMsgE);
String respStatus = nfeStatusServicoNF2.toString();

// Resposta
RetConsStatServDocument retConsStatServDoc = RetConsStatServDocument.Factory.parse (respStatus);
TRetConsStatServ ret = retConsStatServDoc.getRetConsStatServ();

msg = new StringBuilder("@Success@<br />");
msg.append("<br />Ambiente: ").append(ret.getTpAmb()).append(" - ").append(MRefList.getListName (getCtx(), 1100001, ret.getTpAmb().toString()));
msg.append("<br />Versão: ").append(ret.getVerAplic());

if (MLBRNotaFiscal.LBR_NFESTATUS_107_ServiçoEmOperação.equals(ret.getCStat())) // OK
{
msg.append("<font color=\"008800\">");
msg.append("<br />Estado: ").append(ret.getCStat()).append(" - ").append(ret.getXMotivo());
msg.append("</font>");
}
else
{
msg.append("<font color=\"880000\">");
msg.append("<br />Estado: ").append(ret.getCStat()).append(" - ").append(ret.getXMotivo());
msg.append("</font>");
}
msg.append("<br />UF: ").append(ret.getCUF());
msg.append("<br />Data/Hora: ").append (NFeUtil.formatTime (ret.getDhRecbto().toString()));

if (ret.getTMed() != null)
msg.append("<br />Tempo Médio de Processamento: ").append(ret.getTMed()).append(" minuto(s)");

if (ret.getDhRetorno() != null)
{
msg.append("<font color=\"880000\">");
msg.append("<br />Previsão de Retorno: ").append(ret.getDhRetorno());
msg.append("</font>");
}

if (ret.getXObs() != null)
msg.append("<br />Obs: ").append(ret.getXObs());
}
catch (Throwable e)
{
log.severe (e.getLocalizedMessage());
e.printStackTrace();
//
msg = new StringBuilder("@Error@ - Falha na verificação de Status - " + e.getMessage());
}

return msg.toString();
} // doIt
} // ProcStatusServico

ralexsander
Mensagens: 564
Registrado em: Ter Nov 21, 2006 7:43 am
Localização: São Paulo
Contato:

Re: Nf-e Manaus

Mensagempor ralexsander » Sex Jan 27, 2017 3:40 pm

Raimundo,

Esse erro provavelmente é do certificado. Faz assim, executa o comando abaixo trocando zzzz pelo endereço do WS que está dando problema:

openssl s_client -connect zzzzz:443

Na resposta você vai ver que tem um certificado, exemplo:


-----BEGIN CERTIFICATE-----
MIIGkjCCBXqgAwIBAgIQWqzVO5EfY0x9Aa1Tblxg7jANBgkqhkiG9w0BAQsFADB+
MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAd
BgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxLzAtBgNVBAMTJlN5bWFudGVj
IENsYXNzIDMgU2VjdXJlIFNlcnZlciBDQSAtIEc0MB4XDTE2MDQyNzAwMDAwMFoX
DTE3MDQyODIzNTk1OVowggECMQswCQYDVQQGEwJCUjESMBAGA1UECAwJU2FvIFBh
dWxvMRIwEAYDVQQHDAlTYW8gUGF1bG8xLTArBgNVBAoMJElNUFJFTlNBIE9GSUNJ
QUwgRE8gRVNUQURPIFMgQSBJTUVTUDErMCkGA1UECwwiQ2VudHJvIGRlIFRlY25v
bG9naWEgZGEgSW5mb3JtYWNhbzE+MDwGA1UECxQ1T3JnYW5pemF0aW9uIGFuZCBk
b21haW4ocykgYXV0aGVudGljYXRlZCBieSBDZXJ0aXNpZ24xLzAtBgNVBAMMJnd3
dy5ob21vbG9nYWNhby5uZmNlLmZhemVuZGEuc3AuZ292LmJyMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwwbNSdNJ/T9F+TfMdm8CI8bHSkFDwgKlndeX
KOJ7CtMIGsPeXH9zdEyiZ4RYkimBUB7T4wTURaMtLmRmOHHLyBAhtFcx6LRZugmk
E8O0oL+mSsPQCgVfgZVQKaxXezSO3moX+ffg0fbbCoEUIXj8/z+WFPHJ0xgJxVH7
EtE9BonToDxryU3wNDSoeV/xkfWiMq7eko2UA2JhEqpYOyl4T7u1U0TcdxZ1FVIg
5enWVdcea+Ug3JtcwK/yOMaCFfZWZzw0lUbduf8l2qHkfW1X1LIaRwOUCv2+kybS
F4UhJVeFZKaMcxW/OGTZyq+kM91r7F2A9o/598uzGI2ClOlabQIDAQABo4IChDCC
AoAwMQYDVR0RBCowKIImd3d3LmhvbW9sb2dhY2FvLm5mY2UuZmF6ZW5kYS5zcC5n
b3YuYnIwCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYB
BQUHAwEGCCsGAQUFBwMCMGEGA1UdIARaMFgwVgYGZ4EMAQICMEwwIwYIKwYBBQUH
AgEWF2h0dHBzOi8vZC5zeW1jYi5jb20vY3BzMCUGCCsGAQUFBwICMBkMF2h0dHBz
Oi8vZC5zeW1jYi5jb20vcnBhMB8GA1UdIwQYMBaAFF9gz2GQVd+EQxSKYCqy9Xr0
QxjvMCsGA1UdHwQkMCIwIKAeoByGGmh0dHA6Ly9zcy5zeW1jYi5jb20vc3MuY3Js
MFcGCCsGAQUFBwEBBEswSTAfBggrBgEFBQcwAYYTaHR0cDovL3NzLnN5bWNkLmNv
bTAmBggrBgEFBQcwAoYaaHR0cDovL3NzLnN5bWNiLmNvbS9zcy5jcnQwggEFBgor
BgEEAdZ5AgQCBIH2BIHzAPEAdgDd6x0reg1PpiCLga2BaHB+Lo6dAdVciI09EcTN
tuy+zAAAAVRZFAyUAAAEAwBHMEUCICHI6i6aF7Cs2Ga9SkfQXnTLBfl7GjSrf24T
4t+J941yAiEApeEbhm/QkG9j/7KlN8DGPfSnXexJMZ9fmCRRIBpAKrIAdwCkuQmQ
tBhYFIe7E6LMZ3AKPDWYBPkb37jjd80OyA3cEAAAAVRZFAzGAAAEAwBIMEYCIQCl
8yiOus0c4x7hjg1eLiDY0Mm1DspLNThcJTPOR7vMtAIhAIlCD/hUTbGuxN917FTF
ypGr6wwt5pOH1yfwYxvaoFqHMA0GCSqGSIb3DQEBCwUAA4IBAQBpCbTX5fdpd2OR
h2Jsnp8Z3mS7XkNo+NL5P6D0PrnPdnbpYE8v4IfdBe8gO6XgbJp0y6QzX3RDRiUb
rycGUpJQN+9Sy2B2G3YyC1oGF49V+SEjDb0FMAxWE5RY+n7sDa2uqIDez6ibPaTF
PUg8S1i88I8unmQrrvS6n6rCNsvwhUuftOTi5UcNM3ui7SEH81epn4oqYUV9dTJL
GXiR1DQEN0/DsokDbgcARAS6KRYYI3P1kvdrVl+enulSIZlaO48ACERJCXvzIxV4
ECz7fNFB+sKllSbFLcqlHoxdOIVgm9Bhkm47KYbfvraYw/SY9yh5VQ8yZozzY/mG
TIviz3oh
-----END CERTIFICATE-----

Ai vc salva isso em um arquivo e usa aquele programa KeyStore Explorer para importar dentro daquela truststore que vc anexou na janela Certificado Digital. Se isso resolver o problema me informe para que eu possa corrigir isso no próximo release.

Att.
Ricardo Alexsander Santana
http://www.kenos.com.br

Raimundo Cruz
Mensagens: 48
Registrado em: Dom Abr 24, 2016 9:56 am

Re: Nf-e Manaus

Mensagempor Raimundo Cruz » Sex Jan 27, 2017 8:59 pm

Boa noite, Ricardo,
Segui o caminho que voce indicou e foi so correr pro abraço!!!!!

Testa o status do serviço da NF-e

** Processo completado com sucesso

Ambiente: 1 - Production
Versão: AM3.10
Estado: 107 - Servico em Operacao
UF: 13
Data/Hora: 27/01/2017 19:30:09
Tempo Médio de Processamento: 1 minuto(s)

Aproveitei e fiz uma Nota Fiscal para testar o ambiente de produção e em seguida o cancelamento.
Os dois processos foram executados sem problemas.

Mais uma vez, muito obrigado Ricardo.

Um abraço,

Raimundo


Voltar para “Geral”

Quem está online

Usuários neste fórum: Nenhum usuário registrado e 2 visitantes