-->

耗材与非消耗在iOS版(Consumable vs. non-consumable in iOS)

2019-08-31 15:10发布

我们是三个人,谁取得了一个免费的游戏为iPhone,这已经可以在App Store上将近一年。

该应用程序是一个棋盘游戏,在这里你用你的Facebook凭据创建一个用户或登录。 您可以退出游戏,然后重新登录使用其他帐户。

现在,我们已经与用户升级到付费用户的能力,更新的应用程序。 允许个人和全球游戏统计。

但是,苹果给了我们在审批过程中头疼,并拒绝接受我们的应用程序内购买。 首先,他们不会批准它,因为它没有恢复按钮。 然后,当我们告诉他们,是不是需要一个恢复按钮,因为它是一个消费品的购买,他们现在的需求,我们将其改为非消耗并添加还原按钮。

考虑这种情况,如果是购买的非消耗。

  1. 在用户登录。
  2. 用户升级帐户溢价
  3. 用户注销。
  4. 用户登录时使用不同的帐户。
  5. 用户恢复以前的购买。

这将允许你两个帐户升级到溢价,但只有一个购买。

苹果的说法是,我们的用户需要能够恢复采购,如果新设备的设置,或设备被恢复。

但是,这不是它的工作方式。 用户升级他们的帐户高级帐户。 现在,当他们购买了新设备或恢复现有设备,他们只要登录与他们现有的游戏帐号,并且升级将是可用的,因为我们在服务器端具有显着的帐户作为溢价账。

所以我的问题是基本。 被我们完全错了,当我们选择,而不是使用非消耗耗材。 如果是的话,应该怎么非消耗是为了为(潜在的)来实现购买多次用不同的游戏帐号在同一设备上?

其次,如果我们对一个消耗型应用程序内购买的使用是正确的,说什么才好说服苹果,我们是在正确的道路上?

Answer 1:

如果您的溢价账是你的用户必须一次买东西,那么苹果肯定是有权要求你切换到应用程序内非消耗。

您所描述的情况是完全可能的(我不得不面对它太),但如果你解锁高级功能(节能与用户相关联的所有交易),您必须验证的机会之前添加应用收据的服务器端验证购买的是新的或恢复检查领域original_transaction_idoriginal_purchase_date在收到数据。 这样,你可以看到,如果用户恢复购买的是原来买了它(也许检查其Facebook用户ID)相同。

不管怎样,经验表明我,这种情况发生的几率是不是真的很高,我不会建议实施此检查(虽然服务器端验证几乎总是必须的;-))



Answer 2:

按照的“恢复交易”部分应用程序内购买编程指南:

如果您的应用程序支持的产品类型必须是可恢复的,则必须包含一个接口,使用户能够恢复这些采购。

如果您的应用包含非消耗性购买,如果你不包括恢复按钮,苹果将不批准你的应用程序。

2012年6月后,这已经取得了必要的苹果。

因此,要回答你的问题:没有,看来你必须使用restoreCompletedTransactions

希望它可以帮助你。



文章来源: Consumable vs. non-consumable in iOS