2012-11-05 107 views
11

请考虑以下示例。比方说,我们有一个应用程序,专业作家通过基于Web的用户界面编写故事。然后,这些故事将成为iOS应用用户的应用购买项目。通用应用内购买产品实施

如您所知,我们需要提前在应用程序购买产品中创建。但在我们的情况下,这意味着对于作家创作的每个故事,我们都必须创建一个新的IAP产品,并等待Apple批准它。为了规避这个问题,我打算在IAP中创建通用的“消费品”产品,例如价值1.99美元的故事,价值2.99美元的故事,等等。然后在应用程序用户界面中,我将显示作者创建的故事列表,并显示作者在创建故事时指定的故事的相应价格。一旦用户点击购买按钮,我将显示相同价格的通用消费品的购买并完成应用内购买流程。

现在的问题是苹果会批准这样的实施吗?它是否符合他们的IAP政策?我在问,因为我无法找到像这样的工作流程的指导原则。

实现此功能的另一种方法是实施应用内信用/货币系统,例如游戏使用。人们在那里购买信用/硬币,然后用硬币购买物品。这是一个久经考验的方法,但它不适合我的应用程序的类比,因此是一个问题。

+0

您是否按照此处描述的方式实施了这种方式?我以为用我的一个新的应用程序也一样,但不知道他们是否会批准... – SpaceDog

+0

你打算如何支付作家? –

+0

@RubberDuck - 是的,我们是这样实现的。该应用在第一次尝试中被拒绝。客户必须与苹果公司进行抗争,才能获得批准。 –

回答

2

你想达到什么是完全可行的,唯一可以购买的内容必须是动态的。您将不得不从服务器下载产品ID,而不是在应用程序中对其进行硬编码。

为了引用你的例子,我可以想象一个表视图被馈入一个对象列表,这个对象列表将存储SKProduct ID。您必须这样做,因为在撰写本文时,您无法从Apple服务器检索您的应用程序的所有可用产品ID。我知道这是一个痛苦的屁股,他们没有实现这个功能,但说实话,如果他们还没有,我不认为他们会做。

这是我指的方法:initWithProductIdentifiers

你为它提供一个NSSet中所有你想要检索的标识符,但如果你提供一个空集或零,它不回应与所有现有的。如果您觉得这种方式无法正常工作,可以使用Apple提交错误。如果您仍然有任何疑问,请检查此答案:link

另一个需要注意的重要事项是,您将不得不手动上传您的产品。 Apple不公开任何API以使该流程自动化。这意味着,每当作家上传一些东西到您的服务器上时,您都必须登录iTunes连接并创建一个产品。此外,您将被限制为10,000种产品,因为这是您可以在Apple注册的不同产品的最大数量。我还建议您快速阅读iTunes Connect指南,其中包含一些重要信息,例如我刚刚提到的一些重要信息:iTunes Connect

关于第三方框架,比如上述的UrbanAhiphip,他们只会将您从必须在您的服务器上实施收据验证。除此之外,我没有看到任何重大优势。

说了这么多,我建议你重新考虑你的商业模式。每件产品上传一件产品的麻烦真的值得吗?或者更好的方法是使用订阅方式,用户每月支付固定金额下载大量文章。您可以有不同的层次,例如基本,高级(无限下载)等,并控制从您的服务器传送文章。这取决于你,但对我来说,答案非常明确。

+0

谢谢,这或多或少地回答了我的问题。我不知道他们只允许10000个产品!订阅也不是我们可以使用的模型。事实上,这些故事只是一个类比(因为NDA和产品概念维护),我在问题中提出了问题。实际的产品是不同的,在订阅模式中没有意义。 –

0

Pritam

对于交付动态内容,你应该使用一个订阅,而不是消费品。使用订阅通过允许您为每个更新收费并同时分发新内容来解决您的问题。

你可以寻找到第三方服务,如UrbanAirship将显著减少的时间量你花试图动态提供内容,跟踪订阅和到期日等