我可以从服务器上获取应用内购买的价格吗?

时间:2012-12-06 08:08:22

标签: iphone ios in-app-purchase

目前,我的iOS应用程序必须向我的服务器询问可用的应用程序内购买产品,然后,对于产品,该应用程序必须向Apple询问其价格。

增加的延迟可能并不多,但我想让它更快。

我可以不使用我的服务器来获取这些价格而不是客户端吗?也就是说,是否有一个基于HTTP的API,我可以从服务器使用它来获取价格而不是客户端?这样我就可以为不同的用户缓存结果并减少往返时间。如果是这样,我该怎么做?如果没有,你以什么方式处理这个?

2 个答案:

答案 0 :(得分:1)

****客户** - iOS应用 DS - 开发者服务器 AppleS - 苹果服务器**

客户与DS& amp;苹果
当客户与AppleS通信时,您有一些优势(如下所述),而不是时间消耗的单一缺点。

  1. 当您向AppleS发送一组应用程序内产品时,它会匹配 一个人的有效&发送有效产品ID的数组列表(SKProduct 阵列)。这完全消除了展示产品的风险 尚未注册,批准和清仓出售 对你的应用程序。

  2. 本地化 - 以价格为例。我想卖一种产品 在美国和美国英国。该产品的价格将以美元计算 在DS中。因此,您最终会以英镑显示英国用户的价格。 (在 为了克服这种只是在某种程度上 DS应该具有的 根据用户所在国家/地区对货币进行本地化的机制。

  3. 仅与DS进行客户沟通
    回答你的问题;是的,你可以使用DS来获取产品的价格。您可以通过向产品对象添加另一个属性(价格)来实现此目的(从服务器提供的应用内购买产品列表中)。需要在DS实施。

    例如。
    产品1 - 应用内商品ID,价格,名称,样品图像等 。

    产品n - 应用程序内商品ID,价格,名称,样品图像等。

    现在,我们如何尝试将客户与DS& DS的两种优势结合起来? AppleS使用仅与DS进行客户端通信时

    1 Adv - 通过DS端或通过某个已定义的流程进行手动检查,可以确保仅显示有效的产品。

    2高级 - 在某种程度上加入这一点实现以下@ DS

    步骤1 - 在DS端创建一个具有App Store pricing Matrix的数据库表 第2步 - 当您点击客户端向DS发出请求时,您的DS可以从服务请求中获取IP。根据此DS服务,可以找到用户的当前国家/地区 第3步 - 根据用户的当前国家/地区,使用步骤1中的本地化货币映射价格。如果用户的当前国家/地区不是App Store pricing Matrix的一部分,请使用美元价格。(这有点接近苹果做什么,虽然它使用与用户的Apple ID相关联的国家/地区)。

    IAP Confirmation Dialog中显示的最终结果本地化价格将与您显示的价格相同(避免您指出的不匹配 - 稍微再次: - ))。

    当属于一个国家/地区的用户拥有属于某个其他国家/地区的AppleID时,整个实施将失败。它根据用户的位置失败,因为DS映射价格,但IAP Confirmation Dialog显示用户的AppleID的基于价格的国家/地区(Mismatch !!!)。

    你不能determine Country associated with Apple ID logged into the iOS device。检查此Q& A.

    我建议你实施'与DS&然而,AppleS的模型是为了减少客户端与DS和DS通信时的相关延迟。 AppleS有多个产品请求(一次说一组10个产品,或者取决于你在UI中一次显示的产品数量)。

    只有在您感觉或更精确地进行分析表明您必然会因为“延迟”而失去收入或用户时,才会继续进行“仅使用DS的客户沟通”模式。

答案 1 :(得分:1)

您可以在服务器上以美元存储价格/数据的数组,然后再次在应用内进行本地化。如果您以后添加更多产品或更改价格,则只需更新您的阵列,无论其位于服务器上的文件是什么。当然,本地化可能需要一段时间,我不确定是否有代码支持它,因此为每个国家投入一美元等价物肯定是耗时但可能的。最终的结果会快得多,我已经把这样的产品ID和它的UBER比较快了。

如果您仍然从服务器获得价格,那么请让应用程序首先发送本地服务并将其附加到您的请求中,以便可以对价格结果进行本地化。