Les achats intégrés via les codes promotionnels renvoient une chaîne de charge utile de développeur vide

J’ai une application publiée sur le canal alpha, avec un élément (dés) géré intégré à l’application qui coûte 1 $.

Lorsque j’achète normalement, c’est-à-dire que j’utilise une carte de crédit / débit, Google renvoie la chaîne de charge utile du développeur, mais si je choisis un code promotionnel et que j’entre un code, Google renvoie une chaîne de charge de développeur vide et l’authentification échoue. ‘onIabPurchaseFinished ()’.

Je dois mentionner que cela ne se produit que si je choisis d’utiliser un code du stream d’achat de l’application et que tout fonctionne parfaitement si j’ouvre d’abord Play Store, rachète le code, puis reviens et ouvre l’application.

Est-ce un bug de la part de Google?

EDIT: Le produit Play Store est attendu, car il ne peut pas connaître votre charge utile et l’achat est effectué sans avoir à le vérifier.

Ce problème a été ouvert sur le référentiel d’échantillons de Google Play and Android. On dirait qu’il a été ignoré pendant longtemps et a finalement été fermé avec ce commentaire. En bref, ils ont les suggestions suivantes.


Nous avons revu nos directives et API internes, et puisque le fichier developerPayload n’est pas pris en charge sur toutes les fonctionnalités de l’API de facturation In-App (y compris les codes promotionnels), nous supprimons la recommandation de l’utiliser comme contrôle de sécurité.

Comme vous pouvez le voir dans notre documentation, sur la page Implémentation de la facturation intégrée aux applications ( https://developer.android.com/google/play/billing/billing_integrate.html ), nous avons ajouté une recommandation:

Attention: N’utilisez pas le champ developerPayload à des fins de validation de sécurité. Ce champ n’est pas toujours disponible lors de l’exécution de tâches liées à la facturation intégrée aux applications. Pour plus d’informations sur les meilleures pratiques de sécurité, voir le guide Sécurité et conception de la facturation dans l’application.

Notre recommandation est de valider sur votre propre backend, en utilisant l’API Play Developer.