2012-08-05 1 views
1

Je l'ai vu cette question: Android - how to check if in app purchase has already been done?Android - vérifier si l'achat d'une application qui a été fait

Il est pas très clair pour moi cependant. J'utilise l'AndroidBillingLibrary, mentionné dans la réponse, et j'ai quelques questions. Lorsque vous utilisez restoreTransactions(), est-ce que cela signifie qu'à ce stade, les achats sont stockés sur l'appareil lui-même? Cela ne pourrait-il pas être manipulé d'une façon ou d'une autre? Et si j'achète un article sur un autre appareil, comment le premier appareil le sait-il? Ai-je besoin de restaurer à nouveau?

Merci à l'avance

Répondre

2

Pour la première question, chaque achat est géré avec un ID, les éléments ainsi gérés ne fonctionnent qu'avec restoreTransactions(). En outre, restoreTransactions() ne fonctionne pas pour les ID de produit réservés. Ainsi, il est toujours en sécurité.

Idéalement, vous devez appeler restoreTransactions() chaque fois que l'application fonctionne. L'élément clé est que toutes les transactions sont associées au périphérique/à l'ID utilisateur (je ne sais pas comment Google gère l'authentification côté serveur, mais je suppose qu'il utilise une combinaison de votre compte Google et des téléphones auxquels le compte Google est associé.). Donc, si quelqu'un modifiait le fichier de transaction, il serait invalidé quand il serait comparé au fichier de log du côté de Google.

L'espoir que cela clarifie les choses :)

+0

Mais je suppose que les transactions sont stockées dans certains fichiers. Je ne pouvais pas simplement manipuler ce fichier? – nhaarman

+0

vous pouvez, mais il doit toujours faire référence aux serveurs de Google lorsque vous essayez de restoreTransaction(). Avec le fichier falsifié, Google le rejettera :) – bernlim

+0

Que voulez-vous dire par «ramené vivre»? – nhaarman

Questions connexes