Покупка в магазине Android Market: как получить валюту, в которой будет платить пользователь? - PullRequest
29 голосов
/ 23 февраля 2012

У меня есть приложение для Android с использованием In-App-Purchase, которое обслуживает международную аудиторию, поэтому я ожидаю выплаты в разных валютах.Конечно, я хотел бы показать товары для покупки в местной валюте пользователя, но я не знаю, как.

Использование региона или языка пользователя кажется плохим показателем, так как валюта кажетсязависеть от региона учетной записи Market, которую использует пользователь, а не от настроек устройства.

Как узнать, в какой валюте будет платить пользователь?

Спасибо.

Ответы [ 5 ]

22 голосов
/ 01 августа 2014

Начиная с IAB версии 3 , данные SKU для покупаемого предмета включают отформатированную цену, которая включает валюту, которую пользователь заплатит в (соответствующая валюта в Google Play). магазин):

enter image description here Некоторые примеры значений price (не из реального SKU):

  • 3,99 €
  • £ 2,99
  • $ 4,99

РЕДАКТИРОВАТЬ : я обновил таблицу сведений о SKU, теперь включив информацию о поле price_currency_code.

5 голосов
/ 03 марта 2012

Это несколько сложно сделать, так как обменный курс, который использует рынок для обработки транзакции, может колебаться между отображением цены и покупкой пользователем. Я полагаю, что Google предпочел бы, чтобы вы этого не делали, так как это может привести к тому, что клиенты будут кричать на них / вас, потому что вы сказали 10 долларов, а с них взяли 12 долларов.

Ваша лучшая ставка (если кто-то не знает, как это сделать в рамках), это спросить пользователя, в какой валюте он хочет заплатить, а затем дать ему приблизительную цену (я бы назвал ее в скобках рядом с указанной ценой, например: «10 долларов США [около 9 долларов США]»). Вы должны быть в состоянии захватить это, используя API обменного курса.

Немного возиться, но вам нужно спросить об этом только один раз и сохранить настройки. Если вы действительно хотите быть хитрым, вы можете использовать грубые данные о местоположении, чтобы получить их локаль и первоначально заполнить значение таким образом.

4 голосов
/ 03 марта 2012
  1. Вы можете сначала попросить пользователя выбрать валюту (необязательно).
  2. Показывать цену в долларах США по умолчанию. Предоставьте пользователю возможность менять валюту на экране выбора товара. Возможно значок / кнопка рядом с тем местом, где отображается цена, открывающая выпадающий список всех валют. Когда пользователь выбирает валюту из выпадающего списка, цена всех товаров должна отображаться в выбранной валюте.
3 голосов
/ 23 февраля 2012

Не думаю, что такая хорошая идея, поскольку биллинг внутри приложения не обрабатывается вами, а рынком. Просто напишите цену в долларах или евро, и пусть пользователь увидит покупку в своей валюте на странице оформления заказа.

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

0 голосов
/ 23 февраля 2012

Возможно использовать локаль по умолчанию для устройства?

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

Тогда вы можете сравнить это.

Просто идея!

...