iOS In-App Purchase中涉及到的货币单位
现在iOS的AppStore上各类应用非常丰富,有付费的也有免费的,而免费的应用也可以支持IAP (In-App Purchase,应用内支付) 。 对于应用内支付,我们有时候希望对用户的支付行为进行记录,甚至通过记录支付过程进行记账,那在这个过程中用户支付所使用的货币类型是我们需要考虑的一个问题,这里我整理一下。
做过iOS发布的朋友应该都知道,我们在iTunes Connect上发布一款应用的时候会选择发布的国家/地区。这实际上也就是说我们在不同国家地区的AppStore上,可下载安装的应用是不同的,而且这与用户的Apple ID账号有关。
所以,本文的问题主要是针对多地区发布的,如果你的应用只在中国大陆发布,而不考虑港、澳、台及其他国家和地区,应用收费只需要关注人民币就可以了。
在iTunes Connect提交IAP商品信息时,我们定的价格只需要选择对应的Price Tier,苹果的AppStore会根据特定的货币单位转换成对应的值。
在应用客户端里,商品信息通过向AppStore发起SKProductsRequest获得。每一个商品的价格等由一个SKProduct对象来维护,其中有两个重要属性:
price,一个NSDecimalNumber类对象
priceLocale,一个NSLocale对象,表示地区信息,和price的数值对应;这里面包含的东西就多了,其中包括一个货币单位
一个商品,比如设置了Tier1,那么如果他在美国AppStore发布,即用户账号是在美国AppStore登录,则