通用应用内购买产品实现

14
考虑以下例子。假设我们有一个应用程序,专业作家们可以从基于Web的用户界面中撰写故事。然后这些故事将作为应用内购买项目供iOS应用程序的用户使用。
如您所知,我们需要事先创建应用内购买产品。但在我们的情况下,这意味着对于每个作家创作的故事,我们都必须创建一个新的IAP产品并等待Apple批准。
为了规避这种情况,我计划在IAP中创建通用的“可消耗”产品,比如价值1.99美元的故事、价值2.99美元的故事,依此类推。然后在应用程序界面中,我将显示作家创作的故事列表,并显示作者在创建故事时指定的相应价格的故事列表。一旦用户点击购买按钮,我将显示相同价格的通用消耗品的购买,并完成应用内购买过程。
现在的问题是,苹果是否会批准这样的实现方式?它是否符合他们的IAP政策?我问这个问题是因为我找不到这样的工作流程指南。
另一种实现此任务的方法是通过实现应用内信用/货币系统来实现,就像游戏使用的那样。人们购买信用/硬币,然后用硬币购买物品。这是一种经过验证的方法,但它不符合我的应用程序类比,因此有这个问题。

你按照这里描述的方式实现了吗?我也想用我的新应用程序做同样的事情,但我不确定他们是否会批准... - Duck
你打算如何支付作者的报酬? - Sonny Parlin
@RubberDuck - 是的,我们就是这样实现的。第一次尝试时应用程序被拒绝了。客户不得不与苹果公司争取批准这种实现方式。 - Pritam Barhate
@Sonny Parlin - 这些“作家”(实际上他们并不是真正的作家,我只是用这个例子来保持原始概念的机密性,因为涉及保密协议)被提供了一个基于网络的账户,以便查看他们的收入情况,并且每个月通过发送支票或其他非自动化方式进行结算。 - Pritam Barhate
1
@PritamBarhate 这个应用程序还在商店里吗?如果是,它是否有进一步更新的问题?我正在考虑采用完全相同的模型(可消耗的应用内购买代表价格层次),但感觉有些不正当,并可能会引起与苹果的麻烦。 - ArkReversed
很抱歉,@ArkReversed。这个创业公司转向了另一个领域,这个应用程序也没有得到维护。 - Pritam Barhate
2个回答

2
你想要实现的是完全可行的,唯一的问题是你可购买的内容必须是动态的。你需要从服务器下载产品ID,而不是在应用程序中硬编码它们。
以你的示例为参考,我可以想象一个表格视图被填充了一个对象列表,这些对象列表上存储了SKProduct ID。你必须这样做,因为在撰写本文时,你无法从Apple服务器检索出所有可用的产品ID。我知道他们没有实现这个功能很烦人,但说实话,如果他们还没有实现,我认为他们永远不会实现。
这是我所指的方法:initWithProductIdentifiers
您提供一个包含所有要检索的标识符的NSSet,但如果您提供了一个空集或nil,它不会回复所有现有的标识符。如果您觉得这个功能不起作用,可以向苹果报告错误。如果您还有任何疑问,请查看此SO答案:link 另一个需要注意的重要事项是,您将不得不手动上传您的产品。苹果没有公开任何API以便自动化该过程。这意味着每次作者将某些东西上传到您的服务器时,您都必须登录iTunes Connect并创建一个产品。此外,您将被限制在10,000个产品上,因为这是您可以在苹果注册的最大不同产品数量。我还建议您快速阅读iTunes Connect指南,其中包含一些重要信息,例如我刚提到的信息:iTunes Connect 关于第三方框架,比如前面提到的UrbanAirship,它们只是可以帮助你省去在服务器上实现收据验证的麻烦。除此之外,我没有看到其他重大优点。
说到这里,我建议你重新考虑你的商业模式。值得你花费上传产品一个接一个的所有麻烦吗?还是采用订阅方式更好,让用户支付固定金额以下载每月一定数量的文章。你可以设置不同的层级,例如基础版、高级版(无限制下载)等,并且从你的服务器控制文章的发布。这取决于你,但对我来说答案非常明显。

谢谢,这基本上回答了我的问题。我不知道他们只允许10000个产品!而且订阅并不是我们可以采用的模式。实际上,故事只是一个比喻(由于NDA和产品概念保护),我在问题中提到了它。实际产品是与订阅模式不相符的东西。 - Pritam Barhate

0

Pritam

如果您要交付动态内容,应该使用订阅而不是可消耗品。使用订阅可以解决您的问题,因为它允许您每次更新时收费并同时分发新内容。

您可以查看第三方服务,如UrbanAirship,它将大大减少您花费在尝试动态交付内容、跟踪订阅和到期时间等方面的时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接