Vous devrez peut-être effectuer des actions de gestion sur les abonnements ou les achats ponctuels dans le cadre de vos activités quotidiennes. Par exemple, votre service client devra peut-être 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. Si vous souhaitez les gérer depuis votre propre système, vous pouvez le faire à l'aide de l' API Google Play Developer.
Annuler les abonnements
Les annulations d'abonnement peuvent être initiées par les utilisateurs ou les développeurs.
Annulations initiées par l'utilisateur
Les utilisateurs peuvent annuler un abonnement Google Play à tout moment à l'aide du Play Store. Le cas échéant, vous devez également proposer aux utilisateurs une option pour annuler leurs abonnements dans votre application et sur votre site Web.
Le moyen le plus simple de permettre aux utilisateurs d'annuler volontairement leur abonnement consiste à fournir des liens profonds dans votre application vers le Play Store, où ils peuvent consulter et gérer leurs abonnements.
Annulations initiées par le développeur
En tant que développeur, vous devrez peut-être également déclencher des annulations depuis votre backend.
L'purchases.subscriptions.cancel
API vous permet d'annuler un achat d'abonnement.
Par exemple, vous pouvez utiliser cette méthode pour refuser un ancien service.
L'annulation d'un abonnement n'entraîne pas de remboursement, et l'utilisateur conserve l'accès jusqu'à la fin de sa période de facturation en cours.
Cette méthode vous permet de spécifier les types d'annulations suivants dans le paramètre de corps de requête cancellationType :
USER_REQUESTED_STOP_RENEWALS: annule l'abonnement comme si les utilisateurs l'avaient annulé depuis le Play Store. Les paiements échelonnés se poursuivent pendant le reste de la période d'engagement en cours. Depuis le Play Store, les utilisateurs peuvent restaurer l'abonnement avant son expiration ou se réabonner après son expiration s'il est activé pour le forfait de base.
DEVELOPER_REQUESTED_STOP_PAYMENTS: annule l'abonnement et empêche tout paiement ultérieur. Les utilisateurs ne peuvent pas restaurer l'abonnement ni s'y réabonner depuis le Play Store, mais vous pouvez leur permettre de s'abonner à nouveau dans votre application.
Permettre aux utilisateurs de restaurer les abonnements non expirés
Dans certains cas, il peut être utile d'autoriser les utilisateurs à restaurer les abonnements non expirés depuis le centre des abonnements Play après avoir déclenché l'annulation en tant que développeur. Par exemple, vous pouvez fournir un flux d'annulation personnalisé dans l'application. En fonction de votre logique métier, vous pouvez décider quelles annulations déclenchées depuis votre backend peuvent être restaurées par les utilisateurs.
Pour indiquer qu'un utilisateur peut restaurer l'annulation, envoyez une requête POST
à l'API purchases.subscriptions.cancel et définissez le paramètre de requête cancellationType
sur la valeur USER_REQUESTED_STOP_RENEWALS.
Exemple :
- Jeton d'achat de l'abonnement
1a2b3c4d5e6f7g8h9i0j - Nom du package de l'application
com.your.app - ID d'abonnement
your-subscription-product
Requête HTTP POST :
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel
Corps de la requête :
{
"cancellationType": "USER_REQUESTED_STOP_RENEWALS"
}
Permettre aux utilisateurs de se réabonner aux abonnements expirés
Pour autoriser le réabonnement à un abonnement expiré, vous devez activer
l'option Se réabonner
dans le forfait de base de l'abonnement, puis annuler l'abonnement en définissant le
cancellationType paramètre sur la valeur USER_REQUESTED_STOP_RENEWALS.
Permettre aux utilisateurs de se réabonner uniquement dans votre application
Si vous avez défini le paramètre cancellationType sur DEVELOPER_REQUESTED_STOP_PAYMENTS ou si vous ne l'avez pas défini cancellationType, les utilisateurs ne peuvent pas restaurer leur abonnement depuis le centre des abonnements Play. Toutefois, les utilisateurs peuvent s'abonner à nouveau via votre application si nécessaire.
Cette action déclenche une notification en temps réel pour les développeurs SUBSCRIPTION_CANCELED. Gérez ces annulations comme décrit dans la section
Annulations.
Reporter la facturation
Vous pouvez prolonger la période de droit d'un abonnement en
utilisant la subscriptionsv2.defer méthode. Lorsque vous reportez un abonnement avec des modules complémentaires, tous les éléments de l'abonnement sont reportés de la même durée. Pendant la période de report, l'utilisateur reste abonné à votre contenu, mais n'est pas facturé pour la durée supplémentaire. Lorsque vous reportez la facturation d'un abonnement, les informations sur l'état sont mises à jour en conséquence et s'affichent 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 la date d'expiration.
Voici quelques exemples d'utilisation de la facturation différée :
- Offrez aux utilisateurs un accès sans frais en tant qu'offre spéciale, par exemple une semaine sans frais aux abonnés existants qui remplissent une enquête de satisfaction.
- Offrez aux clients un accès sans frais en guise de geste commercial, par exemple après une panne prolongée qui a pu affecter leur capacité à utiliser votre service.
La facturation peut être différée pour une durée allant d'un jour à une année par appel d'API. Pour différer davantage la fin du droit, appelez à nouveau l'API avant 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 la section Reporter la facturation d'un abonné dans À propos des abonnements.
Exemple :
Le service de streaming FitnessGoals souhaite lancer une promotion pour encourager l'exercice régulier en février.
Il décide d'offrir un mois de service supplémentaire à tout abonné qui s'entraîne avec FitnessGoals au moins 10 fois au cours du mois de février.
Il suit les résultats du défi et, le 1er mars, il appelle la méthode subscriptionsv2.defer pour chaque achat d'abonnement actif appartenant aux utilisateurs qui ont relevé le défi en février.
Ces utilisateurs bénéficient d'un mois complet supplémentaire de vidéos d'exercices réguliers sans frais, et ils racontent à tous leurs amis comment FitnessGoals les aide à rester en bonne santé.
Effectuer des remboursements et des révocations
Dans de nombreuses situations, vous pouvez être amené à rembourser ou à révoquer l'accès à un abonnement ou à un achat ponctuel.
Rembourser intégralement une commande par ID de commande
Avec l'orders.refund
API, vous pouvez effectuer des remboursements intégraux pour toute 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é en plus du remboursement.
Si vous effectuez une révocation avec l'appel de remboursement pour l'achat d'un abonnement, l'abonnement est immédiatement résilié et déclenche une notification en temps réel pour les développeurs SUBSCRIPTION_REVOKED. Pour savoir comment gérer ces événements, consultez la section Révocations du guide de gestion du cycle de vie des abonnements.
Exemple :
Pour célébrer le début de la nouvelle Coupe du monde, l'application d'e-sport Football-Not-Soccer décide de tirer au sort des maillots virtuels sans frais pour tous les utilisateurs qui achètent de nouveaux kits d'équipe au cours des 24 premières heures.
Football-Not-Soccer utilise l'
orders.refundAPI 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
Dans certains cas d'utilisation, vous devrez peut-être révoquer l'accès à l'abonnement d'un utilisateur et effectuer un remboursement. Play Billing propose des méthodes de révocation, y compris des remboursements intégraux et des remboursements au prorata via l'subscriptionsv2.revokeAPI. Avec ce point de terminaison, vous pouvez spécifier revocationContext
pour déterminer comment le remboursement est calculé.
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
Révocations.
Exemple :
- Achat avec le jeton d'achat
1a2b3c4d5e6f7g8h9i0j - Application avec le nom de package
com.your.app - Intention d'effectuer 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 totaux
Si vous devez résilier un abonnement et rembourser le montant total de la période de facturation en cours, effectuez un remboursement total. Utilisez la
purchases.subscriptionsv2.revoke
fonction, et définissez "fullRefund": {} comme type de remboursement.
Exemple :
Maria a un abonnement mensuel de 30 jours à renouvellement automatique au forfait de streaming SuperMovies. Maria a rencontré des problèmes techniques qui l'empêchent d'accéder au contenu. Elle contacte le service client le troisième jour de son cycle de facturation en indiquant qu'elle n'a jamais eu accès à l'abonnement.
Le service client localise les détails de l'achat d'abonnement de Maria dans son système et déclenche un appel à
purchases.subscriptionsv2.revokeen demandant un remboursement total.Le service client indique à Maria qu'elle devrait être remboursée à 100% du prix de son abonnement et qu'elle n'est plus abonnée au forfait.
Remboursements au prorata
Si vous devez résilier un abonnement et rembourser partiellement le temps de droit restant, effectuez un remboursement au prorata. Utilisez la
purchases.subscriptionsv2.revoke
fonction et définissez "proratedRefund": {} comme type de remboursement.
Exemple :
Maria a un abonnement mensuel de 30 jours à renouvellement automatique au forfait de streaming SuperMovies. Elle utilise le service depuis un certain temps. Maria contacte le service client le 15e jour de son cycle de facturation en indiquant qu'elle déménage à l'étranger et qu'elle ne pourra plus utiliser le service à partir du jour suivant.
Le service client localise les détails de l'achat d'abonnement de Maria dans son système et déclenche un appel à
purchases.subscriptionsv2.revokeen demandant un remboursement au prorata.Le service client indique à Maria qu'elle devrait être remboursée d'environ 50% du prix de son abonnement et que l'accès au service a été immédiatement résilié.