FAQ
Intégration
Comment ouvrir Pay Station dans un iframe ?
Nous vous recommandons d’utiliser le script Pay Station Embed pour ouvrir l’interface de paiement dans une lightbox. L’utilisation de ce script vous permettra de :
- déterminer automatiquement la taille de l’interface de paiement et le type d’appareil (bureau, mobile) ;
- recevoir automatiquement les événements de l’interface de paiement ;
- modifier le thème de l’interface.
Pour ouvrir l’interface de paiement dans un iframe :
- Implémentez le mécanisme
postMessage
pour recevoir les événements de l’interface de paiement. - Ouvrez l’interface de paiement en suivant le lien
https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN
, oùTOKEN
est le jeton reçu.
Problème potentiel : Si le bouton de copie du code de confirmation de paiement, requis par certains systèmes de paiement ne s’affiche pas lors de l’ouverture de l’interface de paiement dans une iframe, passez l’attribut allow=“clipboard-read; clipboard-write; payment”
à l’iframe.
Exemple :
- html
<iframe
src="https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN"
width="800"
height="700"
allow="clipboard-read; clipboard-write; payment"
></iframe>
Quelles adresses IP du réseau Xsolla dois-je ajouter à la liste d'autorisations pour configurer les webhooks ?
Vous devez recevoir et traiter les webhooks provenant des adresses IP suivantes :
185.30.20.0/24
185.30.21.0/24
185.30.23.0/24
Si vous avez intégré le produit Login, ajoutez des webhooks de traitement à partir des adresses IP suivantes :
35.236.32.131
34.94.154.26
34.94.14.95
34.102.48.30
34.94.115.185
34.94.173.132
35.236.35.100
35.236.117.164
34.94.0.85
35.235.99.248
34.94.25.33
Existe-t-il des SDK pour Node.JS/C#/Ruby/Java/ASP, etc ?
Il existe actuellement des SDK pour PHP et Android. Vous pouvez créer votre propre SDK en utilisant un langage ou une plateforme quelconque, à condition qu’il dispose des fonctionnalités des requêtes HTTPS.
Validation utilisateur
Qu'est-ce que l'ID utilisateur ?
L’ID utilisateur est un paramètre qui permet d’identifier un utilisateur dans un jeu. Vous pouvez stocker les ID utilisateur dans une base de données. En cas de réception d’ID utilisateur non valides, une exception est levée. Référez-vous au dépôt GitHub pour un exemple de validation utilisateur.
Quelles données dois-je renvoyer une fois la validation terminée ?
Lorsque la validation est réussie, le code HTTP 200
est renvoyé. En cas d’erreur, le code 400
(INVALID_USER
).
Paramètres de projet
Dois-je créer de nouveaux projets pour chaque environnement (AQ, pré-production, production) ?
Pour les tests, nous vous recommandons d’utiliser des projets distincts afin d’éviter d’affecter l’environnement de production.
Quelle est la différence entre une clé secrète, une clé de projet et une clé API ?
La clé secrète correspond à la clé de projet et est utilisée pour la signature numérique nécessaire lors du traitement des paiements sécurisés. Le corps JSON de la requête est concaténé avec cette clé, puis le résultat est haché avec SHA-1.
La clé API est utilisée pour les appels API envoyés au serveur Xsolla. Cette clé doit être conservée sur votre propre serveur et jamais dans des fichiers binaires ou dans le frontend. Pour plus d’informations sur l’utilisation des clés API, voir la référence API.
Quelle est la différence entre une URL de webhook et une URL de retour ?
L’URL du webhook est l’adresse URL de votre serveur webhook où les notifications sont envoyées. Une URL de retour est l’adresse URL où l’utilisateur est redirigé après un paiement.
Où puis-je trouver l'ID de projet ?
Ouvrez votre projet dans le Compte éditeur et accédez à la section Project settings > General settings.
Où puis-je trouver l'ID du commerçant ?
Ouvrez le Compte éditeur et accédez à la section Company settings > Company.
Où puis-je trouver la clé API ?
La clé API 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 clé dans les sections suivantes :
- Company settings > API keys ;
- Project settings > API keys.
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.
Paramètres du webhook
Dois-je utiliser HTTPS pour un protocole de webhook ?
Oui.
Pourquoi la notification Xsolla n'a-t-elle pas été envoyée à l'URL du webhook ?
Assurez-vous que votre serveur de webhook prend en charge les types de requêtes HTTP requis (POST, GET).
Pourquoi les webhooks ne sont-ils pas envoyés à mon application mobile ?
Les webhooks ne sont envoyés qu’à une seule adresse URL spécifiée dans les paramètres de votre projet. Étant donné que les webhooks sont des communications entre serveurs, ils ne peuvent pas être envoyés à plusieurs adresses URL. Si vous souhaitez recevoir des notifications dans votre jeu, site Web ou application mobile, configurez l’envoi de webhooks sur votre serveur pour permettre le transfert de données entre Xsolla et votre jeu.
Customisation
Puis-je customiser le thème de l'interface de paiement ?
Pour activer le thème sombre, envoyez le paramètre settings.ui.theme = default_dark
dans le jeton. Le thème sombre vous permet de définir l’image d’arrière-plan ou de changer sa couleur (comme dans la démo). Pour modifier d’autres paramètres, contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com.
Puis-je modifier l'apparence des e-mails envoyés aux utilisateurs ?
Oui. Suivez les instructions de customisation des e-mails destinés aux utilisateurs. L’ordre des éléments de l’e-mail ne peut pas être modifié, car ils font partie d’un modèle standard. Cela est requis en vertu du contrat de licence avec Xsolla, qui opère en tant que Merchant of Records.
Tests
Puis-je utiliser des cartes de test pour tester le processus de paiement ?
Oui, mais uniquement lorsque vous exécutez votre application ou la démo de Pay Station en mode bac à sable. Référez-vous à la liste générale des cartes de test de différentes marques et de différents pays d’émission.
Puis-je tester le flux de paiement PayPal en mode bac à sable ?
Oui. Référez-vous aux instructions pour des informations détaillées.Comment puis-je tester les remboursements de paiements ?
Vous pouvez tester les remboursements via l’appel API Demander un remboursement. Référez-vous aux instructions pour plus d’informations.
À correspondent l'ID de facture côté Xsolla et l'ID de facture dans l'onglet de test du webhook dans le Compte éditeur ?
L’ ID de facture côté Xsolla est l’ID de la transaction dans les systèmes de Xsolla. Pour les tests, vous pouvez utiliser n’importe quelle valeur numérique.
L’ID de facture est un ID de transaction facultatif dans votre jeu. Pour les tests, vous pouvez entrer n’importe quelle combinaison de lettres et de chiffres.
Payments
Comment valider une requête de paiement reçue dans un webhook ?
Tout d’abord, vérifiez si l’ID utilisateur spécifié existe dans votre projet. Ensuite, renvoyez le code200
pour valider le paiement.Puis-je rediriger un utilisateur vers un mode de paiement particulier ?
Lorsque vous ouvrez l’interface du magasin, vous pouvez passer l’ID du mode de paiement dans le paramètresettings.payment_method
. Dans ce cas, l’utilisateur est redirigé vers le formulaire de paiement du mode de paiement sélectionné. Pour trouver la liste des ID des modes de paiement, accédez au Compte éditeur sous la section Pay Station > Payment methods.Puis-je rediriger automatiquement un utilisateur vers une page de paiement réussi ou échoué après le traitement d'une transaction, en fonction du résultat ?
Oui, vous pouvez configurer les conditions de redirection. Référez-vous aux instructions pour plus d’informations.Étant donné que notre système de facturation attribue automatiquement un order_id à chaque commande, puis-je utiliser le paramètre order_id au lieu de user_id lors de l'obtention du jeton ?
Non, user_id
est nécessaire pour que tout fonctionne correctement.
Vous pouvez également passer order_id
dans le paramètre external_id
. Pour ce faire :
- Ouvrez le Compte éditeur.
- Accédez à la section Pay Station > Settings.
- Dans le bloc Additional settings, réglez la bascule Transaction external ID sur On.
Puis-je modifier l'URL du webhook pour chaque transaction ?
Non, l’URL du webhook pour toutes les transactions est définie dans les paramètres du projet dans le Compte éditeur.Recevrai-je les détails des transactions qui n'ont pas abouti ?
Non, Xsolla envoie des webhooks uniquement pour les transactions réussies. Si vous avez reçu une notification concernant un paiement, cela signifie que la transaction a été effectuée avec succès.Comment ajouter la TVA au montant total du paiement ?
Par défaut, les paramètres de TVA sont configurés côté Xsolla. Si vous souhaitez modifier ces paramètres et ajouter la TVA au montant total du paiement d’un utilisateur, contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com.Que signifie PID ?
PID est l’identifiant du mode de paiement côté Xsolla.Qu'est-ce que un external ID ?
L’external ID est l’ID d’une transaction dans le jeu qui est attribué à une commande dans votre système. Du côté de Xsolla, l’external ID est associé à l’ID de la transaction. C’est pourquoi l’activation de l’external ID permet à Xsolla de prévenir les paiements répétés pour une même transaction. Chaque paiement d’utilisateur doit avoir un external ID unique.
Pour activer l’external ID dans votre projet :
- Ouvrez votre projet dans le Compte éditeur et accédez à la section Pay Station > Settings.
- Réglez la bascule Transaction external ID sur On.
Dois-je générer un nouvel external ID pour chaque transaction ?
Oui, l’external ID doit être unique pour chaque paiement.Quelle valeur dois-je définir pour la méthode setExternalPaymentId ?
La méthodesetExternalPaymentId
doit avoir la même valeur que le paramètre external_id
, si vous en avez un.Qu'est-ce qu'une passerelle ?
Après la signature d’un contrat avec des systèmes de paiement, vous pouvez utiliser des passerelles pour afficher ces options de paiement dans l’interface utilisateur. Les joueurs auront toujours la liberté de choisir leurs modes de paiement préférés, et vous recevrez les paiements directement de ces fournisseurs de systèmes de paiement. Pour connecter les passerelles, ouvrez votre projet dans le Compte éditeur et accédez à la section Pay Station > Gateways.
Xsolla agit en tant que fournisseur de services techniques et prend une part réduite des revenus : 1,25 % du montant de la transaction + 0,10 $. Vous aurez un accès complet à toutes les solutions Xsolla, mais vous prenez en charge les aspects suivants :
- gestion des questions liées à la fiscalité ;
- signer des accords distincts avec chaque système de paiement ;
- maintien du flux financier direct provenant des systèmes de paiement ;
- gestion des frais des systèmes de paiement, des chargebacks et des remboursements, des commissions de paiement et des coûts d’exploitation.
Par exemple, si vous travaillez avec PayPal et souhaitez l’intégrer en tant que mode de paiement direct, vous pouvez connecter une passerelle. L’interface de paiement ne changera pas, seul le processus de paiement sera affecté. Après le traitement d’un paiement, les fonds du joueur seront transférés directement sur votre compte PayPal. Dans ce modèle, Xsolla n’est pas impliqué dans le processus de paiement.
Comment puis-je migrer les données utilisateur (comptes de paiement enregistrés, abonnements, etc.) vers Xsolla ?
Contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com. Assurez-vous d’utiliser le cryptage PGP pour garantir la sécurité des données.
Paramètres de la clé PGP Xsolla :
- ID de la clé : FBA38225
- Type de clé : RSA
- Longueur de la clé : 4096
- Empreinte digitale : 4D63 4B67 B265 5464 D39D 7228 67B0 672A FBA3 8225
- ID utilisateur : admins@xsolla.com
- html
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=7AyM
-----END PGP PUBLIC KEY BLOCK-----
Comment le pays d'un utilisateur est-il déterminé ?
Lorsque vous utilisez l’appel API côté client pour générer un jeton de paiement, Xsolla détermine le pays de l’utilisateur à partir de l’adresse IP de la requête.
Lorsque vous utilisez l’appel API côté serveur pour générer le jeton de paiement, le pays est déterminé via une vérification séquentielle de :
- la valeur du paramètre
user.country.value
dans le corps de la requête ; - l’adresse IP dans l’en-tête
X-User-Ip
.
Si aucune de ces valeurs n’est passée, une erreur s’affiche. Si les deux valeurs sont passées, les informations contenues dans le corps de la requête sont utilisées.
Messages d'erreur
Que dois-je faire lorsque l'erreur 0004-0008 survient ?
Vérifiez si vous utilisez la bonne adresse URL :- Pour ouvrir l’interface de paiement en mode bac à sable, suivez le lien :
https://sandbox-secure.xsolla.com/paystation4/?token=ACCESS_TOKEN
, oùACCESS_TOKEN
est le jeton reçu. - Pour effectuer des paiements réels, suivez le lien :
https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN
, oùACCESS_TOKEN
est le jeton reçu.
Que dois-je faire lorsque les erreurs 2205 ou 2207 surviennent (user ID error) ?
- Passez un ID utilisateur valide qui correspond au paramètre
user_id
de votre base de données. - Recommandations concernant l'utilisation des webhooks :
- Si vous ne souhaitez pas utiliser les webhooks, assurez-vous qu'ils sont désactivés dans votre projet. Pour ce faire, accédez au Compte éditeur, et dans la section Project settings > Webhooks, réglez la bascule sur Off ;
- Si vous voulez utiliser les webhooks, implémentez le traitement réussi du webhook Validation utilisateur.
Que dois-je faire lorsque l'erreur 1000-0003 survient ?
Activez le module correspondant à votre projet.Que dois-je faire lorsque l'erreur 0002-0004 survient ?
Signez le contrat de licence avec Xsolla pour recevoir vos paiements. Si vous avez besoin d’aide, contactez votre responsable de la réussite client ou envoyez un e-mail à onboarding@xsolla.com.Que dois-je faire lorsque l'erreur 3032 survient ?
Envoyez des informations sur les jetons de paiement erronés ou sur les ID utilisateur et les ID de projets à l’équipe d’intégration par l’un des canaux de communication disponibles sur le site.Pourquoi l'en-tête Authorization n'apparaît-il pas dans la requête de webhook ?
Pour corriger cette erreur, vous devez modifier les fichiers Apache.htaccess
ou httpd.conf
. Reportez-vous à la documentation SDK pour plus d’informations.Informations de contact
- Cliquez sur l’icône de chat dans le coin inférieur droit et contactez l’équipe d’intégration via une messagerie instantanée. Vous recevrez une réponse qui résoudra votre problème en temps réel.
- Envoyez un e-mail à integration@xsolla.com.
- Contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com.
- Contactez le spécialiste de l’intégration via Basecamp.
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.