Ludovic ROLAND

Blog technique sur mes expériences de développeur.

Android : Gestion, résiliation et remboursement des abonnements

26 août 2022

Après une longue période de disette, j’ai finalement pu reprendre la main techniquement sur le blog. Après avoir migre l’ensemble du blog de Octopress 2 à Jekyll, j’ai terminé de sortir mes archives sur des tutoriels Perl publiés à l’époque sur le Site du Zéro.

Maintenant que tout est rentré en ordre, je vais essayer d’écrire de nouveau des articles régulièrement pour alimenter ce blog technique avec toujours le même objectif : écrire des articles sur les problématiques que je rencontre au quotidien sur les projets sur lesquels je travaille.

Et on débute avec un article qui sera très simple mais pourtant très important sur comment réaliser la gestion, la résiliation et le remboursement des abonnements au sein d’une application mobile Android.

Vous n’êtes pas sans savoir qu’à partir du 30 septembre 2022, de nouvelles règles rentrent vigueur pour les applications mobiles qui sont déployées sur le Google Play Store. Parmi ces règles, on retrouve l’exigence suivantes :

Pour résumer, dans le cas où votre application propose un système d’abonnement, tout utilisateur qui y a souscrit doit pouvoir le gérer depuis l’application.

En réalité, il n’est pas forcément nécessaire d’implémenter une logique métier très compliquée au sein de l’application pour gérer la souscription directement. En effet, Google propose deux solutions :

Dans le cas nominal, puisque les achats in-app (consommables, non consommables et abonnements) sont faits via le Play Store, la première solution répond au problème. Il convient donc simplement de proposer dans votre application un lien externe qui redirige l’utilisateur vers le centre des abonnements Google Play. Le plus compliqué reste alors de trouver l’URL. Pour vous mâcher le travail, la voici : https://play.google.com/store/account/subscriptions.

Il suffit alors de l’ouvrir comme on ouvre un lien externe de manière très classique sur Android, à l’aide d’une Intent :

val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/account/subscriptions"))
startActivity(intent)

L’avantage de cette solution c’est qu’en plus de répondre parfaitement à l’exigence du Play Store, plutôt que d’ouvrir votre navigateur web, le deeplink devrait normalement être capturé par l’application Play Store pour une expérience native pour vos utilisateurs !

Commentaires