【问题标题】:AppStore In-App-Purchase: How to get the currency a user will pay in?AppStore 应用内购买:如何获得用户支付的货币?
【发布时间】:2012-02-22 16:05:09
【问题描述】:

我有一个使用 In-App-Purchase 的 iOS 应用程序来迎合国际受众,所以我希望以不同的货币(美元、欧元、人民币……你从 AppStore 定价矩阵中了解它们)进行支付。当然我想用用户的当地货币显示要购买的物品,但我真的不知道怎么做。

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

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

【问题讨论】:

    标签: localization in-app-purchase app-store


    【解决方案1】:

    获取 SKProduct 对象后,您可以从 price 和 priceLocale 属性构造其本地化价格。以下是来自apple docs 的复制粘贴方法:

    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    [numberFormatter setLocale:product.priceLocale];
    NSString *formattedString = [numberFormatter stringFromNumber:product.price];
    

    【讨论】:

    • 是的,根据 Apple 指南,您应该在应用程序中存储购买项目 id,然后从苹果服务器获取 SKProduct 项目(例如,参见 skproductsrequest 类)。这种方法还可以确保您只向用户展示经过 Apple 批准并可以购买的商品
    • 我在我的应用程序中使用了这些代码,但为什么它总是显示美元。我尝试更改 iPhone 上的语言设置,但没有成功。它有什么问题?
    • @iOS.dev 我认为这取决于 App Store 帐户所在的地区,因此您可能希望创建属于不同国家/地区的不同 App Store 帐户。
    • @s1u 你解决了吗?我也总是得到美元,但我的系统语言环境将欧元设置为货币。
    • @s1u 不正确。我已登录奥地利商店,但我得到的是美元而不是欧元。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多