【问题标题】:Get In-App-Item Price In USD - Instead of User's Local Coin以美元获取应用内商品价格 - 而不是用户的本地硬币
【发布时间】:2014-06-02 08:28:31
【问题描述】:

为了分析和收集数据,我想获得 SKProduct 的美元价格。

我用来向用户显示价格的基本代码是:

   _priceFormatter = [[NSNumberFormatter alloc] init];
   [_priceFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
   [_priceFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];

   [_priceFormatter setLocale:inAppProduct.priceLocale];
   inAppItemString = [_priceFormatter stringFromNumber:inAppProduct.price];

这段代码给出了用户应该用他的本地硬币支付的真实价格

我尝试将本地设置为 en_US,但我得到的价格与以前相同,只是 $ :) 这是我为尝试这个而改变的:

   NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
   [_priceFormatter setLocale:usLocale];

知道如何获得美元价格吗?

【问题讨论】:

  • 您想要用户支付的价格(换算成美元)还是美国用户愿意支付的价格?第一个很困难,您需要从某个地方获得正确的转换因子。其次,您需要说服商店给您美国的价格。
  • @gnasher729 ,这两个选项应该给我相同的...那么我怎样才能说服商店这样做呢? :)
  • 您尝试做的事情没有意义。用户将以他们国家的应用商店使用的任何形式的货币付款。故事结局。如果您想转换为美元并向用户显示该金额,您可以 这样做(正如第一位评论者所说——您必须获取当前汇率并自己进行转换)。但这将是一种毫无意义且具有误导性的做法,因为用户将以他们的货币形式付款,而 Apple 将在他们向您付款时处理货币转换。
  • @NicholasHart 正如我在问题中所说,我希望它用于分析和收集数据。感谢您的回答
  • @locoboy 你是对的。我没有真正的解决方案。但无论如何,我只需要它用于统计数据,而不是实际操作。

标签: ios localization in-app-purchase skproduct


【解决方案1】:

您可以向在线转换服务发送 http get 请求,例如:

http://api.fixer.io/latest?base=GBP&symbols=USD

返回

{"base":"GBP","date":"2016-09-01","rates":{"USD":1.3261}}

获取汇率,希望与 Apple 使用的汇率相差不大,然后以美元计算价值。

【讨论】:

  • Apple 不仅仅使用汇率。他们调整了地方税,四舍五入到一个不错的数字,他们只在汇率变化很大时才改变价格,所以一旦设定价格只要汇率变化不大就保持不变。
  • 我同意这一点都不完美,地方税也不会被计算在内,但仍可能比以美元计价的硬编码价格更好?
  • @BjørnEgil ,我认为 gnasher729 是对的,这不是我想要的答案。真正的答案是没有解决方案,只能使用美元的硬编码价格。我很久以前就问过这个问题,如果我没记错的话,这就是我实际所做的。
【解决方案2】:

您可能想尝试以下操作:

NSLocale *priceLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];

参考:Is there a simple way to format currency into string in iOS?

【讨论】:

    【解决方案3】:

    如果您想知道用户花费了多少(例如细分支持级别或优惠类别),硬编码是一个不错的选择。如果你有一个价格动态的应用程序有很多价格点,那么设置一个轻量级的 Mongo 服务器或上传配置 JSON 或 PLIST 也是一种选择。

    如果您想要一种快速且响应迅速的方式来实时跟踪您的收入估算值,这些也是不错的选择。

    顺便说一句,记录用户在云中购买的 IAP 也会让您到达那里。您需要一个脚本来在 IAP id 和“USD”(或您喜欢的任何货币)之间进行转换,作为奖励,您会看到哪些 IAP 最受欢迎。

    为了更深入(按国家、设备、操作系统、趋势...细分),还有其他服务。请记住,它们比简单的记录器服务器具有更多的延迟(大约 24 小时约 1 小时)。但是你也不必考虑你的应用突然流行起来:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-30
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-04
      • 1970-01-01
      相关资源
      最近更新 更多