Prise en main

Présentation

L’API Xsolla comprend :

L’API Xsolla est basée sur l’architecture REST. Ses URL sont conçues de manière prévisible, orientées ressources, et utilisent des codes de réponse HTTP pour signaler les erreurs de l’API. L’API répond toujours au format JSON, y compris en cas d’erreur.

L’API utilise des fonctions HTTP intégrées telles que l’authentification HTTP et les verbes HTTP, qui peuvent être interprétées par des clients HTTP standard. Elle prend également en charge le partage de ressources inter-origines, ce qui vous permet d’y accéder en toute sécurité à partir d’une application Web cliente.

L’API Xsolla utilise les chemins d’endpoints suivants :
  • https://api.xsolla.com — Pay Station API, Subscriptions API ;
  • https://login.xsolla.com/api — Login API ;
  • https://store.xsolla.com/api — IGS API.
La plupart des chemins d’endpoints incluent le paramètre merchant_id. Cela indique que l’application requérante s’exécute en votre nom.

Requêtes et réponses

Les requêtes adressées à l’API Xsolla doivent :
  • être envoyées via HTTPS ;
  • utiliser TLS 1.2 ou ou versions ultérieures ;
  • contenir les paramètres d’authentification ;
  • contenir un en-tête supplémentaire : Content-Type: application/json pour les requêtes PUT et POST.
Copy
Full screen
Small screen
    Authorization: Basic <your_authorization_basic_key>
    Content-Type: application/json
    

    Par défaut, toutes les requêtes renvoient une réponse contenant des données JSON dans le corps et Content-Type: application/json dans l’en-tête.

    Modifications de l'API

    Xsolla peut modifier la fonctionnalité de l’API comme suit :
    • Ajouter de nouvelles ressources API ;
    • Ajouter des paramètres de requête facultatifs ;
    • Ajouter de nouvelles propriétés aux réponses API existantes ;
    • Ajouter de nouvelles valeurs pour les paramètres existants avec des valeurs énumérables ;
    • Ajouter de nouveaux types de webhook et de paramètres JSON ;
    • Ajouter des en-têtes de requête HTTP facultatifs ;
    • Rejeter toute requête dans laquelle des paramètres valides contiennent des valeurs non valides ;
    • Rejeter les requêtes mal formées qui ont été acceptées précédemment en raison d’une analyse laxiste, si la logique d’analyse est modifiée ;
    • Ajouter, modifier ou supprimer des fonctionnalités non documentées à tout moment.
    Votre client doit rester fonctionnel indépendamment de ces modifications. Par exemple, les nouveaux paramètres JSON qui ne sont pas reconnus par votre client ne doivent pas entraver son fonctionnement normal.

    Versionnage

    Toutes les méthodes API Xsolla prennent en charge le versionnage. Nous publierons une nouvelle version chaque fois qu’il y aura des changements incompatibles avec la version actuelle. La version est identifiée par « v1 »/« v2 »/etc. après le préfixe « /merchant » dans l’URL. Si vous utilisez l’API pour la première fois, utilisez la dernière version. Par défaut, nous utiliserons la première version, si aucune version n’est indiquée.
    Note
    N’oubliez pas que nous ne pouvons garantir l’intégrité de l’API qu’à l’intérieur d’une même version.

    Authentification

    L’API Xsolla utilise les types d’authentification suivants :
    • Authentification d’accès de base. Ces requêtes à l’API doivent contenir l’en-tête Authorization: Basic <your_authorization_basic_key<, où <your_authorization_basic_key> est la paire merchant ID:API key, encodée selon la norme Base64. Accédez au Compte éditeur pour trouver ces paramètres :
      • Le Merchant ID est affiché :
        • Dans la section Company settings > Company ;
        • Dans l’URL de la barre d’adresse du navigateur sur n’importe quelle page du Compte éditeur. L’URL est au format suivant : https:​//publisher.xsolla.com/<merchant ID>/<Publisher Account section>.
      • L’API key ne s’affiche dans le Compte éditeur qu’une seule fois lors de sa création, vous devez donc la conserver de votre côté. Vous pouvez créer une nouvelle clé dans les sections suivantes :
        • Company settings > API keys ;
        • Project settings > API keys.
    • Authentification par JWT utilisateur. Ces requêtes à l’API doivent contenir l’ en-tête Authorization: Bearer <user_JWT>, où <user_JWT> est le jeton de l’utilisateur.
    • Authentification par JWT serveur. Ces méthodes API doivent contenir l’en-tête X-SERVER-AUTHORIZATION: <server_JWT>, où <server_JWT> est le jeton du serveur.
    • Sans authentification.
    Avis

    Pour plus d’informations sur l’utilisation des clés API, consultez la référence API.

    Recommandations principales :

    • Enregistrez la clé API générée de votre côté. Lors de sa création dans le Compte éditeur, la clé API ne s’affiche qu’une seule fois.
    • Gardez votre clé API secrète. Elle donne accès à votre compte personnel et à vos projets dans le Compte éditeur.
    • Stockez la clé API sur votre serveur et non dans des fichiers binaires ou sur le client.

    Si l’appel API nécessaire ne contient pas le paramètre de chemin project_id, utilisez la clé API valide dans tous les projets de l’entreprise pour l’autorisation.

    Appels API par modèle d'interaction

    Lors de l’intégration des produits Xsolla via l’API Xsolla, il est important d’utiliser les appels API conformément à leur usage prévu :
    • Appels API côté client — Ces appels API servent à l’interaction entre la partie client de l’application du partenaire et le serveur Xsolla. Les actions de l’utilisateur sur le client initient la requête de ces appels API. Exemples d’appels API côté client : récupération d’une liste d’objets, authentification utilisateur, obtention d’un jeton de paiement sur le client.
    • Appels API côté serveur — Ces appels API servent à l’interaction entre le serveur du partenaire et le serveur Xsolla. Ils sont destinés aux tâches suivantes :
      • Implémentation du flux utilisateur
        Les actions de l’utilisateur sur le client déclenchent l’invocation d’un appel API côté client du partenaire, puis un appel API côté serveur Xsolla est invoqué sur le serveur du partenaire. Exemples d’appels API côté serveur pour l’implémentation du flux utilisateur : mise à jour des attributs utilisateur sur le serveur, obtention d’un jeton de paiement sur le serveur.
      • Tâches administratives ou configuration des produits Xsolla par le partenaire
        Les actions de l’utilisateur sur le client ne peuvent pas initier un appel à ces méthodes. Exemples d’appels API côté serveur pour les tâches administratives : création et modification d’un objet ou d’une promotion.
    Une intégration correctement configurée permet d’éviter les erreurs les plus courantes :
    Côté clientCôté serveur
    Pour l’implémentation du flux utilisateurPour les tâches administratives
    InteractionClient-serveur.
    La requête est envoyée du client du jeu directement au serveur Xsolla.
    Serveur-serveur.
    La requête est envoyée du client du jeu au serveur du jeu, puis du serveur du jeu au serveur Xsolla.
    Serveur-serveur.
    La requête est envoyée du serveur du système du partenaire au serveur Xsolla.
    AuthentificationJSON Web Token (JWT) de l’utilisateur ou sans authentification.Authentification d’accès de base ou JWT serveur.Authentification d’accès de base.
    Limites de fréquencePeut supporter une charge élevée.Peut supporter une charge élevée.Ces appels API, destinés exclusivement aux partenaires, sont soumis à des exigences de performance modestes et à des limites de fréquence strictes.
    Accès utilisateurLes appels API s’utilisent côté client, permettant un affichage rapide des données à l’utilisateur. Par exemple, pour l’affichage d’un catalogue des objets ou des attributs utilisateur, comme le nombre d’achats ou le niveau dans le jeu.
    Toutes ces données sont librement accessibles dans le code du client.
    N’utilisez pas ces appels API pour traiter des données que l’utilisateur ne peut pas modifier, comme pour mettre à jour des attributs utilisateur.
    Les appels API servent à l’interaction entre les serveurs, empêchant ainsi l’utilisateur d’accéder aux données.
    Utilisez ces appels API pour traiter des données que l’utilisateur ne peut pas modifier.
    Les appels API ne sont pas utilisés pour implémenter le flux utilisateur.
    Détermination du pays et de la deviseLe pays et la devise sont déterminés par l’adresse IP du client à partir de laquelle la requête est envoyée.
    Par conséquent, il est important d’utiliser ces appels API côté client, et non côté serveur.
    Le pays et la devise sont déterminés par l’adresse IP du serveur à partir duquel la requête est envoyée.

    Par conséquent, il est important de passer les données relatives au pays/à la devise de l’utilisateur dans l’en-tête ou le paramètre, selon la description de l’appel API utilisé.
    Les appels API ne sont pas utilisés pour implémenter le flux utilisateur.

    Le schéma d’authentification permet de déterminer si un appel API est effectué côté client ou côté serveur :

    • Les appels API côté client s’utilisent sans authentification ou avec l’en-tête Authorization header: Bearer <user_JWT>, où <user_JWT> est le jeton utilisateur.
    • Les appels API côté serveur pour l’implémentation du flux utilisateur s’utilisent avec l’en-tête :
      • X-SERVER-AUTHORIZATION: <server_JWT>, où <server_JWT> est le jeton de serveur ;
      • Authorization: Basic <your_authorization_basic_key>, où <your_authorization_basic_key> est la paire project_id:api_key encodée selon la norme Base64.
    • Les appels API côté serveur pour les tâches administratives s’utilisent avec l’en-tête Authorization: Basic <your_authorization_basic_key>, où <your_authorization_basic_key> est la paire project_id:api_key encodée selon la norme Base64.

    Exemple d’appel API côté serveur avec authentification côté serveur :

    Exemple d’appel API côté client avec authentification côté client :

    En fonction de vos besoins, vous pouvez choisir de configurer l’intégration lors de l’implémentation du flux utilisateur avec des appels API côté serveur ou côté client. Les appels API côté serveur pour les tâches administratives ne doivent pas être utilisés pour implémenter le flux utilisateur.

    Exemple d’implémentation du flux utilisateur à l’aide d’appels API côté client :

    1. L’utilisateur effectue des actions sur le client. Par exemple : remplir le panier, acheter un objet.
    2. Le client du jeu envoie une requête avec des données au serveur Xsolla.
    3. Le serveur Xsolla envoie une réponse au client du jeu.
    4. Le client du jeu affiche le résultat à l’utilisateur.

    Dans ce flux, l’authentification par JWT est utilisée.

    Exemple d’implémentation d’un flux utilisateur à l’aide d’appels API côté serveur :

    1. L’utilisateur effectue des actions sur le client. Par exemple : remplir le panier, acheter un objet.
    2. Le client du jeu envoie une requête au serveur du jeu.
    3. Si nécessaire, le partenaire implémente un traitement supplémentaire des données sur le serveur du jeu.
    4. Le serveur du jeu envoie une requête au serveur Xsolla.
    5. Le serveur Xsolla envoie une réponse au serveur du jeu.
    6. Le serveur du jeu traite les données et envoie une réponse au client du jeu.
    7. Le client du jeu affiche le résultat à l’utilisateur.

    Dans ce flux, l’authentification d’accès de base ou un jeton de serveur est utilisé.

    Flux d’interaction lors de l’utilisation des appels API côté serveur pour les tâches administratives :

    1. Le partenaire envoie une requête au serveur Xsolla à partir du client ou du serveur de son application.
    2. Le serveur Xsolla renvoie une réponse contenant le résultat du traitement de la requête.
    Dans ce flux, l’authentification d’accès de base est utilisée.

    Types d'endpoints

    Le type d’endpoint indique le type de données qu’il traite et l’action qu’il effectue sur ces données. Les actions les plus courantes sont les suivantes :
    ActionMéthode HTTPDescription
    CréerPOSTCrée et enregistre une entité du type spécifié.
    ListeGETRenvoie une liste d’entités correspondant à la requête. Pour obtenir des détails sur une entité, il faut d’abord trouver son ID en utilisant l’endpoint Liste correspondant, puis fournir cet ID à l’endpoint Récupérer correspondant.
    RécupérerGETFournit des informations sur l’entité dont l’ID est spécifié.
    RemplacerPUTModifie tous les champs de l’entité dont l’ID est spécifié.
    Mettre à jourPATCHModifie les champs spécifiés de l’entité avec l’ID spécifié.
    SupprimerDELETESupprime l’entité avec l’ID spécifié.

    Format de la date

    Toutes les dates sont spécifiées sous forme de chaînes de caractères conformément à la norme ISO 8601. Vous pouvez spécifier des chaînes de dates soit en UTC (par exemple, 2013-01-15T00:00:00Z), soit en indiquant le décalage UTC (par exemple, 2013-01-15T00:00:00-08:00 pour huit heures de décalage par rapport à UTC). Dans ce dernier cas, veillez à tenir compte de l’heure d’été, le cas échéant.

    Pagination

    Les endpoints Liste peuvent paginer les résultats renvoyés. Cela signifie qu’au lieu de renvoyer tous les résultats dans une seule réponse, ces endpoints peuvent renvoyer certains résultats, accompagnés d’un en-tête de réponse pointant vers la série de résultats suivante. Pour ce faire, nous utilisons les paramètres offset et limit.

    Gestion des erreurs

    Liste des erreurs HTTP prises en charge :
    • 200, 201, 204 — Pas d’erreur ;
    • 400 Bad Request — Cela indique souvent l’absence d’un paramètre requis. Reportez-vous au corps de la réponse pour plus de détails ;
    • 401 Unauthorized — Clé API valide non fournie ;
    • 402 Request Failed — La requête a échoué malgré des paramètres valides ;
    • 403 Forbidden — Aucuns droits d’accès. Reportez-vous au corps de la réponse pour plus de détails ;
    • 404 Not Found — L’élément demandé n’existe pas ;
    • 409, 422 — Paramètres de requête non valides ;
    • 412 Precondition Failed — Le projet n’a pas encore été activé (utilisé dans la méthode Créer un jeton) ;
    • 415 Unsupported Media Type — Content-Type: application/json manquant dans l’en-tête HTTP ;
    • 500, 502, 503, 504 Server Errors — Un problème est durvenu.
    Xsolla utilise les codes de réponse HTTP conventionnels pour indiquer si la requête API a abouti. En général, 2xx indique un succès, 4xx indique une erreur dans les informations fournies (par exemple, un paramètre requis manquant, une autorisation échouée, etc.) et 5xx indique un problème avec les serveurs Xsolla. Mais toutes les erreurs ne correspondent pas parfaitement aux codes de réponse HTTP. Par exemple, si une requête était valide mais a échoué, l’API renvoie le code d’erreur 422. Toutes les réponses d’erreur de l’API fournissent un objet JSON comprenant les champs suivants :
    NomTypeDescription
    http_status_codeintegerCode HTTP.
    messagestringUn message lisible par l’homme décrivant l’erreur. Ce message est toujours en anglais. Ne vous fiez pas à cette valeur pour une erreur particulière, car elle pourrait changer à l’avenir.
    extended_messagestringDescription plus détaillée de l’erreur.
    request_idstringID unique de la requête qui peut être utilisé pour la résolution des problèmes.
    Copy
    Full screen
    Small screen
    {
        "http_status_code": 500,
        "message": "Internal Server Error",
        "extended_message": null,
        "request_id": "6445b85"
    }
    

    Limites de fréquence

    Informations générales

    Pour éviter de surcharger les systèmes Xsolla et les protéger contre les rafales de trafic entrant, Xsolla limite le nombre de requêtes reçues par l’API Xsolla au cours d’une période donnée. Si la limite est dépassée, l’API Xsolla renvoie une réponse HTTP avec le code d’état 429. Les limites varient en fonction de la méthode, du projet et d’autres facteurs. Les limites actuelles sont régulièrement mises à jour afin de garantir le fonctionnement stable et ininterrompu des systèmes Xsolla. Dans certains cas, il est possible d’adapter les limites spécifiées sur demande préalable. Contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com pour soumettre une demande.

    Causes courantes de dépassement des limites de fréquence

    • Une augmentation soudaine du trafic du côté du partenaire à la suite de :
      • ventes saisonnières ;
      • début des essais en milieu fermé et en milieu ouvert.
    • Augmentation soudaine du trafic à la suite d’attaques DDoS du côté du partenaire.
    • Une intégration mal configurée, par exemple :
      • l’utilisation des méthodes de la sous-section Administrateur qui ne sont pas destinées à un usage fréquent au lieu des méthodes de la sous-section Catalogue ;
      • appel fréquent à la méthode Lire une commande pour obtenir l’état d’une commande et la liste des objets qu’elle contient. Par exemple : 1 fois par seconde alors que le délai recommandé entre les requêtes devrait être de 3 secondes.
    • Lancement d’un nombre excessivement élevé de requêtes dans une période donnée. Par exemple : plus de 200 appels par seconde à la méthode Lire la liste des objets virtuels pour afficher un catalogue des objets.

    Traitement des limites de fréquence

    Pour éviter les erreurs causées par les limites de fréquence, nous vous recommandons de :
    • Suivre les codes d’état 429 et créer un mécanisme de relance. Pour ce faire, utilisez le modèle Retry avec un backoff exponentiel ou fixe entre les tentatives au lieu de tentatives continues.
    • Optimiser le code pour n’obtenir que les données nécessaires. Veillez à n’effectuer que les requêtes dont votre application a besoin et évitez tout appel inutile à l’API. Si vous utilisez IGS API, recourez à WebSocket API pour réduire le nombre d’appels.
    • Mettre en cache les données fréquemment utilisées par votre application. Par exemple, conservez les données statiques de votre côté afin de réduire le nombre de requêtes à l’API externe.
    • Prévenir les attaques DDoS susceptibles d’interrompre votre API.
    • Ajuster la fréquence de vos requêtes pour une distribution plus régulière. Si l’erreur 429 se produit régulièrement, envisagez d’inclure dans votre code un processus qui régule la fréquence de vos requêtes et permet de les répartir plus uniformément.

    Clés API

    Une clé API est une clé unique utilisée pour le cryptage des données utilisateur et l’authentification des requêtes API. Dans le Compte éditeur, vous pouvez créer des clés API pour tous les projets de l’entreprise ainsi que pour des projets individuels.

    Note
    Les clés API valables pour tous les projets de l’entreprise ne sont pas affichées sur les pages des projets individuels.
    Avis

    Vous pouvez travailler avec les clés API (voir la liste, créer et supprimer) si vous avez l’un des rôles suivants :

    • développeur ;
    • propriétaire.

    Seul un propriétaire de projet peut modifier les rôles dans le Compte éditeur dans la section Company settings > Users.

    Créer une clé API

    Pour créer une clé API :
    1. Ouvrez le Compte éditeur.
    2. Accédez à la section Company settings > API keys ou Project settings > API keys.
    3. Cliquez sur Create API key.
    4. Remplissez les champs :
      • Key name — nom de la clé qui sera affiché dans la liste des clés. Définissez un nom qui vous permettra d’identifier facilement la clé ;
      • Key type — type de clé, permanente ou temporaire ;
      • Expiration date — date d’expiration, uniquement pour une clé temporaire. Après la date d’expiration, la clé n’est plus valide et vous devez en créer une nouvelle ;
      • Project — projet où la clé est valide (le champ n’est pas affiché lorsque vous créez une clé API sur la page du projet). Tous les projets sont sélectionnés par défaut.
    5. Cliquez sur Create.
    6. Dans la fenêtre qui s’affiche, cliquez sur Copy API key et enregistrez la clé API créée de votre côté.
    Note
    Si vous créez une clé API sur la page du projet, la clé n’est valable que pour ce projet particulier.
    Avis

    Recommandations principales :

    • Enregistrez la clé API générée de votre côté. Lors de sa création dans le Compte éditeur, la clé API ne s’affiche qu’une seule fois.
    • Gardez votre clé API secrète. Elle donne accès à votre compte personnel et à vos projets dans le Compte éditeur.
    • Stockez la clé API sur votre serveur et non dans des fichiers binaires ou sur le client.

    Si l’appel API nécessaire ne contient pas le paramètre de chemin project_id, utilisez la clé API valide dans tous les projets de l’entreprise pour l’autorisation.

    Supprimer une clé API

    Pour supprimer une clé API :
    1. Ouvrez le Compte éditeur.
    2. Accédez à la section Company settings > API keys ou Project settings > API keys.
    3. Dans la ligne Clé API, cliquez sur l’icône de la poubelle et confirmez l’action.
    La suppression d’une clé API met fin :
    • à la réception de paiements dans les projets pour lesquels cette clé API a été utilisée ;
    • à l’appel des méthodes API qui ont utilisé cette clé API.
    Pour l’éviter :
    1. Créez une nouvelle clé API.
    2. Modifiez votre application pour utiliser la nouvelle clé API.
    3. Supprimez la clé API initiale.

    Webhooks

    Les webhooks vous permettent de recevoir des notifications instantanées d’événements configurés côté Xsolla. Configurez leur traitement pour automatiser votre application. Pour obtenir la liste des webhooks disponibles et des descriptions détaillées de leur fonctionnement, consultez notre documentation.

    Cet article vous a été utile ?
    Merci !
    Que pouvons-nous améliorer ? Message
    Nous sommes désolés de l'apprendre
    Dites-nous pourquoi vous n'avez pas trouvé cet article utile. Message
    Merci pour votre commentaire !
    Nous examinerons votre message et l'utiliserons pour améliorer votre expérience.
    Dernière mise à jour: 18 Novembre 2024

    Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.