我真的不太理解这个想法。我必须为用户提供恢复按钮吗?这个方法应该调用什么方法?恢复将会做什么?
发布于 2011-10-12 17:52:21
通常使用以下代码恢复购买:
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
它将在观察者上为购买的商品重新调用-paymentQueue:updatedTransactions
。这对于在删除后重新安装应用程序或将其安装在其他设备上的用户很有用。
并不是所有类型的应用内购买都可以恢复。
发布于 2012-06-27 15:28:48
您将从苹果收到拒绝消息,因为您已注册购买inApp的产品可能属于不可续订订阅和消耗品类别。这些类型的产品不会自动更新。你需要在你的应用程序中有明确的恢复按钮。
对于其他类型的产品,它将自动恢复它。
请阅读下面的文本,它将澄清您对此的概念:
一旦事务被处理并从队列中删除,您的应用程序通常再也看不到它了。但是,如果您的应用程序支持必须可还原的产品类型,则必须包括一个允许用户还原这些购买的界面。该界面允许用户将产品添加到其他设备,或者,如果原始设备被擦除,则在原始设备上恢复事务。
Store Kit提供内置功能来恢复非消耗性产品、自动续订和免费订阅的事务。为了恢复交易,您的应用程序调用支付队列的restoreCompletedTransactions方法。支付队列向App Store发送请求以恢复交易。作为回报,App Store为之前完成的每个事务生成一个新的恢复事务。restore transaction对象的originalTransaction属性保存原始事务的副本。您的应用程序通过检索原始事务并使用它解锁购买的内容来处理还原事务。在Store Kit恢复所有以前的事务之后,它通过调用支付队列观察者的paymentQueueRestoreCompletedTransactionsFinished:方法来通知他们。
如果用户尝试购买可还原产品(而不是使用您实现的还原界面),应用程序将接收该项目的常规事务,而不是还原事务。但是,用户不会再次为该产品收费。您的应用程序应该以与原始事务相同的方式处理这些事务。Store Kit不会自动恢复未续订的订阅和消耗性产品。但是,非续订订阅必须是可恢复的。要恢复这些产品,您必须在购买时在自己的服务器上记录事务,并提供自己的机制将这些事务恢复到用户的设备
发布于 2011-10-12 17:50:54
它是作为可选功能。
如果您不提供它,当用户尝试购买非消耗性产品时,AppStore将恢复旧事务。但是你的应用程序会认为这是新的交易。
如果您将提供恢复机制,那么您的采购经理将看到恢复的事务。
如果应用程序应该区分此选项,那么您应该提供恢复以前购买的产品的功能。
https://stackoverflow.com/questions/7738120
复制相似问题