nfephp-org / sped-nfe

API para geração e comunicação das NFe com as SEFAZ autorizadoras
Other
1.22k stars 534 forks source link

Ambiente de emissão incorreto após iteração no timeout do soap #941

Closed gabrielpuzl closed 2 years ago

gabrielpuzl commented 2 years ago

Nota: para questões de suporte, use Google Groups https://groups.google.com/forum/#!forum/nfephp . Os problemas deste repositório são reservados para solicitações de recursos e relatórios de erros.

Comportamento esperado

O tpAmb deve permanecer o do construct

Comportamento Atual

O tpAmb é redefinido pelo padrão = 2

Passos para reproduzir

Contexto (Ambiente)

Após setar o timeout do soap, não foi mais possível emitir em produção. o XML gerado pela lib tinha o tpAmb = 1, porém sempre envia para o ambiente de homologação.

Descrição detalhada

Estava tendo alguns problemas com timeout do soap com a lib para emitir NF-e modelo 55. Após algumas pesquisas e testes, encontrei a issue https://github.com/nfephp-org/sped-nfe/issues/587 respondida pelo @robmachado.

Conforme a resposta do rob, uma solução rápida seria alterar o timeout do sopa, conforme:

$tools = new Tools($config, $certificate);
$tools->soap->timeout(40); //tempo para timeout em segundos

Porém ao definir o timeout do soap, a lib do sped-nfe volta a setar o tpAmb como 2, ao invés de manter "1" como setado anteriormente.

Solução encontrada utilizando recursos da biblioteca

Para mais informações, consulte o guia de CONTRIBUTING.

robmachado commented 2 years ago

Acredito que está havendo algum outro problema ai, pois as classes "soap" não interferem no ambiente (produção ou homologação). Apenas as classes "tools" interagem com esses parâmetros.

//carregar e configurar a classe soap
$soap = new SoapCurl($cert);
$soap->timeout = 60;
//carregar a classe tools
$tools = new Tools($configJson, $cert);
$tools->model = 55;
//carregar a classe soap a ser usada na comunicação
$tools->loadSoapClass($soap);
gabrielpuzl commented 2 years ago

No meu caso, eu instanciei a Tools primeiro, pode ter sido isso. Vou seguir seu exemplo e fazer mais testes

robmachado commented 2 years ago

Me avise, se o problema ocorrer novamente