nfephp-org/sped-efdreinf

Erro ao gerar evento R-4020

Closed this issue · 4 comments

Boa tarde!

Estou tentando gerar o evento R-4020 e está me retornando o erro abaixo.

Fatal error: Declaration of NFePHP\EFDReinf\Common\Soap\SoapBase::proxy($ip, $port, $user, $password) must be compatible with NFePHP\EFDReinf\Common\Soap\SoapInterface::proxy(string $ip, int $port, string $user, string $password) in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf\src\Common\Soap\SoapCurl.php on line 24

Sabem dizer o que pode ser?
Grato!

Acho que identifiquei algo que possa ajudar.

Se mando o serviceVersion 1_00_00 retorna o erro abaixo:

Fatal error: Uncaught NFePHP\Common\Exception\ValidatorException: Este XML não é válido. Element '{http://www.reinf.esocial.gov.br/schemas/envioLoteEventos/v1_00_00}Reinf': No matching global declaration available for the validation root. in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-common\src\Exception\ValidatorException.php:22 Stack trace: #0 C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-common\src\Validator.php(47): NFePHP\Common\Exception\ValidatorException::xmlErrors(Array) #1 C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf\src\Tools.php(690): NFePHP\Common\Validator::isValid('<Reinf xmlns="h...', 'C:\xampp\htdocs...') #2 C:\xampp\htdocs\efdReinfBaseTeste_evento\ToolsAtm.php(268): NFePHP\EFDReinf\Tools->enviarLoteEventos(3, Array) #3 C:\xampp\htdocs\efdReinfBaseTeste_evento\gerarEventos.php(79): ToolsAtm->envioLote() #4 {main} thrown in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-common\src\Exception\ValidatorException.php on line 22

Se eu mandar o serviceVersion como 2_01_02, retorna o seguinte erro:

Warning: scandir(C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf/schemes/comunicacao/v2_01_02/,C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf/schemes/comunicacao/v2_01_02/): The system cannot find the file specified. (code: 2) in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf\src\Common\XsdSeeker.php on line 30

Warning: scandir(C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf/schemes/comunicacao/v2_01_02/): failed to open dir: No such file or directory in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf\src\Common\XsdSeeker.php on line 30

Warning: scandir(): (errno 2): No such file or directory in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf\src\Common\XsdSeeker.php on line 30

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf\src\Common\XsdSeeker.php on line 31

Warning: DOMDocument::schemaValidate(): Invalid Schema in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-common\src\Validator.php on line 42

Fatal error: Uncaught NFePHP\Common\Exception\ValidatorException: Este XML não é válido. failed to load external entity "file:/C:/xampp/htdocs/efdReinfBaseTeste/vendor/nfephp-org/sped-efdreinf/schemes/comunicacao/v2_01_02/" Failed to locate the main schema resource at 'C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf/schemes/comunicacao/v2_01_02/'. in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-common\src\Exception\ValidatorException.php:22 Stack trace: #0 C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-common\src\Validator.php(47): NFePHP\Common\Exception\ValidatorException::xmlErrors(Array) #1 C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf\src\Tools.php(690): NFePHP\Common\Validator::isValid('<Reinf xmlns="h...', 'C:\xampp\htdocs...') #2 C:\xampp\htdocs\efdReinfBaseTeste_evento\ToolsAtm.php(268): NFePHP\EFDReinf\Tools->enviarLoteEventos(3, Array) #3 C:\xampp\htdocs\efdReinfBaseTeste_evento\gerarEventos.php(79): ToolsAtm->envioLote() #4 {main} thrown in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-common\src\Exception\ValidatorException.php on line 22

Qual seria o valor correto para o serviceVersion?

Obs.: O erro que abri o issue ocorreu quando informei 1_05_01 no serviceVersion

Parceiro, você está declarando algum PROXY na conexão SOAP.
Eu não faço a menor ideia do que você está fazendo ai !!
E nem posso te ajudar pois não uso RUINDOWS a mais de 30 anos !

O evento R-4020 só existe a partir da versão 2_01_01 e tem exemplo na pasta examples/Fake/V2_01_01/Fake_R4020_EvtRetPJ.php

Esse exemplo serve para você validar os dados e ver como fica o evento em si

NOTA: todos os eventos do exemplo foram testados e estão em funcionamento

O exemplo de envio FaketestEnvia.php é ta visualizar a estrutura do SOAP sendo encaminhado e pode ser ajustado para fazer um envio verdadeiro aos webservices

Bom dia Roberto!

Grato pelos retornos!

Só me tira uma dúvida que aí vou tentar me achar por aqui.
O verProc, eventoVersion e serviceVersion que deve ser utilizado para enviar esses eventos é conforme está na pasta examples/Fake/V2_01_01/Fake_R4020_EvtRetPJ.php ?

'verProc' => '0_2_1_2', //Versão do processo de emissão do evento. Informar a versão do aplicativo emissor do evento.
'eventoVersion' => '2_01_02', //versão do layout do evento
'serviceVersion' => '1_00_00', //versão do webservice