<?php
// Função para fazer a chamada cURL para o endpoint de login
function efetuarLogin($login, $senha) {
// URL do endpoint
$url = 'https://auto-gwsmartapi.linx.com.br/api-seguranca/Geral/Cadastros/Usuarios/EfetuarLogin';
// Dados para o corpo da requisição (body)
$data = [
'login' => $login,
'senha' => $senha,
'CodigoFilial' => '7.1',
'Encrypted' => false
];
// Converte os dados para o formato JSON
$json_data = json_encode($data);
// Headers da requisição
$headers = [
'Content-Type: application/json',
'Ocp-Apim-Subscription-Key: 5048f57a76774a00ab07aa3d01bdd8d0',
'Cache-Control: no-cache',
'AMBIENTE: 14749549000279-LAGEESCARABELIVEICULOS-PRODUCAO'
];
// Inicializa o cURL
$ch = curl_init();
// Configura as opções do cURL
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// --- INÍCIO DA CORREÇÃO ---
// Força o cURL a usar o protocolo TLS 1.2
curl_setopt($ch, CURLOPT_SSLVERSION, 6);
// A linha de SSL_CIPHER_LIST foi removida por ser incompatível com a sua versão do cURL.
// --- FIM DA CORREÇÃO ---
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Mantido para ambientes de teste
// Executa a requisição
$response = curl_exec($ch);
$curl_error = null;
if ($response === false) {
$curl_error = curl_error($ch); // Captura o erro específico do cURL
}
// Obtém o código de status HTTP
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Fecha a conexão cURL
curl_close($ch);
// Retorna o status, a resposta e o erro do cURL (se houver)
return [
'status' => $http_code,
'response' => $response,
'curl_error' => $curl_error // Novo valor retornado
];
}
$mensagem_resultado = '';
// Verifica se o formulário foi enviado
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$login_usuario = isset($_POST['login']) ? $_POST['login'] : '';
$senha_usuario = isset($_POST['senha']) ? $_POST['senha'] : '';
if (!empty($login_usuario) && !empty($senha_usuario)) {
$resultado = efetuarLogin($login_usuario, $senha_usuario);
if ($resultado['curl_error']) {
// Se houve um erro de conexão cURL, mostra ele
$mensagem_resultado = '<div class="error"><strong>Falha na Conexão!</strong><br>Erro cURL: ' . $resultado['curl_error'] . '</div>';
} elseif ($resultado['status'] == 200) {
// Se a conexão foi bem-sucedida e o status é 200
$mensagem_resultado = '<div class="success">Status 200: OK! Login efetuado e senha válida.</div>';
} else {
// Se a conexão foi bem-sucedida mas o status não é 200
$mensagem_resultado = '<div class="error">Status ' . $resultado['status'] . ': Usuário ou senha inválido.</div>';
}
} else {
$mensagem_resultado = '<div class="error">Por favor, preencha o login e a senha.</div>';
}
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Teste de Endpoint de Login</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f2f5;
}
.container {
background-color: #fff;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
width: 100%;
max-width: 400px;
}
h1 {
text-align: center;
color: #1c1e21;
margin-bottom: 1.5rem;
}
.form-group {
margin-bottom: 1rem;
}
label {
display: block;
margin-bottom: 0.5rem;
color: #606770;
font-weight: bold;
}
input[type="text"],
input[type="password"] {
width: 100%;
padding: 0.75rem;
border: 1px solid #dddfe2;
border-radius: 6px;
box-sizing: border-box;
}
button {
width: 100%;
padding: 0.75rem;
border: none;
border-radius: 6px;
background-color: #1877f2;
color: #fff;
font-size: 1.1rem;
font-weight: bold;
cursor: pointer;
transition: background-color 0.2s;
}
button:hover {
background-color: #166fe5;
}
.result {
margin-top: 1.5rem;
padding: 1rem;
border-radius: 6px;
text-align: center;
font-weight: bold;
}
.success {
background-color: #e7f3ff;
color: #1877f2;
border: 1px solid #bde0ff;
}
.error {
background-color: #ffebe8;
color: #c92a1e;
border: 1px solid #ffbdad;
}
</style>
</head>
<body>
<div class="container">
<h1>Teste de Login</h1>
<form method="POST" action="">
<div class="form-group">
<label for="login">Usuário:</label>
<input type="text" id="login" name="login" required>
</div>
<div class="form-group">
<label for="senha">Senha:</label>
<input type="password" id="senha" name="senha" required>
</div>
<button type="submit">Autenticar</button>
</form>
<?php if (!empty($mensagem_resultado)): ?>
<div class="result">
<?php echo $mensagem_resultado; ?>
</div>
<?php endif; ?>
</div>
</body>
</html>