Blog technique sur mes expériences de développeur.
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 :
Si vous vendez des abonnements par l’intermédiaire d’une ou de plusieurs applications, vous devez vous assurer que les applications concernées indiquent clairement comment l’utilisateur peut gérer ou résilier son abonnement. Vous application doit également donner accès à une option en ligne simple d’utilisation permettant de résilier l’abonnement.
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 :
Vous pouvez répondre à ces exigences en incluant, dans les paramètres de compte de votre application (ou sur une page équivalente), un ou plusieurs des éléments suivants :
* Un lien vers le centre des abonnements Google Play (si votre application utilise le système de facturation de Google Play)
* Un accès direct à votre processus de résiliation
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)
Bien évidemment le code proposé doit être adapté à votre application. Peut-être que le flag Intent.FLAG_ACTIVITY_NEW_TASK
doit être rajouté à votre Intent
?
A noter également que la méthode startActivity
doit être appelée depuis un Context
, une Activity
ou encore un Fragment
.
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 !