通用应用购买产品实施

Pri*_*ate 13 in-app-purchase ios

考虑以下示例.假设我们有一个应用程序,其中专业作家从基于Web的UI编写故事.然后,这些故事可供iOS应用的用户使用,如应用购买项目.

您可能知道我们需要提前在应用内购买产品.但在我们的情况下,这意味着对于作者创建的每个故事,我们将不得不创建一个新的IAP产品并等待Apple批准它.

为了避免这种情况,我打算在IAP中创建通用的"消费品"产品,如价值1.99美元的故事,价值2.99美元的故事,等等.然后在应用程序UI中,我将显示作者创建的故事列表,并显示作者在创建故事时指定的故事的相应价格.一旦用户点击购买按钮,我将显示相同价格的通用消费品的购买并完成应用内购买过程.

现在问题是Apple会批准这样的实施吗?它是否符合他们的IAP政策?我问,因为我找不到像这样的工作流程的指南.

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

ale*_*0xB 2

您想要实现的目标是完全可行的,唯一的是您的可购买内容必须是动态的。您必须从服务器下载产品 ID,而不是将它们硬编码到您的应用程序中。

参考您的示例,我可以想象一个表视图包含一个对象列表,这些对象上存储有 SKProduct ID。您必须这样做,因为在撰写本文时,您无法从 Apple 服务器检索您的应用程序的所有可用产品 ID。我知道他们没有实现这个功能是一件很痛苦的事情,但说实话,如果他们还没有实现,我认为他们永远不会这样做。

这是我指的方法:initWithProductIdentifiers

您向它提供一个 NSSet,其中包含您想要检索的所有标识符,但如果您提供一个空集或 nil,它不会回复所有现有标识符。如果您觉得这不能正常工作,您可以向 Apple 提交错误。如果您仍有任何疑问,请检查此答案:链接

另一件需要注意的重要事情是,您必须手动上传产品。Apple 不会公开任何 API 来实现该过程的自动化。这意味着,每次作者将某些内容上传到您的服务器时,您都必须登录 iTunes connect 并创建一个产品。另外,您的产品数量将被限制为 10,000 种,因为这是您可以向 Apple 注册的不同产品的最大数量。我还建议您快速阅读 iTunes Connect 指南,其中包含一些重要信息,例如我刚才提到的信息:iTunes Connect

关于第 3 方框架,例如前面提到的 UrbanAirship,它们将使您不必在服务器上实施收据验证。除此之外,我没有看到任何重大优势。

说到这里,我建议你重新考虑你的商业模式。真的值得费尽心思逐一上传产品吗?或者最好采用订阅方式,即用户每月支付固定金额下载多篇文章。您可以有不同的级别,例如基本级别、高级级别(无限下载)等,并控制服务器上文章的传送。这取决于你,但对我来说答案很明确。