Instabilidade Soap / Sefaz

234 views
Skip to first unread message

Eng Helder Ferreira.

unread,
Aug 30, 2022, 3:05:44 PM8/30/22
to nfe...@googlegroups.com
An error occurred while trying to communication via soap,  Empty reply from server [https://nfe.fazenda.sp.gov.br/ws/nfeautorizacao4.asmx]
An error occurred while trying to communication via soap,  Operation timed out after 40001 milliseconds with 0 bytes received [https://nfe.fazenda.sp.gov.br/ws/nfeautorizacao4.asmx]

Ontem 29/08/2022 en torno de 16:00 horas , ocorreu um erro estranho e meu sistema mostrou que houve erro e ficou como se não tivesse enviado o XML e então não tinha o número do recibo da sefaz e acabou que enviou a nota (XML) novamente e deu erro de duplicidade da nfe(204)
Fiquei sem conseguir recuperar o protocolo.
Mas fui pelo desktop colei o numero da NFe e consegui descobrir que a nota está protocolada e validada e o cliente ja tinha até manifestado a NFe.
Baixei o XML do Sefaz e coloquei no lugar certo do sistema .
Hoje aconteceu novamente mas com os erros postados acima tempo de conexão com mais de 40001 milisegundos.
Fui direto no site do sefaz e a nota estava validada e protocolada. ai tive de baixar o XML protocolado do sefaz.

Alguem tem uma ideia de como contornar este erro utilizando apenas o sistema, para evitar a duplicidade da NFe ?
antes de enviar uma nota nova consulto pelo numero ? 

Grato Helder
 

Roberto Machado

unread,
Aug 30, 2022, 5:47:44 PM8/30/22
to nfe...@googlegroups.com
Amplie o tempo de timeout

    $certificate = Certificate::readPfx($content, 'senha');
   
    $soap = new SoapCurl($certificate);
    $soap->timeout = 40; //coloque maior que 20 que é o default, o timeoutllimit = timeout + 20  = 40 segundos em default


    $tools = new Tools($configJson, $certificate);
    $tools->model('55'); //alterna entre modelo 55 e 65
    $tools->loadSoapClass($soap);

Cuidado ! com esse tempo se for muito grande pode ocorrer outro tipo de falha no seu sistema.

Roberto

Roberto Machado

unread,
Aug 30, 2022, 5:54:35 PM8/30/22
to nfe...@googlegroups.com
Existem formas melhores para lidar com timeout das SEFAZ !! sem mexer no tempo de timeout, mas dependem da lógica do sistema e dos recursos disponíveis.

As SEFAZ podem estar demorando de 1 à ??? segundos e isso é um grande problema se deixar o timeout muito grande a conexão ficará retida até expirar o tempo, ou até a sefaz retornar a resposta.
Em casos de instabilidade pode até NUNCA retornar a resposta !! então o timeout ainda irá ocorrer mesmo depois de ??? segundos !!!!

Quando temos um timeout ou um problema de comunicação a biblioteca retorna um erro e dependendo do erro outras ações podem ser disparadas. 

Roberto

Pablo Pereira

unread,
Aug 30, 2022, 6:27:57 PM8/30/22
to nfe...@googlegroups.com
Boa noite Helder.
Exitem diversas maneiras de contornar isso, aumento do timeout, jobs etc.
Aqui eu tenho um job que monitora os envios.
Se o arquivo não foi enviado eu envio.
Se retorno ok, tudo ok
Senão eu consulto a chave na Sefaz, se o retorno for ok eu atualizo os dados necessários da aplicação, se não existe na Sefaz eu reenvio (mesma chave) para não ter erro de duplicidade de chave.

Então o job é o responsável de envio, consulta e reenvio se necessário.

Mas tem que ver a melhor opção no seu caso.
 

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
You received this message because you are subscribed to the Google Groups "NFePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nfephp+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nfephp/CA%2BiM3pHr98%3Dct1P%2BjkYxd-4Ji%2Bxe8F8XyMnxhZYaksMQxdYAVA%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages