S’authentifier
L'authentification se fait en mode OAuth2. Vous devez avoir un compte technique d'accès au Back Office Marchand.
- Connectez-vous au Back Office Marchand avec vos propres identifiants d'accès.
- En haut et à droite de l'écran, faites apparaître le menu déroulant sous votre nom, et cliquez sur Paramètres.
- Cliquez sur l'onglet Clé API, pour récupérer vos clés pour les environnements de test et de production.
- Pour générer un jeton d'authentification, effectuez une requête
POST à l'adresse suivante :
https://account.lyra.com/auth/realms/marketplace/protocol/openid-connect/token
Il s’agit de la même adresse pour les deux environnements.
- Utilisez les paramètres suivants au format application/x-www-form-urlencoded :
- grant_type: client_credentials
- client_id: <CLIENT_ID>
- client_secret: <CLIENT_SECRET>
- Vous pouvez maintenant créer une requête qui récupérera les
informations de votre marketplace de test. Pour cela :
- Copiez le jeton d'authentification (access_token) dans le header Authorization: Bearer {access_token}
- Envoyez votre requête à l'adresse de l'environnement
https://secure.lyra.om/marketplace-test/v1/marketplaces/{marketplace_uuid}
Exemple :
https://secure.lyra.com/marketplace-test/v1/marketplaces/57595c55-b096-41d8-9287-b98640de3f25
Le jeton d'authentification a une durée de vie de 5 minutes, et notez que le refresh token n'est pas utilisé dans le cadre de la marketplace.Vous devez mettre en place une méthode allant récupérer un nouveau jeton au maximum toutes les 300 secondes (cf. exemple en PHP ci-dessous)
Une requête soumise avec un jeton d'authentification expiré sera rejetée avec un code HTTP 307.
Exemple d'obtention du jeton d'authentification en PHP
<?php require 'vendor/autoload.php'; use GuzzleHttp\Client; $MARKETPLACE_UUID = "57595c55-b096-41d8-9287-b98640de3f25"; $USERNAME = 'ksparkles'; $CLIENT_ID = $USERNAME."_".$MARKETPLACE_UUID; $CLIENT_SECRET = "e0d999f6-01d8-4ef9-8f9b-0fc5fa08f1a5"; $AUTH_URL = "https://account.lyra.com/auth/realms/marketplace/protocol/openid-connect/"; $API_URL = "https://secure.lyra.com/marketplace-test/v1/"; session_start(); function getAccessToken() { global $AUTH_URL, $CLIENT_ID, $CLIENT_SECRET; $expire_next = $_SESSION['expires_next']; if (!$_SESSION['token'] || !$expire_next || time() >= $expire_next - 2) { $client = new Client(["base_uri" => $AUTH_URL]); $response = $client->request('POST', 'token', ['form_params' => [ 'grant_type' => 'client_credentials', 'client_id' => $CLIENT_ID, 'client_secret' => $CLIENT_SECRET ]] ); $body = $response->getBody(); $data = json_decode($body->getContents()); $_SESSION['token'] = $data->access_token; $_SESSION['expires_next']= time() + $data->expires_in; } return $_SESSION['token']; } function getMarketplaceDetails() { global $API_URL, $MARKETPLACE_UUID; $token = getAccessToken(); $client = new Client(["base_uri" => $API_URL]); $response = $client->request('GET', "marketplaces/$MARKETPLACE_UUID", ['headers' => ['Authorization' => "Bearer $token"]] ); $body = $response->getBody(); return $body->getContents(); } echo getMarketplaceDetails();