Android电子市场应用内购买:如何获取用户付款的货币?

我有一个Android应用程序使用应用程序内购买迎合国际观众,所以我希望以不同的货币付款。 当然,我想用用户的当地货币来显示购买的物品,但我真的不知道如何。

使用用户的地区或语言似乎是一个不好的指标,因为货币似乎取决于用户正在使用的市场帐户区域,而不是设备设置。

我怎样才能找出用户付款的货币?

谢谢。

Solutions Collecting From Web of "Android电子市场应用内购买:如何获取用户付款的货币?"

从IAB版本3开始 ,可购买产品的SKU详细信息包括格式化的价格,其中包括用户将支付的货币 (与Google Play商店相对应的货币):

在这里输入图像说明 price价值的一些例子(不是来自真正的SKU):

  • 3,99€
  • £2.99
  • $ 4.99

编辑 :我已经更新SKU细节表,现在包括有关price_currency_code字段的信息。

由于市场用来处理交易的汇率可能会在您显示价格和用户购买之间波动,所以做起来有些困难。 我敢说,谷歌宁愿你不这样做,因为它可能会导致客户大喊大叫,因为你说10美元,他们收取12美元。

你最好的select(在框架内不知道怎么做的)是询问用户他们想要支付什么货币,然后给他们一个大致的价格(我会把它列在括号内,旁边是所提供的价格,如“USD $ 10 [大约9澳元]“)。 您应该能够使用汇率API来获取它。

这是一个混乱,但你应该只需要问一次,保存偏好。 如果你真的想要棘手,你可以使用粗略的位置数据来获取它们的语言环境,并最初用这种方式填充这个值。

  1. 您可能会要求用户最初select他们的货币(可选)。
  2. 以美元显示价格默认。 为用户在项目select屏幕上更改货币提供一个选项。 也许在显示价格附近的图标/button打开所有货币的下拉菜单。 当用户从下拉菜单中select货币时,所有项目的价格都应以选定的货币显示。

我不认为这是一个好主意,因为在应用程序结算不是由你来处理,它是由市场来处理。 只需以美元或欧元写下价格,并让用户在结账页面上以自己的货币查看购买。

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

也许使用设备的默认语言环境?

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

那么你可以做一个比较。

只是一个想法!