【问题标题】:Android Market In-App-Purchase: How to get the currency a user will pay in?Android Market In-App-Purchase:如何获得用户支付的货币?
【发布时间】:2012-03-13 05:11:25
【问题描述】:

我有一个使用 In-App-Purchase 的 Android 应用来迎合国际受众,因此我希望以不同的货币付款。当然我想用用户的当地货币显示要购买的物品,但我真的不知道怎么做。

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

我如何知道用户将使用哪种货币付款?

谢谢。

【问题讨论】:

  • 有同样的问题/需要。我们希望能够显示应用内商品的价格。

标签: android in-app-purchase google-play currency


【解决方案1】:

我认为这不是一个好主意,因为应用内结算不是由您处理,而是由市场处理。只需以美元或欧元写下价格,然后让用户在结帐页面上以他们自己的货币查看购买。

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

【讨论】:

  • 好吧,我不认为显示不同的价格是个好主意。我在 Android 文档中根本没有找到关于 i18n 计费问题的任何内容。
  • 我同意让用户选择一种 Google Play 会忽略的货币是个坏主意。目前 Google Play 结账的最大问题是它没有告诉我价格是什么货币。它只是显示一个货币符号。因此,如果我的应用程序仅显示美元价格并带有“结帐时将显示本地定价”消息,那么当他们去结帐时,如果他们的货币也显示为 $ 符号,他们不知道我是否要快速拉一个并向他们收取更多费用,或者它只是显示当地美元的价格。 (例如:新西兰元的价值低于美元)。
【解决方案2】:

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

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

然后你可以做一个比较。

只是一个想法!

【讨论】:

  • 这就是我所说的“用户的地区或语言似乎是一个不好的指标”。在很多情况下都是正确的,但支付货币与设备无关,而是与市场账户绑定(我认为)。如果我更改语言,我仍然会使用欧元付款,因为我来自德国,而 Google 知道这一点。
  • @JanP.:我正在寻找一种出路,以便获得我在 Google 钱包中支付的价格。如果您有任何意见,请分享。这真的很有帮助。
【解决方案3】:

这有点困难,因为市场用于处理交易的汇率可能会在您显示价格和用户购买之间波动。我敢说 Google 不希望你这样做,因为这可能会导致客户对他们/你大喊大叫,因为你说 10 美元,他们被收取 12 美元。

您最好的选择(如果有人不知道如何在框架内执行此操作)是询问用户他们希望支付的货币,然后给他们一个大概的价格(我会在提供的价格旁边的括号中列出它,例如“10 美元 [约 9 澳元]”)。您应该可以使用汇率 API 获取它。

这有点麻烦,但您应该只需要询问一次并保存偏好。如果您真的想变得棘手,您可以使用粗略的位置数据来获取他们的语言环境并最初以这种方式填充值。

【讨论】:

  • iOS 就是这种情况,但在游戏控制台中,您可以选择设置每种货币的价格。所以价格根本不应该波动,除非我错过了什么。
  • @DallinDyer 我当时专门谈论的是 Play 商店。个人对iOS没有想法。再看一眼,可以选择为 大多数 国家/地区(但不是全部)定义价格。其余部分将按内存中的美元转换收费,这几乎肯定会波动。
  • 应用程序可以在哪些国家/地区销售而您无法设置价格? AFAIK 你启用了你想要销售的国家然后总是*?可以选择设置价格。
【解决方案4】:
  1. 您可以先要求用户选择他们的货币(可选)。
  2. 默认以美元显示价格。为用户提供在项目选择屏幕上更改货币的选项。也许在显示价格的位置附近有一个图标/按钮,可以打开所有货币的下拉菜单。当用户从下拉列表中选择一种货币时,所有商品的价格都应以所选货币显示。

【讨论】:

    【解决方案5】:

    截至IAB Version 3,可购买商品的 SKU 详细信息包括格式化的价格,其中包括用户支付的货币(与他们的 Google Play 商店对应的货币):

    price 值的一些示例(不是来自真实 SKU):

    • 3,99€
    • 2.99 英镑
    • 4.99 美元

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

    【讨论】:

    • 吉皮!您知道 IAB v3 何时生效吗?
    • TBH,我不知道 :) 我很高兴这解决了您的解决方案。然而,恕我直言,Android 团队提供的解决方案远非理想:他们提供了一个格式化的字符串,并且单独提供了一个包含货币 ISO 代码(例如 USD、AUD、EUR)的 currencyCode 字段。我不知道他们为什么不提供适当的语言环境。此外,IAB v3 documentation 没有更新这些新字段!看看相关的issue 看看它的进展
    • 截至 2014 年 10 月 27 日,他们已更新 IAB v3 documentation 以包含有关 price_currency_code 字段的信息。我已经相应地更新了答案
    • priceprice_currency_code 的值不一定是用户在最终付款对话框中实际看到的值!示例:商品默认币种为日元,用户店铺为日本店铺;那么 SKU 信息将以日元为单位,但用户的信用卡可能以美元计价,在这种情况下,Google Play 对话框显示的最终付款金额为美元。
    • 没错,但是如果用户希望在购买前看到价格,我们需要显示我们的商品价格。这不是必需的,但很重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多