Blog

Dicas e Solução de problemas

Problemas de comunicação

A comunicação entre a aplicação e a SEFAZ é feita através de HTTPS, com autenticação mútua. A comunicação pode ser feita na camada servidor (Tomcat/Webrun) ou na camada cliente através de Applet ou Agente. Havendo problemas de comunicação faça os seguintes testes:

  1. Considere INSTABILIDADE entre a rede local, e o destino final. A Internet é uma rede que pode sofrer interferência ou falhas pontuais em qualquer ponto (nó) da rede. Alguns erros que normalmente aparecem no Java quando a Internet falha:
    • “Connection timed out”;
    • “Read timed out”;
  2. Atualize o Java do Tomcat/Webrun e/ou configure o Java, quando acontecer algumas dessas mensagens:
    • “Connection reset”;
    • java.net.ConnectException;
    • java.net.SocketTimeoutException.
  3. Verifique se o serviço da SEFAZ correspondente está funcionando corretamente: http://www.nfe.fazenda.gov.br/portal/disponibilidade.aspx?versao=2.00&tipoConteudo=Skeuqr8PQBY=
  4. Teste a comunicação entre o navegador e a SEFAZ:
    1. O teste deverá ser feito no navegador do cliente, se for usado na camada cliente, ou no servidor onde o Webrun estiver sendo exevutado se estiver na camada servidor;
    2. Obtenha o endereço atual do serviço de consulta a situação de sua UF: http://www.nfe.fazenda.gov.br/portal/WebServices.aspx (Por exemplo: https://nfe.sefaz.pe.gov.br/nfe-service/services/NFeStatusServico4 );
    3. Abre este endereço através do navegador (O certificado e-CNPJ será solicitado);
    4. Verifique se o site abre, caso não abra o certificado está com problemas, ou não foi corretamente instalado no navegador);
    5. Caso o site carregue normalmente confirme se o mesmo está usando proxy, se estiver repita o procedimento com o proxy desabilitado;
    6. Se funcionar somente com o proxy, configure o proxy no Webrun (se for camada servidor) ou no Java (se for camada cliente). As isntruções sobre cada ambiente deve ser obtidas junto aos respectivos fabricantes;
  5. Verifique se um firewall não está bloqueando o acesso:
    1. Desligue qualquer firewall ou Anti-Spyware e repita os testes;
    2. Se tudo der certo verifique as instruções para configurar uma exceção junto ao fornecedor;
    3. O firewall/proxy não necessariamente precisam estar desligados, mas os endereços da SEFAZ devem estar disponíveis/liberados.
  6. Indisponibilidade da SEFAZ
    1. Eventualmente os serviços da SEFAZ podem ficar indispoíveis para manutenção programado ou por eventos insperados, consulte sempre a situação dos WebServices.

Certificado expirado ou não válido

A comunicação com o servidor da SEFAZ só pode ser feita através de um certificado e-CNPJ dentro do período de validade. Essas informações podem ser consultadas através da API usando a função “SEFAZ – Obter dados do certificado“, ou externamente importando o certificado para ao navegador (se for A1, duplo-clique no arquivo), ou através do programa do fornecedor do token (A3).

DICA: Observe sempre a data inicia e final de validade do certificado. Certificados novos costumam ser válidos a partir do dia seguinte a sua emissão.

  1. Erro de senha ou certificado inválido/corrompido normalmente: “java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded”.
    • Verifique se a senha está correta;
    • Verifique se o arquivo com o certificado está integro (DICA: Importe o PFX no Windows).

URL não disponível

  1. Definição não disponível. Quando houver uma mensagem de erro parecida com esta:

    A definição do item ‘XYZ‘ da requisição para o método ‘ABCDEF‘, para a UF ‘XX‘, no ambiente ‘1‘, e versão ‘1.01

    1. Observe se a UF disponibiliza este serviço, consultando site oficial da SEFAZ (http://www.nfe.fazenda.gov.br/portal/WebServices.aspx);
    2. Caso a URL exista verifique se você está com a versão mais atual da API, novos serviços são adicionados e/ou removidos pelas SEFAZ com o passar do tempo, atualizações na API refletem essas alterações.
    3. A configuração da URL podem ser feitas independente da atualização da API.

Problemas com Ms-Capi

  1. Nome do certificado não encontrado “Falha ao tentar ler o certificado.“, ou falha ao tentar assinar “ERRO: signingKey cannot be null“.
    Normalmente ocorre quando o certificado está instalado no Windows com um nome diferente do que você espera. Ou existe um certificado antigo para o mesmo CNPJ ou CPF.
    Para resolver confirme os certificados instalados no Windows. Para abrir a lista de certificados do Windows vá em Iniciar -> Executar e digite “certmgr.msc“, e execute. Uma tela parecida com a exibida abaixo será mostrada, na lista de certificados pessoais você poderá ver os certificados e o nome amigável de cada um.Consultado os certificados do Windows
  2. Erro da versão do Java,  “java.security.KeyStoreException: MY not found at…”. O suporte ao MsCapi só está disponível no Java  ou mais recente. Instale/Atualize o Java e tente novamente. Importante a maioria das versões do Webrun usa por padrão o Java 1.5. Neste caso será necessário atualizar para a versão do Java 6 ou mais recente.
  3. Erro: “java.lang.NullPointerException: signingKey cannot be null“, normalmente ocorre quando um outro certificado (vencido) com mesmo nome está instalado na máquina. Abra as configurações de certificados do navegador e exclua os certificado vencido;
  4. Incompatibilidade do Java com o “DSGEProvider.jar”, neste caso, ele consegue retornar os dados básicos do certificado (função: “SEFAZ – Obter dados do certificado“), mas não consegue assinar ou transmitir via HTTPS. Para resolver basta deletar esse arquivo “DSGEProvider.jar” da pasta do Agente.

Leave a comment