Gérer les abonnements et les achats uniques

Vous devrez peut-être prendre des mesures de gestion des abonnements ou des achats uniques dans le cadre de vos activités quotidiennes. Par exemple, votre service client peut avoir besoin d'effectuer des remboursements totaux ou partiels pour les utilisateurs, ou vous devrez peut-être révoquer des droits dans certains cas. Vous pouvez gérer les commandes depuis la Play Console ou à l'aide de l'API Google Play Developer.

Annuler les abonnements

Les utilisateurs peuvent résilier un abonnement Google Play à tout moment sur le Play Store. Toutefois, vous devez également leur permettre de résilier leur abonnement dans votre application et sur votre site Web, le cas échéant.

Le moyen le plus simple de permettre aux utilisateurs de résilier leur abonnement est de créer un lien profond vers le Play Store, où ils pourront consulter et gérer leur abonnement.

Vous devrez peut-être également déclencher des annulations depuis votre backend. La méthode purchases.subscriptions.cancel vous permet d'annuler un abonnement. Par exemple, vous pouvez utiliser cette méthode pour désactiver un ancien service. La résiliation d'un abonnement n'entraîne pas de remboursement, et l'utilisateur conserve son accès jusqu'à la fin de la période de facturation en cours. La résiliation d'un abonnement avec cette méthode empêche l'utilisateur de le restaurer sur le Play Store. Toutefois, les utilisateurs peuvent toujours se réinscrire via votre application s'ils en ont besoin.

Cette action déclenche une notification en temps réel pour les développeurs SUBSCRIPTION_CANCELED. Gérez ces résiliations comme décrit dans la section Résiliations.

Reporter la facturation

Utilisez subscriptions.defer pour prolonger la durée des droits d'accès d'un abonnement. Pendant la période de report, l'utilisateur reste abonné à votre contenu, mais le temps supplémentaire n'est pas facturé. Lorsque vous différez la facturation d'un abonnement, les informations d'état sont mises à jour en conséquence et apparaissent dans le champ expiryTime des informations sur l'état de l'achat:

  • Pour les abonnements récurrents actifs, la facturation différée prolonge la prochaine date de renouvellement.
  • Pour les forfaits prépayés, la facturation différée prolonge le délai d'expiration.

Voici quelques exemples d'utilisation de la facturation différée:

  • Proposez aux utilisateurs un accès sans frais en tant qu'offre spéciale, par exemple en offrant une semaine sans frais aux abonnés existants pour qu'ils répondent à une enquête de satisfaction.
  • Proposez aux clients un accès sans frais dans le cadre d'une action de service client, par exemple après une panne prolongée susceptible d'avoir affecté leur capacité à utiliser votre service.

La facturation peut être différée pour une durée allant d'un jour à un an par appel d'API. Pour différer davantage la fin du droit d'accès, appelez à nouveau l'API avant l'arrivée de la nouvelle date d'expiration.

Cette action déclenche une notification en temps réel pour les développeurs SUBSCRIPTION_DEFERRED. Pour savoir comment gérer ces événements, consultez Différer la facturation d'un abonné dans À propos des abonnements.

Exemple :

  1. Le service de streaming FitnessGoals veut lancer une promotion pour encourager les exercices réguliers en février.

  2. Elle décide d'offrir un mois de service supplémentaire à tous les abonnés qui font de l'exercice avec FitnessGoals au moins 10 fois au cours du mois de février.

  3. Il suit les résultats du défi et, le 1er mars, appelle l'API subscriptions.defer pour chaque achat d'abonnement actif appartenant à des utilisateurs qui ont relevé le défi en février.

  4. Ces utilisateurs bénéficient d'un mois supplémentaire complet de vidéos d'exercices réguliers, sans frais, et les utilisateurs expliquent à leurs amis comment FitnessGoals les aide à rester en bonne santé !

Émettre des remboursements et révoquer des comptes

Dans de nombreux cas, vous pouvez être amené à rembourser un abonnement ou à effectuer un achat unique, ou à révoquer son accès.

Rembourser entièrement une commande par ID de commande

Avec l'API orders.refund, vous pouvez rembourser intégralement n'importe quelle commande dans les trois ans suivant l'achat. La méthode orders.refund reçoit un paramètre de révocation indiquant si l'accès doit être révoqué ou non, en plus de fournir le remboursement.

Si vous émettez une révocation lors de l'appel de remboursement d'un abonnement, celui-ci est immédiatement résilié et une notification en temps réel pour les développeurs est déclenchéeSUBSCRIPTION_REVOKED. Consultez la section Révocations du guide de gestion du cycle de vie des abonnements pour savoir comment gérer ces événements.

Exemple :

  1. Pour célébrer le début de la nouvelle Coupe du Monde, l'application d'e-sports Football-Not-Soccer décide de ramasser des maillots virtuels sans frais pour tous les utilisateurs qui achètent de nouveaux maillots d'équipe au cours des premières 24 heures.

  2. Football-Not-Soccer utilise l'API orders.refund sans transmettre de paramètre de révocation pour rembourser les achats de maillots aux gagnants.

Révoquer et rembourser un abonnement par jeton d'achat

Pour certains cas d'utilisation, vous devrez peut-être révoquer l'accès à l'abonnement d'un utilisateur et le rembourser. Play Billing propose des remboursements partiels, y compris les remboursements au prorata, que vous pouvez émettre à l'aide de l'API subscriptionsv2.revoke. Avec ce point de terminaison, vous pouvez spécifier revocationContext pour déterminer le mode de calcul du remboursement.

Cette action déclenche une notification en temps réel pour les développeurs SUBSCRIPTION_REVOKED. Votre application doit gérer ces annulations comme décrit dans la section Révocations.

Exemple :

  • Acheter avec le jeton d'achat 1a2b3c4d5e6f7g8h9i0j
  • Application portant le nom de package com.your.app
  • Intention d'émission d'un remboursement au prorata

Requête HTTP POST:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

Corps de la requête:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

Remboursements au prorata

Si vous devez résilier un abonnement et rembourser partiellement la durée restante du droit d'accès, effectuez un remboursement au prorata. Utilisez la fonction purchases.subscriptionsv2.revoke et définissez "proratedRefund": {} comme type de remboursement.

Exemple :

  1. Maria dispose d'un abonnement mensuel de 30 jours de SuperMoviesstreaming à renouvellement automatique. Elle utilise ce service avec plaisir depuis un certain temps. Marie contacte le service client le 15e jour de son cycle de facturation, indiquant qu'elle déménage à l'étranger et qu'elle ne pourra plus utiliser le service dès le lendemain.

  2. Le service client localise les détails de l'achat de l'abonnement de Marie dans son système et déclenche un appel vers purchases.subscriptionsv2.revoke pour demander un remboursement au prorata.

  3. Le service client indique à Marie qu'environ 50% du prix de son abonnement devrait être remboursé et que l'accès au service a été immédiatement résilié.