Composants Play Billing dans votre serveur de backend

Vous venez d'implémenter Play Billing dans votre application Android ou votre application Web progressive, et vos utilisateurs peuvent acheter vos produits numériques. Il est maintenant temps d'implémenter certains composants clés de Google Play Billing dans votre serveur backend.

API Google Play Developer

L'API Google Play Developer comporte deux composants : l'API Subscriptions and In-app Purchases et l'API Publishing. L'API Subscriptions and In-app Purchases se compose des ressources REST suivantes pour vous aider à gérer les produits et les achats :

Vous pouvez utiliser l'API Google Play Developer directement en tant qu'API REST. Les bibliothèques clientes peuvent vous aider à démarrer rapidement le développement. Les bibliothèques clientes pour toutes les langues acceptées sont disponibles ici. Suivez le guide de démarrage de l'API Google Play Developer pour associer votre projet d'API et configurer les clients d'accès à l'API.

Lister tous les produits intégrés

Lorsque vous interrogez les informations détaillées sur les produits disponibles sur l'interface utilisateur (dans votre application Android ou votre application Web progressive), vous devez spécifier la liste des ID produit. Vous pouvez implémenter cela sur votre serveur backend avec la méthode inappproducts.list de l'API Play Developer, qui liste tous les produits et abonnements intégrés à l'application que vous avez créés dans la Play Console. Veillez à vérifier le status de chaque produit et à n'envoyer que ceux dont le active est défini sur "active" au client de votre application.

Vérifier les achats avant d'accorder des droits

Lorsque vous implémentez Play Billing dans votre application Android ou votre application Web progressive, il est essentiel de vérifier les achats avant d'accorder un droit d'accès à l'utilisateur. Lorsque vous accordez un droit d'accès à un utilisateur, vous lui donnez accès aux avantages ou au contenu associés à l'article qu'il a acheté. Étant donné que cela nécessite de traiter des données sensibles, cette opération doit être effectuée sur le serveur backend.

L'API Google Play Developer fournit les méthodes purchases.products:get et purchases.subscriptions:get. Utilisez-les avec les jetons d'achat récupérés dans l'application ou stockés sur votre serveur backend pour vérifier qu'un achat est légitime. Vous devez suivre les jetons d'achat sur votre serveur backend pour les achats supplémentaires et la validation des droits d'accès des utilisateurs. Pour en savoir plus sur les étapes à suivre, consultez la documentation Google Play Billing sur la validation des achats.

Achats via une application

Après avoir reçu le jeton d'achat du client, votre backend doit appeler l'API Google Play Developer et vérifier qu'il n'a pas déjà été consommé. La valeur du champ purchaseState d'un achat valide est 1.

Si l'achat est valide, le client doit le confirmer et accorder le droit d'accès après avoir reçu la réponse du serveur.

Achats d'abonnements

Comme pour la validation des achats via l'application, votre serveur backend doit appeler l'API Google Play Developer après avoir reçu le jeton d'achat du client et valider que l'abonnement est toujours valide.

Votre client doit accorder le droit d'accès si le champ expiryTimeMillis de l'abonnement est supérieur à l'heure actuelle.

C'est également le bon moment pour vérifier le champ linkedPurchaseToken et mettre à jour votre base de données d'abonnements en conséquence afin de gérer les mises à niveau, les rétrogradations et les autres flux d'abonnement. Le reste de cette page fournit plus de détails.

Maintenir l'état du backend à jour

Si votre application est disponible sur différentes plates-formes (qui peuvent également utiliser différents modes de paiement), le suivi de vos utilisateurs et de leurs achats sur votre serveur backend vous permettra de vous assurer que vos utilisateurs peuvent accéder aux mêmes droits d'accès sur les appareils et plates-formes sur lesquels ils utilisent votre application.

Il peut s'agir d'une simple base de données dans laquelle vous conservez un enregistrement de vos utilisateurs et de leurs droits d'accès actuels. Ensuite, vous le mettez à jour en fonction des achats ou des droits d'accès des utilisateurs. La prochaine fois qu'ils accéderont à votre application depuis une autre plate-forme, vous pourrez récupérer leurs droits d'accès appropriés depuis votre backend afin que votre utilisateur puisse y accéder.

Gérer les changements d'état d'abonnement

Un abonnement peut subir plusieurs changements d'état tout au long de son cycle de vie, et vous devez vous assurer de répondre à chacun d'eux. Pour que votre backend soit toujours à jour, découvrez comment gérer le cycle de vie des abonnements.

Subscription linkedPurchaseToken

Comme indiqué dans la documentation sur les abonnements, chaque nouveau parcours d'achat Google Play (achat initial, mise à niveau ou rétrogradation) génère un jeton d'achat. Le champ linkedPurchaseToken permet de reconnaître lorsque plusieurs jetons d'achat appartiennent au même abonnement.

Chaque fois que vous validez un abonnement, votre backend doit vérifier si le champ linkedPurchaseToken est défini. Si c'est le cas, la valeur de ce champ représente le jeton précédent qui a été remplacé. Vous devez immédiatement marquer l'ancien jeton comme non valide afin que les utilisateurs ne puissent pas l'utiliser pour accéder à votre contenu.

Par exemple, lorsque le backend reçoit le jeton d'achat A pour l'achat initial, avec un champ linkedPurchaseToken vide, il active le droit d'accès pour ce jeton. Plus tard, lorsque le backend reçoit le nouveau jeton d'achat B après la mise à niveau, il vérifie le champ linkedPurchaseToken, constate qu'il est défini sur A et désactive le droit d'accès pour le jeton d'achat A.

Gérer les jetons d'achat associés lors de la mise à niveau d'un abonnement.

Pour en savoir plus sur l'implémentation de linkedPurchaseToken, consultez Implémenter linkedPurchaseToken correctement pour éviter les abonnements en double.

Notifications en temps réel pour les développeurs

La méthode purchases.subscriptions:get de l'API Google Play Developer est la source de vérité pour la gestion des abonnements utilisateur. Si vous gérez l'état de vos abonnés sur un serveur backend sécurisé, vous devez le synchroniser avec les serveurs Google. Toutefois, l'interrogation fréquente de l'API Google Play Developer peut entraîner des restrictions de quota pour l'API et des retards dans la réception des notifications pour les actions importantes des utilisateurs (comme l'annulation ou la mise à niveau d'un abonnement).

Les notifications en temps réel pour les développeurs (RTDN) sont une fonctionnalité de Google Play Billing qui envoie une notification instantanée à votre serveur lorsque l'état des droits d'accès d'un abonné change (par exemple, lorsqu'il souscrit un abonnement, l'annule ou le suspend). Grâce aux RTDN, vous pouvez synchroniser votre base de données d'abonnés en répondant à ces notifications, au lieu d'interroger régulièrement l'API Google Play Developer.

Votre serveur backend recevra une SubscriptionNotification pour les événements affectant l'état de l'abonnement, tels que les renouvellements et les annulations. Appelez ensuite l'API Google Play Developer avec le jeton d'achat figurant dans la notification pour obtenir l'état complet et mettre à jour l'état de votre backend.

Vous pouvez configurer les notifications RTDN pour votre application en suivant ces instructions. Vous devez ensuite configurer votre serveur backend pour qu'il puisse utiliser ces messages.

Pour en savoir plus, consultez la documentation de référence complète sur RTDN.