Veuillez activer Javascript pour voir le contenu

[Flutter] Comment valider une souscription avec in_app_purchase ?

· ☕ 2 min de lecture

J’ai eu la mauvaise surprise le mois dernier de voir tous mes abonnements sur android se faire rembourser automatiquement au bout de 3 jours.

Cela est dû à Google Play Billing Library v2 qui oblige à valider chaque souscription (à l’image d’IOS) dans les 3 jours, sinon => remboursement de l’utilisateur 💸.

Cela est prévu depuis bien longtemps et l’équipe résponsable de la bibliothèque a très bien communiqué à ce sujet.
MAIS l’équipe de Flutter est à la traîne et la documentation porte vraiment à confusion, en effet il est indiqué que la validation n’est requise que pour IOS (sous entendant qu’elle est automatiquement faite sur android).

if (Platform.isIOS) {
// Mark that you’ve delivered the purchase. Only the App Store requires
// this final confirmation.
InAppPurchaseConnection.instance.completePurchase(purchase);
}

Mais rien n’est fait et il faudra en effet valider comme sur IOS chacune des souscriptions (la documentation est donc actuellement fause…).

A l’écriture de l’article (plus d’un mois après la mise en application de la règle des 3 jours) il est encore indiqué que la validation n’est requise que pour IOS…

Pour régler le problème il faudra avant tout de chose passer sur une version >= 0.3.0 de in_app_purchase et tout simplement appeler la méthode completePurchase.

1
2
3
if (purchaseDetails.pendingCompletePurchase) {
  await InAppPurchaseConnection.instance.completePurchase(purchaseDetails);
}
Inutile de vérifier la propriété isAcknowledged (pour éviter les requêtes inutiles), la méthode le fait d’elle même.

Voilà!

Sources

Documentation

Partager sur

Jérémy Landon
ÉCRIT PAR
Jérémy Landon
Freelance / Author / Speaker / Open source contributor

Contenu de cette page