Prise en main

Présentation

L’API Xsolla comprend :

  • Pay Station API — interface de paiement et méthodes de tokénisation.
  • IGS & BB API — méthodes pour travailler avec les modules In-Game Store et Buy Button.
  • Subscriptions API — méthodes pour Subscriptions.
  • Publisher Account API — méthodes pour travailler avec les projets et les utilisateurs du Compte éditeur, les rapports et les tickets de support.
  • Login API — méthodes pour l’authentification utilisateur à l’aide de votre propre interface (voir le guide d’intégration).
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, Publisher Account API, Subscriptions API ;
  • https://login.xsolla.com/api — Login API ;
  • https://store.xsolla.com/api — IGS&BB 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 l’authentification d’accès de base. Les 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 conformément à la norme Base64. Accédez au Compte éditeur pour trouver les paramètres suivants :
    • 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.
    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.

    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 & BB 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.

    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.
    Évaluer cette page
    Évaluer cette page
    Que pouvons-nous améliorer ?

    Préfère ne pas répondre

    Merci pour votre commentaire !
    Dernière mise à jour: 24 Janvier 2024

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