2014-07-21 1 views
7

Comment puis-je obtenir l'adresse e-mail/identifiant du compte Google Play associé à une application?Android: associer le compte Google Play à la facturation via l'application

J'ai besoin de cela pour montrer à l'utilisateur quel compte est pris en compte pour la facturation via l'application. Pour autant que je comprenne, Google In-App facturation utilise le compte qui a téléchargé l'application, mais je dois trouver un moyen de l'afficher à l'utilisateur, dans le cas où il a plus d'un compte configuré.

Cela empêcherait les utilisateurs de se plaindre de ne pas avoir leurs achats reconnus, lorsqu'ils ont un autre compte associé à l'application.

Répondre

0

Je ne pense pas qu'il existe un moyen de détecter le compte que l'utilisateur utilisera lors d'un achat in-app. La seule chose que je peux penser est d'interroger le AccountManager pour vérifier si l'utilisateur a plus d'un compte google et afficher un message disant quelque chose comme: "Vous avez plus d'un compte google, assurez-vous que vous utilisez le bon avant de continuer ". Le seul problème avec cette approche est que vous devez ajouter les autorisations requises pour effectuer cette requête.

0

Il n'y a aucun moyen de connaître le courriel que l'utilisateur achète.

Même en utilisant le Account Manager, vous renvoie une liste complète de tous les emails. Il n'est pas aussi simple que de choisir le premier de la liste, puisque l'utilisateur peut acheter avec n'importe quel e-mail associé au téléphone. Vous pouvez utiliser le AbstractAccountAuthenticator#getAccountRemovalAllowed, pour savoir que le compte ne peut pas être supprimé, et savoir quel est le courrier principal (puisque vous ne pouvez pas supprimer le courrier principal), mais même cela peut changer, l'utilisateur peut changer le courrier principal à tout moment.

Je voudrais savoir comment faire cela, mais malheureusement, il n'y a aucun moyen. Dans mon cas, ce n'est pas de l'argent essentiel, donc je m'envoie comme "payload" tous les comptes email du téléphone concaténés, et tous ceux qui permettraient de débloquer du contenu premium dans mon application, que puis-je perdre? Il est probable, mais je préfère cela à un score négatif sur le marché parce qu'un utilisateur achète du contenu premium et ne peut pas être débloqué parce que j'ai choisi le mauvais courrier.

0

Il n'est actuellement pas possible d'obtenir de Google Play le compte qui a téléchargé l'application. La suggestion est de créer votre propre compte d'utilisateur de l'application et autoriser uniquement les achats après l'enregistrement de l'utilisateur (vous pouvez utiliser la méthode que vous souhaitez utiliser).

Et, pour chaque achat, vous liez dans votre sauvegardé sur le compte de l'utilisateur. Et, si les utilisateurs se connectent sur un autre appareil utilisant un autre compte Google, s'il se connecte à votre application en utilisant le compte approprié, l'accès sera accordé. L'équipe de Google Play est consciente que ce n'est pas la meilleure solution, et comme j'ai commenté on this question, nous améliorons l'API et dès que nous aurons une mise à jour, je posterai aussi ici.

Questions connexes