30 votes

Achat intégré à l'Android Market: comment obtenir la devise dans laquelle un utilisateur paiera?

J'ai une application Android à l'aide In-App-Achat qui s'adresse à un public international, donc j'espère que les paiements en devises. Bien sûr, je voudrais afficher les éléments à l'achat avec la locale de l'utilisateur, de la monnaie, mais je ne sais pas vraiment comment.

À l'aide de la région ou la langue d'un utilisateur ressemble à un mauvais indicateur, la devise semble dépendre de la région du Marché du compte de l'utilisateur et non sur les paramètres de l'appareil.

Comment puis-je trouver la monnaie d'un utilisateur paiera?

Merci.

23voto

Christian García Points 689

Comme d' IAB Version 3, la référence du produit détails de l'achetables élément inclure la forme d'un prix, qui comprend la monnaie de l'utilisateur aurait à payer à l' (la devise correspondante à leur compte Google Play store):

enter image description here Quelques exemples de valeurs de price (pas de véritable SKU):

  • 3,99€
  • £2.99
  • $4.99

EDIT: j'ai mis à jour la référence du produit détails de la table, maintenant, y compris des informations sur la price_currency_code champ.

5voto

Ben Neill Points 1142

C'est un peu difficile à faire que le taux de change que le marché utilise pour traiter la transaction peut varier entre vous indiquant le prix et l'achat de l'utilisateur. J'oserais dire que Google préfère vous n'avez pas fait ce qu'il peut en résulter des clients en leur criant/vous parce que vous avez dit 10 $et ils ont été inculpés de 12$.

Votre meilleur pari (à défaut de quelqu'un en sachant comment faire cela dans le cadre) est à demander à l'utilisateur quelle monnaie qu'ils souhaitent payer et ensuite leur donner un prix approximatif (je voudrais la liste entre parenthèses à côté du prix comme "USD$10 [environ AUD$9]"). Vous devriez être en mesure de la saisir à l'aide d'un taux de change de l'API.

C'est un peu de déconner, mais vous devriez seulement besoin de demander à la fois et d'enregistrer les préférences. Si vous voulez vraiment être difficile, vous pouvez utiliser de grosses données de localisation pour obtenir leurs paramètres régionaux et d'abord remplir la valeur de cette façon.

4voto

Reena Points 60
  1. Vous pouvez demander à l'utilisateur dans un premier temps de choisir sa devise (facultatif).
  2. Afficher le prix en USD par défaut. Fournissez une option pour que l'utilisateur change la devise sur l'écran de sélection des articles. Peut-être une icône / bouton près de l'endroit où le prix est affiché qui ouvre une liste déroulante de toutes les devises. Lorsque l'utilisateur sélectionne une devise dans le menu déroulant, le prix de tous les articles doit être affiché dans la devise sélectionnée.

3voto

Arash Points 39

Je ne pense pas que ce serait une si bonne idée, car la facturation in-app n'est pas gérée par vous, elle est gérée par le marché. Écrivez simplement le prix en dollars ou en euros et laissez l'utilisateur voir l'achat dans sa propre devise sur la page de paiement.

http://developer.android.com/guide/market/billing/index.html

-3voto

romo Points 1492

Peut-être utiliser les paramètres régionaux par défaut de l'appareil?

String locale = Locale.getDefault().toString();

Ensuite, vous pourriez faire une comparaison à partir de cela.

Juste une idée!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X