Closed edgarmirandasilva closed 1 year ago
pois quando tento fazer o OpenCompany
$this->autoRender = false; $urlEmpresa = 'http://yyyyyyyy/erpv22/api/Shell/OpenCompany/';
$empresaData = array(
'reabertura' => true,
'mostrarJanelaIniSessao' => false,
'codEmpresa' => 'codempresa',
'codExercicio' => '2023',
'codSeccao' => '20'
);
// Converter os dados em formato JSON
$jsonEmpresaData = json_encode($empresaData);
// Configurar a requisição cURL para abrir a empresa
$chEmpresa = curl_init($urlEmpresa);
curl_setopt($chEmpresa, CURLOPT_POST, true);
curl_setopt($chEmpresa, CURLOPT_POSTFIELDS, $jsonEmpresaData);
curl_setopt($chEmpresa, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($chEmpresa, CURLOPT_RETURNTRANSFER, true);
// Executar a requisição para abrir a empresa
$responseEmpresa = curl_exec($chEmpresa);
// Verificar se houve algum erro na requisição
if (curl_errno($chEmpresa)) {
echo 'Erro na requisição cURL para abrir a empresa: ' . curl_error($chEmpresa);
} else {
// Decodificar a resposta JSON
$resultEmpresa = json_decode($responseEmpresa, true);
// Verificar se a abertura da empresa foi bem-sucedida
if ($resultEmpresa['sucesso'] == true) {
echo $responseEmpresa;
} else {
echo 'Falha ao abrir a empresa, trate o erro:<br>' ;
var_dump($resultEmpresa);
}
}
// Fechar a conexão cURL para abrir a empresa
curl_close($chEmpresa);
Falha ao abrir a empresa, trate o erro: array(4) { ["Message"]=> string(22) "An error has occurred." ["ExceptionMessage"]=> string(77) "A referência de objecto não foi definida como uma instância de um objecto." ["ExceptionType"]=> string(29) "System.NullReferenceException" ["StackTrace"]=> string(1696) " em Eticadata.Services.Admin.ShellController.OpenCompany(OpenEmpresaInfo prm) em lambda_method(Closure , Object , Object[] ) em System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.b2(Object instance, Object[] methodParameters) em System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) em System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken) --- Fim do rastreio da pilha da localização anterior em que a excepção foi emitida --- em System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) em System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) em System.Web.Http.Controllers.ApiControllerActionInvoker.d1.MoveNext() --- Fim do rastreio da pilha da localização anterior em que a excepção foi emitida --- em System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) em System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) em System.Web.Http.Controllers.ActionFilterResult.d5.MoveNext() --- Fim do rastreio da pilha da localização anterior em que a excepção foi emitida --- em System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) em System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) em System.Web.Http.Dispatcher.HttpControllerDispatcher.d15.MoveNext()" }
Tem de manter todos os cookies que vem nos endpoint anteriores. Veja o script de postman, onde poderá ver os métodos de autenticação.
Já consegui abrir empresa e tenho os cookies recebidos: .ETI_AV22= .ETI_IV22=
Muito obrigado pela ajuda
//Login e autenticação Eticadata, tou na duvida quanto aos cookies