Charge utile du développeur

La charge utile du développeur a toujours été utilisée à diverses fins, y compris pour prévenir la fraude et attribuer les achats au bon utilisateur. Avec les versions 2.2 et ultérieures de la bibliothèque Google Play Billing, les cas d'utilisation prévus qui dépendaient auparavant de la charge utile du développeur sont désormais entièrement pris en charge dans les autres parties de la bibliothèque.

Nous avons donc abandonné la charge utile du développeur, à partir de la version 2.2 de la bibliothèque Google Play Billing. Les méthodes associées à la charge utile du développeur sont obsolètes depuis la version 2.2 et ont été supprimées dans la version 3.0. Notez que votre application peut continuer à récupérer la charge utile du développeur pour les achats effectués à l'aide des versions précédentes de la bibliothèque ou d'AIDL.

Pour obtenir la liste détaillée des modifications, consultez les notes de version de la bibliothèque Google Play Billing 2.2 et les notes de version de la bibliothèque Google Play Billing 3.0.

Validation des achats

Pour vous assurer que les achats sont authentiques et qu'ils ne sont pas falsifiés ni relancés, Google vous recommande d'utiliser le jeton d'achat (obtenu via la méthode getPurchaseToken() dans Purchase) ainsi que les API Google Play Developer. Pour en savoir plus, consultez Lutter contre les fraudes et les abus.

Attribution des achats

De nombreuses applications, en particulier les jeux, doivent s'assurer qu'un achat est correctement attribué au personnage ou à l'avatar associé au jeu ou au profil utilisateur dans l'application qui a initié l'achat. À partir de la bibliothèque Google Play Billing 2.2, votre application peut transmettre à Google les identifiants de compte et de profil obscurcis lors du lancement de la boîte de dialogue d'achat, puis les renvoyer lors de la récupération d'un achat.

Utilisez les paramètres setObfuscatedAccountId() et setObfuscatedProfileId() dans BillingFlowParams et récupérez-les à l'aide de la méthode getAccountIdentifiers() dans l'objet Purchase.

Associer des métadonnées à un achat

Google recommande de stocker les métadonnées d'un achat sur un serveur backend sécurisé que vous gérez. Ces métadonnées d'achat doivent être associées au jeton d'achat obtenu à l'aide de la méthode getPurchaseToken dans l'objet Purchase. Pour préserver ces données, transmettez le jeton d'achat et les métadonnées à votre backend lorsque la méthode PurchasesUpdatedListener est appelée après un achat réussi.

Pour garantir l'association des métadonnées en cas d'interruption du parcours d'achat, Google recommande de les stocker sur votre serveur backend avant de lancer la boîte de dialogue d'achat et de les associer à l'ID de compte de l'utilisateur, au SKU acheté et à l'horodatage actuel.

Si le parcours d'achat est interrompu avant l'appel de PurchasesUpdatedListener, votre application détectera l'achat une fois qu'elle aura repris et appelé BillingClient.queryPurchasesAsync(). Vous pouvez ensuite envoyer les valeurs extraites des méthodes getPurchaseTime(), getSku() et getPurchaseToken() de l'objet Purchase à votre serveur backend pour rechercher les métadonnées, les associer au jeton d'achat et poursuivre le traitement de l'achat. Notez que le code temporel que vous avez initialement stocké ne correspond pas exactement à la valeur de la méthode getPurchaseTime() de l'objet Purchase. Vous devez donc les comparer de manière approximative. Par exemple, vous pouvez vérifier si les valeurs sont comprises dans une certaine période.