Comment configurer un inventaire multiplateforme
Comment ça marche
L’inventaire multiplateforme permet aux développeurs de jeux de synchroniser l’inventaire d’un utilisateur dans un jeu sur différentes plateformes (Steam, EGS, PlayStation, XBox, etc.), de gérer l’inventaire et le solde des utilisateurs et de collecter des données à leur sujet.
Les étapes suivantes assurent la synchronisation :
- Le joueur lie ses comptes de plateforme au compte principal qui est utilisé pour identifier le joueur sur différentes plateformes.
- Xsolla fournit le mécanisme pour lier les comptes de plateforme au compte principal et gérer la synchronisation de l’inventaire multiplateforme.
La solution comprend les composants suivants :
- client de jeu ;
- serveur de jeu ;
- application Web avec une interface de liaison de comptes ;
- Xsolla Login pour fournir le compte principal et un mécanisme de liaison ;
- Xsolla Player Inventory pour stocker l’inventaire utilisateur.
Flux utilisateur
Pour lier un compte de plateforme (Steam ou EGS) au compte principal, implémentez l’identification utilisateur dans le jeu via le compte Xsolla Login ou l’algorithme de liaison de comptes sur les plateformes de console de jeu.
L’algorithme permettant de lier le compte de console de jeu au compte principal est le suivant :
- Le joueur entre pour la première fois dans le jeu sur la plateforme de la console de jeu.
- Le jeu affiche le message proposant de lier le compte de la plateforme au compte principal.
- Si le joueur confirme l’action :
- Il est redirigé vers l’application tierce (par exemple, le site Web du jeu ou l’application mobile), où il peut s’authentifier ou créer le compte principal.
- Après une authentification réussie dans l’application, le joueur reçoit un code alphanumérique pour lier les comptes.
- Le joueur retourne à la version console du jeu et saisit le code.
- Les comptes principal et de plateforme sont liés et la console de jeu affiche le message de confirmation.
- L’inventaire du joueur sur la plateforme se synchronise avec l’inventaire lié au compte principal.
Qui peut l'utiliser
Les développeurs de jeux qui prévoient une sortie multiplateforme de leur jeu et qui souhaitent établir une base de joueurs fidèles en leur donnant accès à leurs achats et à leurs récompenses sur n’importe quelle plateforme.
Comment configurer
Pour connecter un inventaire multiplateforme :
- Connectez Player Inventory. Implémentez l’authentification d’accès de base pour travailler avec les méthodes serveur, et l’authentification Xsolla Login basée sur le protocole OAuth 2.0 pour travailler avec les méthodes client. L’authentification basée sur le protocole OAuth 2.0 est également requise pour accéder aux méthodes Login API et pour implémenter les méthodes de liaison de comptes.
- Implémentez l’interface de liaison de comptes, y compris :
- l’authentification côté serveur de jeu et la gestion de l’inventaire ;
- l’authentification côté client de jeu et la gestion de l’inventaire ;
- les méthodes de liaison de comptes.
Interface de liaison de comptes
L’interface de liaison de comptes doit offrir les possibilités suivantes :
- affichage du message proposant de lier un compte de plateforme au compte principal ;
- acceptation ou refus de lier les comptes ;
- soumission du code permettant de lier les comptes si l’utilisateur accepte de les lier ;
- affichage de l’URL de l’application mobile ou Web utilisée pour lier les comptes.
Le mécanisme d’authentification de l’utilisateur dans le compte principal est le suivant :
- Intégrez le widget Login à l’application.
- Un JWT est passé à l’application lorsque l’utilisateur s’authentifie via le widget. Implémentez le passage d’un JWT de l’application à la méthode permettant d’obtenir le code de liaison et d’afficher le code dans l’interface de l’application.
- Implémentez l’authentification par JWT côté serveur du jeu.
- Implémentez le passage d’un jeton, de
user_id
sur la plateforme de la console, et de l’ID de la plateforme à la méthode permettant de lier le compte principal lorsque l’utilisateur entre dans la version console du jeu et soumet le code de liaison de comptes.
Authentification sur le serveur du jeu
Afin d’accéder aux méthodes Login API pour gérer l’inventaire du joueur sur le serveur du jeu, vous devez configurer l’authentification OAuth 2.0 et obtenir un jeton d’accès au serveur.client_id
et client_secret
, contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com.- php
<?php
$uri = 'https://login.xsolla.com/api/oauth2/token';
$body = [
'grant_type' => 'client_credentials',
'client_id' => 1,
'client_secret' => 'client_secret'
];
$headers = [
'Content-type: application/x-www-form-urlencoded'
];
$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, http_build_query($body));
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request);
print_r($response);
Réponse :
- php
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"token_type":"bearer",
"expires_in":3600,
"scope": ""
}
Gestion de l'inventaire du joueur sur le serveur du jeu
Les méthodes de gestion de l’inventaire incluent les méthodes serveur suivantes :
Il est nécessaire de passer à ces méthodes le paramètreuser_id
de l’utilisateur sur la plateforme et l’ID de la plateforme.
Authentification sur le client du jeu
Implémentez la méthode API Auth by custom ID pour gérer l’inventaire du joueur dans le client du jeu. Passez les paramètres suivants dans la requête :
server_custom_id
— identifiant unique de l’utilisateur dans le jeu ;social_profile.user_id
— identifiant unique de l’utilisateur sur la plateforme.
Requête :
- php
<?php
$uri = 'https://login.xsolla.com/api/users/login/server_custom_id';
$queryParams = [
'publisher_project_id' => 44056
];
$queryParamsString = '?' . http_build_query($queryParams);
$body = '
{
"server_custom_id": "1234567890asdfghjkl",
"social_profile": {
"platform": "xbox_live",
"user_id": "4352354"
}
}
';
$headers = [
'Content-type: application/json',
'x-server-authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
];
$request = curl_init($uri . $queryParamsString);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $body);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request);
Réponse :
- php
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
Gestion de l'inventaire du joueur dans le client du jeu
Les méthodes de gestion de l’inventaire comprennent les méthodes client suivantes :
Pour gérer l’inventaire du joueur sur les plateformes de console :
- Implémentez le passage de l’ID de la plateforme aux méthodes client afin de se conformer à l’obligation de stocker le solde de la monnaie premium du côté des plateformes de publication de console.
- Implémentez les étapes suivantes sur le serveur du jeu pour gérer l’inventaire utilisateur dans le client de la console :
- Le jeu reçoit un jeton d’accès au serveur pour la tokénisation de l’utilisateur ;
- Le jeu reçoit le JWT par
user_id
de l’utilisateur sur la plateforme et l’ID de la plateforme ; - Le jeu passe le JWT aux méthodes client spécifiées.
Méthodes de liaison de comptes
Obtention du code de liaison
Implémentez la méthode API Create code for linking accounts pour obtenir le code de liaison et le passer à l’utilisateur.
Requête :
- js
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://login.xsolla.com/api/users/account/code");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");
xhr.send(data);
Réponse :
- js
{
"code": "123456"
}
Liaison au compte principal
Implémentez la méthode API Link accounts by code, où :
code
— code de liaison ;publisher_project_id
— ID de projet issu du Compte éditeur ;user_id
— ID de l’utilisateur sur la plateforme.
Assurez-vous d’avoir effectué les étapes suivantes avant d’appeler la méthode :
- Implémentation de l’interface d’affichage du code de liaison de comptes et du formulaire de saisie du code reçu.
- Implémentation de la méthode d’obtention d’un jeton d’accès au serveur.
- Implémentation de la méthode d’obtention du code de liaison.
- php
<?php
$uri = 'https://login.xsolla.com/api/users/account/link';
$body = '
{
"code": "234155",
"platform": "xbox_live",
"publisher_project_id": "12423354",
"user_id": "4352354"
}
';
$headers = [
'Content-type: application/x-www-form-urlencoded',
'x-server-authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
];
$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $body);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request);
Réponse :
- php
204 OK
Liste des platesformes
Plateforme | ID de plateforme | Commentaire |
---|---|---|
PlayStation Network | playstation_network | - |
Xbox Live | xbox_live | - |
PC (standalone) | pc_standalone | - |
Nintendo eShop | nintendo_shop | - |
Google Play | google_play | - |
Apple Store | app_store_ios | - |
Android (standalone) | android_standalone | Le jeu est publié individuellement en dehors des magasins. |
iOS (standalone) | ios_standalone | Le jeu est publié individuellement en dehors des magasins. |
Android (boutique alternative) | android_other | Le jeu est publié dans un magasin alternatif sur PlayMarket. |
iOS (boutique alternative) | ios_other | Le jeu est publié dans un magasin alternatif sur l’AppStore. |
PC (boutique alternative) | pc_other | - |
Xsolla | xsolla | - |
Cet article vous a été utile ?
Évaluer cette page
Préfère ne pas répondre
Merci pour votre commentaire !
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.