将通用的应用内购买项目用于动态范围的数字产品

Using generic in-app purchase items for a dynamic range of digital products

你们中有人实现过类似于以下场景的东西吗?

考虑一个提供有声读物的应用程序:

默认情况下,Apple 指南建议使用非消费型 IAP,并不断添加与我们拥有的书籍一样多的 IAP 项目。但这对我们来说不合适,因为作者无法访问 iTunesConnect,因此它不能是动态的、“自服务的”。

因此,我们计划创建一组通用 "consumable" IAP 项目,例如“图书价值 0.99 美元”、“图书价值 1.99 美元”等。然后在应用程序中,当作者将其添加到我们的系统时,我们将显示作者指定的书籍的相应 IAP 项目。

当然,我们将购买的物品存储在服务器端,因此用户将始终可以访问购买的物品——即使他们稍后从另一台设备访问它也是如此。

Apple 会批准此实施吗?
它符合他们的 IAP 政策吗?

我在论坛上发现了一些类似的很老的话题,但答案令人困惑。 您是否实现了类似的东西并获得了 Apple 的批准?

是的,在我看来他们会接受的。只要您允许用户稍后检索他们的购买。你的系统让我想到了我制作的虚拟货币,我必须制作需要为用户实际保存的通用消耗品。 Apple 批准了它(现在仍然如此),因为我保存了所有购买的商品,即使它不完全符合 IAP 政策 ;)

此处的关键是确保这些购买始终是可恢复的。因此,请确保存储 "IDs" 或者您以直接关联到 Apple ID(不是帐户,而是 Apple ID)的方式识别不同的项目。

Apple 已接受我们的解决方案,如问题中所述。

要点是,正如@RomOne 和@ge0rges 正确强调的那样,您需要提供稍后恢复项目的可能性。

由于我们将每次购买都存储在我们的数据库中,并且我们的用户经过身份验证(他们需要注册并登录才能购买),因此即使在访问应用程序时,我们也能够永远为他们提供对所购买商品的访问权限从其他设备。

我们还存储来自 iTunesConnect 的相关应用程序内购买的 ProductID,以及用户 ID、价格和日期,以详细记录所有购买。

Important: Apple has rejected our first solution, because they didn't understand how it works, and how a purchase can be restored.
The key to success was describing in detail how the system works and providing a test user access to our web admin site. This allowed the Apple reviewers to see the whole system.