Personnalisation du catalogue des objets
Ce tutoriel montre comment :
- personnaliser le catalogue en utilisant des attributs créés de votre côté (pour les partenaires qui utilisent le jeton d’accès Pay Station pour autoriser les utilisateurs) ;
- spécifier les règles de validation des attributs dans le schéma JSON et ajouter des attributs à l’utilisateur du côté de Xsolla (pour les partenaires qui utilisent le Xsolla Login pour autoriser les utilisateurs) ;
- créer une règle d’affichage du catalogue ;
- récupérer le catalogue des objets pour un utilisateur avec différentes valeurs d’attributs.
Prérequis
Avant de commencer, assurez-vous que :
- Vous avez créé un catalogue d’objets en jeu ou de clés de jeu, pour lequel la personnalisation sera configurée ;
- Vous avez exploré la section User attributes (pour les partenaires qui utilisent Xsolla Login pour autoriser les utilisateurs) ;
- Vous avez ajouté des utilisateurs dans les paramètres de votre projet de connexion dans la section User database > Users, pour lesquels vous pouvez ajouter des attributs (pour les partenaires qui utilisent Xsolla Login pour autoriser les utilisateurs).
Personnalisation en utilisant un jeton d'accès Pay Station pour autoriser les utilisateurs
Si vous utilisez un jeton d’accès Pay Station pour autoriser les utilisateurs, vous pouvez passer les attributs lors de l’obtention du jeton. Dans ce cas, procédez comme suit pour configurer la personnalisation :
- Créez des attributs dans votre système.
- Ajoutez des attributs aux utilisateurs dans votre système.
- Implémentez une logique pour mettre à jour les valeurs des attributs lorsqu’elles changent pour un utilisateur dans le jeu.
- Créez des règles d’affichage du catalogue avec vos attributs.
- Passez les attributs lorsque vous obtenez le jeton d’accès Pay Station.
- Utilisez le jeton reçu dans les méthodes de requête du catalogue des objets.
Personnalisation en utilisant Xsolla Login pour autoriser les utilisateurs
Si vous utilisez Xsolla Login pour autoriser les utilisateurs, vous devez :
- Créer un schéma JSON pour les attributs utilisateur du côté de Xsolla et spécifier les attributs qu’il contient (facultatif).
- Créer un schéma JSON pour les attributs utilisateur et ne passer que les attributs spécifiés dans ce schéma JSON. Pour ce faire, dans le schéma JSON, spécifiez
false
dans l’objetadditionalProperties
. Les attributs spécifiés sont automatiquement validés. - Créer un schéma JSON pour les attributs utilisateur et passer à la fois les attributs spécifiés dans le schéma JSON et des attributs supplémentaires non mentionnés dans le schéma JSON. Pour ce faire, dans le schéma JSON, spécifiez
true
dans l’objetadditionalProperties
. Les attributs spécifiés dans le schéma JSON sont automatiquement validés. - Ne pas créer de schéma JSON pour les attributs utilisateur. Dans ce cas, vous pouvez passer n’importe quels attributs, et la validation des attributs n’est pas effectuée.
properties
afin de garantir que les clés et les valeurs des attributs soient automatiquement validées.- Ajoutez des attributs aux utilisateurs et mettez à jour les valeurs des attributs en utilisant Login API.
- Créez des règles d'affichage du catalogue avec les attributs créés.
- Implémentez l'obtention d'un JWT utilisateur. Vous trouverez une liste de méthodes pour obtenir un JWT dans cet exemple.
- Utilisez le jeton reçu dans les méthodes pour demander le catalogue des objets.
Il existe plusieurs façons d’ajouter des attributs à un utilisateur :
- Utilisez les méthodes de mise à jour d’attributs :
- Utilisez ces méthodes pour ajouter des attributs à un utilisateur et mettre à jour les valeurs des attributs. Pour personnaliser le catalogue, il est essentiel de mettre à jour les valeurs des attributs : Mettez à jour les valeurs des attributs dans Xsolla lorsqu'elles changent pour l'utilisateur dans le jeu.
- Exemple : Un utilisateur atteint un nouveau niveau, accomplit une quête ou effectue un achat.
- Vous pouvez mettre à jour les valeurs d'un seul attribut ou de plusieurs attributs simultanément. L'exception concerne les attributs spécifiés comme obligatoires dans le schéma JSON. Si vous ne spécifiez pas de valeurs d'attributs obligatoires, vous ne pourrez pas appeler les méthodes API de mise à jour d'attributs.
- Nous vous recommandons d'utiliser la méthode Update user’s read-only attributes from the server pour interagir avec les attributs utilisateur. Cette méthode vous permet de créer des attributs dont les valeurs ne peuvent pas être modifiées par l'utilisateur.
- Si vous utilisez Web Shop avec l'authentification par ID utilisateur, vous pouvez passer les valeurs d'attributs actualisées dans un webhook lors de l'autorisation utilisateur.
- Passez les valeurs réelles des attributs directement lors de l'autorisation utilisateur si vous utilisez la méthode Auth by custom ID. Dans cette méthode, vous pouvez passer un tableau contenant les valeurs actuelles des attributs utilisateur.
“attr_type”: “server”
et “read_only”: “true”
.Exemple de configuration de la personnalisation
Cet exemple montre comment configurer la personnalisation du catalogue : l’objet Medium Crystal Set n’est affiché que pour les utilisateurs ayant acheté le jeu MyTestGame.
Création du schéma des attributs
Ajoutez un schéma JSON avec des attributs correspondant au nom du jeu et au nombre d’achats. Pour ce faire, spécifiez les éléments suivants dans le schéma :- Attribut
“game”
avec le type“string”
— nom du jeu que l’utilisateur achète. L’attribut“game”
est marqué comme obligatoire. Vous ne pouvez pas appeler de méthodes de mise à jour d’attribut si vous ne passez pas l’attribut“game”
; Attribut
“purchase_number”
avec type“integer”
— nombre d’achats de l’utilisateur.
- json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Example",
"description": "JSON Schema description.",
"properties": {
"game": {
"description": "Name of the game played by a user.",
"type": "string"
},
"purchase_number": {
"description": "The number of purchases the user made.",
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"game"
],
"type": "object"
}
Ajout d'attributs à un utilisateur
Ajoutez des attributs à un utilisateur à partir de la base de données utilisateur en utilisant la méthode Update user’s read-only attributes from server.
Dans la méthode Update user’s read-only attributes from the server, assurez-vous de spécifier :
- Jeton de serveur.
- Valeurs des attributs utilisateur.
user_id
— l’identifiant de l’utilisateur spécifié dans les paramètres de votre projet de connexion dans le Compte éditeur dans la section User database > Users.publisher_id
— l’ID de commerçant 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>
.
publisher_project_id
— l’ID de projet qui se trouve dans le Compte éditeur à côté du nom du projet.
Les noms des paramètres dans les méthodes API peuvent varier d’un produit à l’autre :
- project_id — ID du projet dans le Compte éditeur lorsque vous travaillez avec IGS API.
- publisher_project_id — ID du projet dans le Compte éditeur lorsque vous travaillez avec Login API.
- projectId — ID du projet de connexion dans le Compte éditeur lorsque vous travaillez avec Login API.
En premier lieu, obtenez le jeton de serveur en utilisant la méthode Generate JWT.
Puis, procédez avec la méthode Update user’s read-only attributes from the server.
Le corps de la requête avec un tableau des
- json
{
"attributes": [
{
"key": "game",
"permission": "private",
"value": "MyTestGame"
},
{
"key": "purchase_number",
"permission": "private",
"value": "30"
}
],
"publisher_id": 000000,
"publisher_project_id": 000000
}
Après l’exécution de la requête, l’utilisateur qui initialement ne possédait pas d’attributs en possède désormais avec leurs valeurs spécifiées :
Création d'une règle d'affichage du catalogue
Configurez une règle pour afficher l’objet Medium Crystal Set uniquement aux utilisateurs ayant acheté le jeu MyTestGame.
Pour ce faire :
- Dans le Compte éditeur, accédez à Store > Catalog management > Catalog display rules.
- Cliquez sur Create rule et complétez les champs requis :
- clé d’attribut dans le champ User attribute —
game
; - type —
string
; - opérateur de comparaison —
equal to
; - valeur —
MyTestGame
.
- clé d’attribut dans le champ User attribute —
- Spécifiez l'objet qui doit s'afficher si la condition est satisfaite. Dans l'exemple ci-dessous, le Medium Crystal Set est affiché pour les utilisateurs qui possèdent le jeu MyTestGame.
- Vérifiez la règle, activez-la et enregistrez-la.
Obtention du jeton
Obtention du JWT Xsolla Login
Obtenez un jeton pour un utilisateur auquel vous avez ajouté l’attributgame
avec pour valeur MyTestGame
.Vous pouvez obtenir un JWT Xsolla Login après une autorisation utilisateur réussie, que ce soit côté client ou côté serveur, sans l’implication directe de l’utilisateur. Pour ce faire, utilisez l’une des méthodes d’autorisation Xsolla Login suivantes :
- Auth by username and password ;
- Auth via social provider ;
- Passwordless auth by email ;
- Passwordless auth by phone number ;
- Auth via device ID ;
- Auth by custom ID ;
- Et d’autres méthodes du groupe de méthodes JWT ou OAuth 2.0. pour obtenir le jeton utilisateur.
Obtention du jeton d'accès Pay Station
Obtenez le jeton d’accès Pay Station avec l’attribut requis. Pour ce faire, passez “game”: “MyTestGame”
dans l’objet
Exemple de corps de la requête :
- json
{
"settings": {
"currency": "USD",
"language": "en",
"project_id": 000001,
"ui": {
"size": "medium"
}
},
"user": {
"email": {
"value": "email@example.com"
},
"id": {
"value": "user_2"
},
"name": {
"value": "John Smith"
},
"attributes": {
"game": "MyTestGame"
}
}
}
Obtention du catalogue des objets
Pour obtenir le catalogue des objets, appelez la méthode Get virtual items list, en utilisant soit le jeton utilisateur JWT Xsolla Login, soit le jeton d’accès Pay Station pour l’autorisation.Obtention du catalogue des objets en utilisant le jeton JWT Xsolla Login
Récupérez le catalogue en utilisant le jeton de l’utilisateur auquel vous avez ajouté l’attribut game
avec pour valeur MyTestGame
. Pour ce faire, spécifiez ce qui suit dans la méthode Get virtual items list :
- le JWT utilisateur obtenu dans l’en-tête d’autorisation ;
- l’ID du projet dans le Compte éditeur en tant que paramètre de chemin d’accès.
La réponse comprend trois objets :
- Empire Key ;
- Small Crystal Pack ;
- Medium Crystal Set, pour lequel la règle de personnalisation est configurée.
Vous pouvez vérifier la réponse lors de l’obtention du catalogue des objets pour voir si la valeur de l’attribut ne correspond pas à celle spécifiée dans la règle. Pour les tests, passez les attributs directement lors de l’obtention du jeton en utilisant la méthode Auth by custom ID.
game
avec pour valeur OtherGame
dans le tableau des - json
"attributes": [
{
"attr_type": "server",
"key": "game",
"permission": "private",
"value": "OtherGame",
"read_only": true
},
{
"attr_type": "server",
"key": "purchase_number",
"permission": "private",
"value": "30",
"read_only": true
}
]
La méthode Get virtual items list avec le jeton obtenu renvoie deux objets : Empire Key et Small Crystal Pack. Le Medium Crystal Set, auquel une règle de personnalisation a été appliquée, n’est pas inclus dans la réponse.
Pour comparaison, passons maintenant l’attribut game
avec pour valeur MyTestGame
.
Voici le tableau des MyTestGame
:
- json
"attributes": [
{
"attr_type": "server",
"key": "game",
"permission": "private",
"value": "MyTestGame",
"read_only": true
},
{
"attr_type": "server",
"key": "purchase_number",
"permission": "private",
"value": "30",
"read_only": true
}
]
Spécifiez le jeton obtenu lorsque vous demandez le catalogue des objets dans la méthode Get virtual items list.
En conséquence, le Medium Crystal Set est inclus dans la réponse :
Obtention du catalogue des objets en utilisant le jeton d'accès Pay Station
Pour obtenir le catalogue des objets personnalisés, spécifiez ce qui suit dans la méthode Get virtual items list :
- le jeton d’accès Pay Station obtenu dans l’en-tête d’autorisation ;
- l’ID du projet dans le Compte éditeur en tant que paramètre de chemin d’accès.
La réponse comprend trois objets :
- Empire Key ;
- Small Crystal Pack ;
- Medium Crystal Set, pour lequel la règle de personnalisation est configurée.
Vous pouvez vérifier la réponse lors de l’obtention du catalogue des objets pour voir si l’utilisateur ne possède pas l’attribut game
avec pour valeur MyTestGame
.
Lorsque vous recevez le jeton d’accès Pay Station, supprimez l’objet
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.