Ios 为一系列动态数字产品使用通用的应用内购买项目

Ios 为一系列动态数字产品使用通用的应用内购买项目,ios,in-app-purchase,Ios,In App Purchase,你们中有人实现过类似于下面场景的东西吗 考虑一个提供有声读物的应用程序: 作者通过基于web的UI动态维护这些书籍 iOS应用程序用户可以使用这些书籍,如应用程序内购买项目 默认情况下,苹果指南建议使用非消耗品IAP,并持续添加尽可能多的IAP项目。但这对我们来说并不合适,因为作者无法访问iTunesConnect,所以它不能是动态的“自我服务” 因此,我们计划创建一套通用的“消耗品”IAP项目,如“账面价值0.99美元”、“账面价值1.99美元”等。然后在应用程序中,我们将在作者将其添加到

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

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

  • 作者通过基于web的UI动态维护这些书籍
  • iOS应用程序用户可以使用这些书籍,如应用程序内购买项目
默认情况下,苹果指南建议使用非消耗品IAP,并持续添加尽可能多的IAP项目。但这对我们来说并不合适,因为作者无法访问iTunesConnect,所以它不能是动态的“自我服务”

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

当然,我们将购买的物品存储在服务器端,因此用户将始终能够访问购买的物品——即使他们稍后从其他设备访问它

苹果会批准这一实施吗?
这符合他们的IAP政策吗

我在论坛上发现了一些类似的老话题,但答案令人困惑。
你实施了类似的措施并得到苹果的批准了吗?

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

这里的关键是确保这些购买始终是可恢复的。因此,请确保存储“ID”,或者以与Apple ID(不是帐户,而是Apple ID)直接关联的方式标识不同的项目。

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

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

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

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

重要:苹果拒绝了我们的第一个解决方案,因为他们不了解它是如何工作的,以及如何恢复购买。
成功的关键是详细描述系统如何工作,并提供测试用户访问我们的web管理站点的权限。这让苹果的评论员们看到了整个系统


你最终是如何解决这个问题的?嗨,苹果已经接受了我们的解决方案,如问题中所述。正如下面其他人所建议的,问题是您需要提供稍后恢复项目的可能性。由于我们将每次购买都存储在数据库中,并且我们的用户经过身份验证(他们需要注册并登录才能购买),因此我们能够让他们永远访问购买的物品,即使是从其他设备访问应用程序。我们还存储了来自iTunesConnect的相关应用内购买的ProductID,以及用户ID、价格和日期,以便对所有购买进行详细登记。@ZsoltK。当调用StoreKit transaction observer时,您如何识别用户购买的图书?@IanWarburton正在研究同样的问题。你有解决方案吗?@Haagenti我让代码假设这是客户根据数据库订购的最后一个产品。但是我没有完成这个项目,所以我不知道它是否有效。嗨,你说得对。他们已经接受了我们的解决方案。嗨,你说得对。他们已经接受了我们的解决方案。@RomOne当用户购买虚拟货币时,您如何识别他们想要的物品?嘿!因此,在我的应用程序中,我有三个不同金额的虚拟货币包,分别设置为IAP:50、150和300。这些IAP被设置为耗材,因此可以多次购买。我把它们识别为一个普通的IAP,有一个Id。你是说其他的文章吗?比如你可以用虚拟货币买什么?