Android Market In-App-Purchase: как получить валюту, которую пользователь будет платить?
У меня есть приложение для Android, использующее In-App-Purchase, которое обслуживает международную аудиторию, поэтому я ожидаю платежи в разных валютах. Конечно, я хотел бы показать предметы для покупки в локальной валюте пользователя, но я действительно не знаю, как это сделать.
Использование региона или языка пользователя кажется плохим индикатором, поскольку валюта, похоже, зависит от региона учетной записи Market, которую пользователь использует, а не от настроек устройства.
Как я могу узнать, в какой валюте будет платить пользователь?
Спасибо.
Ответы
Ответ 1
Как и в IAB версии 3, сведения о SKU для приобретаемого товара включают форматированную цену, которая включает валюту, которую пользователь будет платить в > (соответствующая валюта в их магазине Google Play):
Некоторые примеры значений price
(не из реального SKU):
РЕДАКТИРОВАТЬ. Я обновил таблицу подробных сведений о SKU, теперь включая информацию о поле price_currency_code.
Ответ 2
Это сложно сделать, поскольку обменный курс, используемый рынком для обработки транзакции, может колебаться между вами, показывающей цену и покупкой пользователя. Я полагаю, Google предпочел бы, чтобы вы этого не делали, поскольку это может привести к тому, что клиенты будут кричать на них/вас, потому что вы сказали 10 долларов, и им было предъявлено обвинение в размере 12 долларов.
Лучше всего (если кто-то не знает, как это сделать в рамках) - спросить у пользователя, в какой валюте они хотят платить, а затем дать им приблизительную цену (я бы перечислил ее в скобках рядом с поставленной ценой, например "10 долларов США (приблизительно AUD 9 долларов США)" ). Вы должны иметь возможность захватить его с помощью API обменного курса.
Это немного беспорядок, но вам нужно только один раз спросить и сохранить предпочтение. Если вы действительно хотите быть хитрыми, вы можете использовать грубые данные о местоположении, чтобы получить их локаль и изначально заполнить значение таким образом.
Ответ 3
- Сначала вы можете попросить пользователя выбрать свою валюту (необязательно).
- Показывать цену в долларах США по умолчанию. Предоставьте пользователю возможность изменять валюту на экране выбора позиций. Возможно, значок/кнопка рядом с тем, где отображается цена, которая открывает раскрывающийся список всех валют. Когда пользователь выбирает валюту из раскрывающегося списка, цена всех товаров должна отображаться в выбранной валюте.
Ответ 4
Я не думаю, что такая хорошая идея, так как биллинг в приложении не обрабатывается вами, а обрабатывается рынком. Просто напишите цену в долларах или евро, и пусть пользователь увидит покупку в своей валюте на странице выписки.
http://developer.android.com/guide/market/billing/index.html
Ответ 5
Возможно, используется локаль по умолчанию устройства?
String locale = Locale.getDefault().toString();
Тогда вы можете сделать сравнение с этим.
Просто идея!