1. Go to this page and download the library: Download ailos/sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ailos / sdk example snippets
// Homologação (padrão)
$sdk = new \Ailos\Sdk\AilosSdk(
clientCredentials: $clientCredentials,
cooperadoCredentials: $cooperadoCredentials,
environment: 'homologacao',
);
// Produção
$sdk = new \Ailos\Sdk\AilosSdk(
clientCredentials: $clientCredentials,
cooperadoCredentials: $cooperadoCredentials,
environment: 'producao',
);
use Ailos\Sdk\AilosSdk;
use Ailos\Sdk\Auth\Credentials\ClientCredentials;
use Ailos\Sdk\Auth\Credentials\CooperadoCredentials;
$clientCredentials = new ClientCredentials(
consumerKey: 'sua-consumer-key',
consumerSecret: 'seu-consumer-secret',
);
$cooperadoCredentials = new CooperadoCredentials(
urlCallback: 'https://sua-aplicacao.com.br/ailos/callback',
ailosApiKeyDeveloper: 'seu-uuid-developer',
codigoCooperativa: '0001',
codigoConta: '123456',
senha: 'senha-do-cooperado',
);
$sdk = new AilosSdk(
clientCredentials: $clientCredentials,
cooperadoCredentials: $cooperadoCredentials,
environment: 'homologacao',
);
// Inicia o fluxo de autenticação
// O JWT será enviado pela Ailos para a sua urlCallback
$sdk->authenticate();
// POST /ailos/callback
$sdk->callbackHandler()->handleFromGlobals();
// routes/api.php
use Illuminate\Http\Request;
Route::post('/ailos/callback', function (Request $request) {
$sdk->callbackHandler()->handleFromArray($request->all());
return response()->json(['message' => 'Autenticação concluída.']);
});
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
#[Route('/ailos/callback', methods: ['POST'])]
public function callback(Request $request): JsonResponse
{
$sdk->callbackHandler()->handleFromJson($request->getContent());
return $this->json(['message' => 'Autenticação concluída.']);
}
$app->post('/ailos/callback', function (Request $request, Response $response) use ($sdk) {
$sdk->callbackHandler()->handleFromArray((array) $request->getParsedBody());
$response->getBody()->write(json_encode(['message' => 'Autenticação concluída.']));
return $response->withHeader('Content-Type', 'application/json');
});
// POST /ailos/callback
// 1. Leia e processe o payload da forma que preferir
$body = json_decode(file_get_contents('php://input'), associative: true);
$jwt = $body['code'] ?? '';
$state = $body['state'] ?? '';
// 2. Lógica customizada antes de informar o JWT ao SDK
if ($state !== $_SESSION['ailos_state_esperado']) {
http_response_code(422);
echo json_encode(['error' => 'State inválido.']);
exit;
}
// 3. Informe o JWT ao SDK manualmente
$sdk->handleCallback($jwt);
if ($sdk->isAuthenticated()) {
// Retorna o JWT como string — renova automaticamente se necessário
$jwt = $sdk->getJwtValue();
// Use o JWT no header das suas requisições à API Ailos
$headers = [
'x-ailos-authentication: ' . $jwt,
];
}
$sdk->logout();
use Ailos\Sdk\Exceptions\AilosSdkException;
use Ailos\Sdk\Exceptions\AuthenticationException;
use Ailos\Sdk\Exceptions\InvalidCredentialsException;
use Ailos\Sdk\Exceptions\TokenExpiredException;
use Ailos\Sdk\Exceptions\HttpException;
try {
$sdk->authenticate();
} catch (InvalidCredentialsException $e) {
// Consumer Key, Consumer Secret ou dados do cooperado inválidos
echo 'Credenciais inválidas: ' . $e->getMessage();
} catch (TokenExpiredException $e) {
// Token expirou e não pode ser renovado — novo login necessário
echo 'Token expirado: ' . $e->getMessage();
} catch (AuthenticationException $e) {
// Falha genérica no fluxo de autenticação
echo 'Erro de autenticação: ' . $e->getMessage();
} catch (HttpException $e) {
// Falha na camada HTTP (timeout, erro 5xx, etc.)
echo 'Erro HTTP ' . $e->getStatusCode() . ': ' . $e->getMessage();
} catch (AilosSdkException $e) {
// Qualquer outro erro do SDK
echo 'Erro no SDK: ' . $e->getMessage();
}
try {
$sdk->callbackHandler()->handleFromArray($request->all());
} catch (AuthenticationException $e) {
// Payload inválido ou campo 'code' ausente
echo 'Erro no callback: ' . $e->getMessage();
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.