Passer au contenu

Aperçu

Digital Distribution Hub est une nouvelle solution Xsolla qui comble le fossé entre les paiements numériques et les paiements en espèces via la technologie des paiements push et le e-commerce.

Cette référence décrit les endpoints API de deux produits Xsolla : In-Game Store et Pay Station. Deux URL de base sont utilisées :

  • https://store.xsolla.com/api pour les groupes Communs, Catalogue, Panier, et Commande.
  • https://ps.xsolla.com pour le groupe Notifications.

Les endpoints API dans le groupe Catalogue ne requièrent pas d'autorisation.

Pour utiliser les opérations des groupes Panier et Commande, vous devez générer un jeton via Create user token.

Note

Cette référence présente un projet d'une future API et non une interface entièrement fonctionnelle. Actuellement, vous ne pouvez essayer que les endpoints des groupes Catalogue et Notifications. Si vous souhaitez nous faire part de vos commentaires, envoyez-nous un e-mail à l'adresse suivante : techdoc@xsolla.com.
Télécharger la description d'OpenAPI
Langues
Serveurs
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/fr/api/digital-distribution-hub/
Opérations
Opérations

Requête

Récupère une liste de jeux pour la constitution d'un catalogue.

Attention. Tous les projets sont soumis à une limite de nombre d'objets que vous pouvez obtenir dans la réponse. La valeur par défaut et la valeur maximale sont 50 éléments par réponse. Pour obtenir plus de données page par page, utilisez les champs limit et offset.
Sécurité
AuthForClient
Chemin
project_idintegerobligatoire

ID de projet.

Exemple: 44056
Requête
limitinteger

Nombre maximal d'éléments sur une page.

Exemple: limit=50
offsetinteger

Numéro de l'élément à partir duquel la liste est générée (le compte commence à 0).

Exemple: offset=0
localestring

Langue de la réponse. Code de langue à deux lettres minuscules selon la norme ISO 639-1.

Par défaut "en"
additional_fields[]Array of strings

Liste des champs supplémentaires. Ces champs figureront dans la réponse si vous les envoyez dans votre requête. Champs disponibles media_list, order et long_description.

countrystring

Pays pour la détermination des prix régionaux et des restrictions pour le catalogue. Code pays à deux lettres majuscules selon la norme ISO 3166-1 alpha-2. Si vous ne spécifiez pas explicitement le pays, il sera déterminé en fonction de l'adresse IP de l'utilisateur.

Par défaut "US"
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/game?limit=50&offset=0&locale=en&additional_fields%5B%5D=string&country=US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Réponses

La liste de jeux a été reçue avec succès.

Corpsapplication/json
itemsArray of objects(Catalog_inline_response_200_items)
Exemple: [{"attributes":{"$ref":"#/components/examples/client-attribute-game/Catalog_value"},"description":"Game description","groups":[{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla games"}],"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Game name","sku":"game_1","type":"unit","unit_items":[{"drm_name":"Steam","drm_sku":"steam","has_keys":true,"is_free":false,"is_pre_order":true,"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"release_date":"2020-08-11T10:00:00+03:00","sku":"game_key_01","type":"game_key","virtual_prices":[]},{"drm_name":"Origin","drm_sku":"origin","has_keys":false,"is_free":false,"is_pre_order":false,"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"sku":"game_key_02","type":"game_key","virtual_prices":[]}],"unit_type":"game"},{"attributes":[{"external_id":"OS","name":"OS","values":[{"external_id":"9d5c5efb7c0f00a00fe4e3583f1215b0050bc723","value":"Windows"}]}],"description":"Game description","groups":[{"external_id":"all","name":"All games"}],"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Game name","sku":"game_2","type":"unit","unit_items":[{"drm_name":"Steam","drm_sku":"steam","has_keys":false,"is_free":false,"is_pre_order":false,"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"sku":"game_key_01","type":"game_key","virtual_prices":[]}],"unit_type":"game"}]
items[].​attributesArray of objects(Catalog_client-attributes-common)

Liste des attributs et de leurs valeurs correspondantes pour l'objet. Peut être utilisée pour le filtrage du catalogue.

Par défaut []
items[].​attributes[].​external_idstring(Catalog_admin-attribute-external_id)[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

ID unique de l'attribut. Le paramètre external_id ne peut comprendre que des caractères alphanumériques latins minuscules, des tirets et des traits bas.

Exemple: "attribute_1"
items[].​attributes[].​namestring

Nom de l'attribut.

Exemple: "Genre"
items[].​attributes[].​valuesArray of objects
items[].​attributes[].​values[].​external_idstring(Catalog_value-external_id)[ 1 .. 255 ] characters^[-_.\d\w]+$

ID unique de la valeur d'un attribut. Le external_id ne peut comprendre que des caractères alphanumériques latins minuscules, des tirets et des tirets bas.

Exemple: "attribute_value"
items[].​attributes[].​values[].​valuestring

Valeur de l'attribut.

Exemple: "Strategy"
items[].​descriptionstring

Description de l'objet.

Exemple: "Game description"
items[].​groupsArray of objects(Catalog_inline_response_200_groups)

Groupes auxquels l'objet appartient.

Exemple: [{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla game"}]
items[].​groups[].​external_idstring
Exemple: "accessory"
items[].​groups[].​namestring
Exemple: "Accessory"
items[].​image_urlstring

URL de l'image.

Exemple: "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png"
items[].​namestring

Nom de l'objet.

Exemple: "Game name"
items[].​skustring

ID unique de l'objet. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules, des points, des tirets et des traits bas.

Exemple: "game_01"
items[].​typestring

Type d'objet : virtual_good/virtual_currency/bundle/physical_good/unit.

Exemple: "unit"
items[].​unit_itemsArray of objects(Catalog_inline_response_200_unit_items)
items[].​unit_items[].​drm_namestring

Nom du DRM.

Exemple: "Steam"
items[].​unit_items[].​drm_skustring

ID unique du DRM. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules, des points, des tirets et des traits bas.

Exemple: "steam"
items[].​unit_items[].​has_keysboolean

Si true, le module Clés de jeu a des clés vendables.

Exemple: false
items[].​unit_items[].​is_freeboolean

Si ce paramètre est défini sur true, l'objet est gratuit.

Exemple: false
items[].​unit_items[].​is_pre_orderboolean

Si true, la clé de jeu est en pré-commande et la date de sortie n'est pas dépassée.

Exemple: true
items[].​unit_items[].​priceobject(Catalog_inline_response_200_price)

Prix de l'objet.

items[].​unit_items[].​price.​amountstring

Prix de l'objet réduit.

Exemple: "2.9900"
items[].​unit_items[].​price.​amount_without_discountstring

Prix de l'objet.

Exemple: "2.9900"
items[].​unit_items[].​price.​currencystring

Devise d'achat par défaut. Code de devise à trois lettres selon la norme ISO 4217.

Exemple: "USD"
items[].​unit_items[].​release_datestring

Date de publication de la clé de jeu au format ISO 8601.

Exemple: "2020-08-11T10:00:00+03:00"
items[].​unit_items[].​skustring

ID unique de l'objet. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules, des points, des tirets et des traits bas.

Exemple: "game_01"
items[].​unit_items[].​typestring

Type d'objet : game_key.

Exemple: "game_key"
items[].​unit_items[].​virtual_pricesArray of objects(Catalog_inline_response_200_virtual_prices)

Prix virtuels.

items[].​unit_items[].​virtual_prices[].​amountinteger

Prix de l'objet réduit en monnaie virtuelle.

Exemple: 100
items[].​unit_items[].​virtual_prices[].​amount_without_discountinteger

Prix de l'objet.

Exemple: 200
items[].​unit_items[].​virtual_prices[].​descriptionstring

Description de la monnaie virtuelle.

Exemple: "Big Rocket - description"
items[].​unit_items[].​virtual_prices[].​image_urlstring

Image de la monnaie virtuelle.

Exemple: "http://image.png"
items[].​unit_items[].​virtual_prices[].​is_defaultboolean

Indique si le prix est le prix par défaut de l'objet.

Exemple: true
items[].​unit_items[].​virtual_prices[].​namestring

Nom de la monnaie virtuelle.

Exemple: "SHOTGUN FOR TRUE RAIDERS"
items[].​unit_items[].​virtual_prices[].​skustring

UGS de la monnaie virtuelle.

Exemple: "vc_test"
items[].​unit_items[].​virtual_prices[].​typestring

Type de monnaie virtuelle.

Exemple: "virtual_currency"
items[].​unit_typestring

Type d'unité : game.

Exemple: "game"
Réponse
application/json
{ "items": [ {}, {} ] }

Requête

Récupère la liste des DRM disponibles.

Sécurité
AuthForClient
Chemin
project_idintegerobligatoire

ID de projet.

Exemple: 44056
curl -i -X GET \
  https://store.xsolla.com/api/v2/project/44056/items/game/drm \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Réponses

La liste des DRM a été reçue avec succès.

Corpsapplication/json
drmArray of objects(Catalog_inline_response_200_4_drm)
Exemple: [{"drm_id":1,"image":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","link":"https://support.steampowered.com","name":"Steam","redeem_instruction_link":"https://support.steampowered.com","sku":"steam"},{"drm_id":2,"image":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Playstation","redeem_instruction_link":"https://support.us.playstation.com","sku":"playstation"}]
drm[].​drm_idnumber

ID du DRM.

Exemple: 1
drm[].​imagestring

URL de l'image.

Exemple: "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png"
drm[].​linkstring

Lien d'échange.

Exemple: "https://support.us.playstation.com"
drm[].​namestring

Nom du DRM.

Exemple: "Steam"
drm[].​redeem_instruction_linkstring

Lien d'instructions d'échange.

Exemple: "https://support.us.playstation.com"
drm[].​skustring

ID unique du DRM. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules, des points, des tirets et des traits bas.

Exemple: "steam"
Réponse
application/json
{ "drm": [ {}, {} ] }

Lire une liste de jeux par groupe spécifique

Requête

Récupère une liste de jeux au sein d'un groupe spécifique pour la constitution d'un catalogue.

Attention. Tous les projets sont soumis à une limite de nombre d'objets que vous pouvez obtenir dans la réponse. La valeur par défaut et la valeur maximale sont 50 éléments par réponse. Pour obtenir plus de données page par page, utilisez les champs limit et offset.
Sécurité
AuthForClient
Chemin
project_idintegerobligatoire

ID de projet.

Exemple: 44056
external_idstringobligatoire

External ID du groupe.

Par défaut "all"
Requête
limitinteger

Nombre maximal d'éléments sur une page.

Exemple: limit=50
offsetinteger

Numéro de l'élément à partir duquel la liste est générée (le compte commence à 0).

Exemple: offset=0
localestring

Langue de la réponse. Code de langue à deux lettres minuscules selon la norme ISO 639-1.

Par défaut "en"
additional_fields[]Array of strings

Liste des champs supplémentaires. Ces champs figureront dans la réponse si vous les envoyez dans votre requête. Champs disponibles media_list, order et long_description.

countrystring

Pays pour la détermination des prix régionaux et des restrictions pour le catalogue. Code pays à deux lettres majuscules selon la norme ISO 3166-1 alpha-2. Si vous ne spécifiez pas explicitement le pays, il sera déterminé en fonction de l'adresse IP de l'utilisateur.

Par défaut "US"
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/game/group/{external_id}?limit=50&offset=0&locale=en&additional_fields%5B%5D=string&country=US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Réponses

La liste de jeux a été reçue avec succès.

Corpsapplication/json
itemsArray of objects(Catalog_inline_response_200_items)
Exemple: [{"attributes":{"$ref":"#/components/examples/client-attribute-game/Catalog_value"},"description":"Game description","groups":[{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla games"}],"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Game name","sku":"game_1","type":"unit","unit_items":[{"drm_name":"Steam","drm_sku":"steam","has_keys":true,"is_free":false,"is_pre_order":true,"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"release_date":"2020-08-11T10:00:00+03:00","sku":"game_key_01","type":"game_key","virtual_prices":[]},{"drm_name":"Origin","drm_sku":"origin","has_keys":false,"is_free":false,"is_pre_order":false,"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"sku":"game_key_02","type":"game_key","virtual_prices":[]}],"unit_type":"game"},{"attributes":[{"external_id":"OS","name":"OS","values":[{"external_id":"9d5c5efb7c0f00a00fe4e3583f1215b0050bc723","value":"Windows"}]}],"description":"Game description","groups":[{"external_id":"all","name":"All games"}],"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Game name","sku":"game_2","type":"unit","unit_items":[{"drm_name":"Steam","drm_sku":"steam","has_keys":false,"is_free":false,"is_pre_order":false,"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"sku":"game_key_01","type":"game_key","virtual_prices":[]}],"unit_type":"game"}]
items[].​attributesArray of objects(Catalog_client-attributes-common)

Liste des attributs et de leurs valeurs correspondantes pour l'objet. Peut être utilisée pour le filtrage du catalogue.

Par défaut []
items[].​attributes[].​external_idstring(Catalog_admin-attribute-external_id)[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

ID unique de l'attribut. Le paramètre external_id ne peut comprendre que des caractères alphanumériques latins minuscules, des tirets et des traits bas.

Exemple: "attribute_1"
items[].​attributes[].​namestring

Nom de l'attribut.

Exemple: "Genre"
items[].​attributes[].​valuesArray of objects
items[].​attributes[].​values[].​external_idstring(Catalog_value-external_id)[ 1 .. 255 ] characters^[-_.\d\w]+$

ID unique de la valeur d'un attribut. Le external_id ne peut comprendre que des caractères alphanumériques latins minuscules, des tirets et des tirets bas.

Exemple: "attribute_value"
items[].​attributes[].​values[].​valuestring

Valeur de l'attribut.

Exemple: "Strategy"
items[].​descriptionstring

Description de l'objet.

Exemple: "Game description"
items[].​groupsArray of objects(Catalog_inline_response_200_groups)

Groupes auxquels l'objet appartient.

Exemple: [{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla game"}]
items[].​groups[].​external_idstring
Exemple: "accessory"
items[].​groups[].​namestring
Exemple: "Accessory"
items[].​image_urlstring

URL de l'image.

Exemple: "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png"
items[].​namestring

Nom de l'objet.

Exemple: "Game name"
items[].​skustring

ID unique de l'objet. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules, des points, des tirets et des traits bas.

Exemple: "game_01"
items[].​typestring

Type d'objet : virtual_good/virtual_currency/bundle/physical_good/unit.

Exemple: "unit"
items[].​unit_itemsArray of objects(Catalog_inline_response_200_unit_items)
items[].​unit_items[].​drm_namestring

Nom du DRM.

Exemple: "Steam"
items[].​unit_items[].​drm_skustring

ID unique du DRM. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules, des points, des tirets et des traits bas.

Exemple: "steam"
items[].​unit_items[].​has_keysboolean

Si true, le module Clés de jeu a des clés vendables.

Exemple: false
items[].​unit_items[].​is_freeboolean

Si ce paramètre est défini sur true, l'objet est gratuit.

Exemple: false
items[].​unit_items[].​is_pre_orderboolean

Si true, la clé de jeu est en pré-commande et la date de sortie n'est pas dépassée.

Exemple: true
items[].​unit_items[].​priceobject(Catalog_inline_response_200_price)

Prix de l'objet.

items[].​unit_items[].​price.​amountstring

Prix de l'objet réduit.

Exemple: "2.9900"
items[].​unit_items[].​price.​amount_without_discountstring

Prix de l'objet.

Exemple: "2.9900"
items[].​unit_items[].​price.​currencystring

Devise d'achat par défaut. Code de devise à trois lettres selon la norme ISO 4217.

Exemple: "USD"
items[].​unit_items[].​release_datestring

Date de publication de la clé de jeu au format ISO 8601.

Exemple: "2020-08-11T10:00:00+03:00"
items[].​unit_items[].​skustring

ID unique de l'objet. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules, des points, des tirets et des traits bas.

Exemple: "game_01"
items[].​unit_items[].​typestring

Type d'objet : game_key.

Exemple: "game_key"
items[].​unit_items[].​virtual_pricesArray of objects(Catalog_inline_response_200_virtual_prices)

Prix virtuels.

items[].​unit_items[].​virtual_prices[].​amountinteger

Prix de l'objet réduit en monnaie virtuelle.

Exemple: 100
items[].​unit_items[].​virtual_prices[].​amount_without_discountinteger

Prix de l'objet.

Exemple: 200
items[].​unit_items[].​virtual_prices[].​descriptionstring

Description de la monnaie virtuelle.

Exemple: "Big Rocket - description"
items[].​unit_items[].​virtual_prices[].​image_urlstring

Image de la monnaie virtuelle.

Exemple: "http://image.png"
items[].​unit_items[].​virtual_prices[].​is_defaultboolean

Indique si le prix est le prix par défaut de l'objet.

Exemple: true
items[].​unit_items[].​virtual_prices[].​namestring

Nom de la monnaie virtuelle.

Exemple: "SHOTGUN FOR TRUE RAIDERS"
items[].​unit_items[].​virtual_prices[].​skustring

UGS de la monnaie virtuelle.

Exemple: "vc_test"
items[].​unit_items[].​virtual_prices[].​typestring

Type de monnaie virtuelle.

Exemple: "virtual_currency"
items[].​unit_typestring

Type d'unité : game.

Exemple: "game"
Réponse
application/json
{ "items": [ {}, {} ] }
Opérations
Opérations
Opérations
Opérations
Opérations