应用内购买中的“恢复购买”是什么意思?
您通常使用此代码恢复购买:
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
它将观察者(个),所购买的物品重新调用-paymentQueue:updatedTransactions
。这对删除后重新安装应用程序或将其安装在其他设备上的用户非常有用。
并非所有类型的应用内购买都可以恢复。
仅当您已注册inApp购买的产品可能属于非续订订购和易损件产品类别时,您才会收到来自苹果的拒收讯息。这些类型的产品不会自动更新。你需要在你的应用程序中有明确的恢复按钮。
对于其他类型的产品它会自动恢复它。
请阅读下面的文字,这将清楚这一点你的概念:
一旦交易已被处理,并从队列中删除,你 应用程序通常不会再看到它。但是,如果您的应用程序 支持必须可恢复的产品类型,则必须包含一个允许用户恢复这些购买的界面 。该接口 允许用户将产品添加到其他设备,或者如果原始设备被擦除,则恢复原始设备上的事务。
Store Kit提供了内置功能,用于恢复 非消耗品,自动更新订阅和免费订阅 的交易。要恢复交易,您的应用程序将调用 付款队列的restoreCompletedTransactions方法。支付队列 向App Store发送请求以恢复事务。在 返回中,App Store为以前完成的每个 事务生成一个新的恢复事务。恢复事务 对象的originalTransaction属性包含原始的 事务的副本。您的应用程序会通过 处理恢复交易,并检索原始交易并使用它来解锁购买的内容。 Store Kit恢复之前的所有事务 后,它会通过调用付款队列观察员的 paymentQueueRestoreCompletedTransactionsFinished:方法通知付款队列观察员。
如果用户尝试(使用你实现的恢复界面,而不是 )购买可恢复的产品,应用程序接收 一个普通的事务针对该项目,而不是恢复交易。 但是,用户不会再为该产品付费。您的 应用程序应将这些交易视为原始交易的 。不更新订阅和消耗品 产品不会被Store Kit自动恢复。但是,不更新 订阅必须是可恢复的。要恢复这些产品, 您必须在自己的服务器上记录交易时,他们 购买,并提供自己的机制,以恢复这些交易 到用户的设备
您是否知道在以下情况下不需要恢复时会发生什么情况: 用户能够在他的设备上下载应用程序,并且该应用程序可以通过使用不同的凭证登录来使用多个用户。如果用户Bill使用他的凭证登录并购买仅为其凭据购买的应用程序。如果后者乔用他的凭据登录,他应该再次购买。如果Bill登录任何其他设备,他应该可以享受完整的应用程序。应用功能取决于服务器返回的数据,而不是其他资产。 谢谢! – zvjerka24
@ zvjerka24 - 是非常相同我想在我的应用程序,然后我必须使用什么IAP? – 2014-02-03 06:27:24
基本上,如果你删除的应用,移动到一个新的手机,无论如何,您的购买将不再在该设备上可用。还原购买会向iTunes询问您已付款的可用应用内购买项目。你应该提供一个恢复按钮,我不确定是否需要它,但它肯定是建议的。您应该阅读应用程序购买中的文档,以便更清楚地了解购买/恢复事务的哪一部分是您的责任,哪一部分是Apple的责任。 –
我不是iPhone的专家,但从使用经验,如果你有应用内购买,这种方法应该恢复用户从你的应用购买的所有东西,当然你会用他们是苹果ID /帐户识别。 – 2011-10-12 09:50:08