我真的不明白这个想法。 我是否必须为用户提供恢复按钮? 该方法应该调用什么方法? 恢复会做什么?
答案 0 :(得分:30)
您通常使用以下代码恢复购买:
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
它将重新调用-paymentQueue:updatedTransactions
观察者购买的物品。这对于在删除后重新安装应用程序或在其他设备上安装应用程序的用户非常有用。
并非所有类型的应用内购买都可以恢复。
答案 1 :(得分:7)
您将收到来自苹果的拒绝消息,因为您已注册购买inApp的产品可能属于非续订订阅和消费品类别。这些类型的产品不会自动更新。您需要在应用程序中使用显式恢复按钮。
对于其他类型的产品,它会自动恢复它。
请阅读以下文字,清楚您对此的概念:
处理完交易并从队列中删除后,您的 应用程序通常永远不会再看到它但是,如果您的申请 支持必须可恢复的产品类型,您必须包含 允许用户恢复这些购买的界面。这个界面 允许用户将产品添加到其他设备,如果是原始设备 设备被擦除,以恢复原始设备上的事务。
Store Kit提供了恢复事务的内置功能 非消费品,汽车可再生订阅和免费 订阅。要恢复事务,您的应用程序将调用 支付队列的restoreCompletedTransactions方法。付款队列 向App Store发送请求以恢复事务。在 返回时,App Store会为每个事务生成一个新的恢复事务 先前已完成的交易。还原事务 object的originalTransaction属性包含原始的副本 交易。您的应用程序处理还原事务 检索原始事务并使用它来解锁 购买内容。 Store Kit恢复之前的所有内容 交易,它通过呼叫他们来通知支付队列观察员 paymentQueueRestoreCompletedTransactionsFinished:method。
如果用户试图购买可恢复的产品(而不是 使用您实现的还原接口,应用程序接收 该项的常规事务,而不是还原事务。 但是,不会再向该用户收取该产品的费用。您的 应用程序应该将这些事务处理为与 原始交易。不续订订阅和消费品 Store Kit不会自动恢复产品。非更新 但是,订阅必须是可恢复的。要恢复这些产品, 您必须在自己的服务器上记录事务 购买并提供自己的机制来恢复这些交易 到用户的设备
答案 2 :(得分:2)
是否为可选功能。
如果您在用户尝试购买非消费品时不提供,AppStore将恢复旧的交易。但是你的应用程序会认为这是新的交易。
如果您将提供恢复机制,那么您的采购经理将看到已恢复的交易。
如果应用程序应该区分这些选项,那么您应该提供恢复以前购买的产品的功能。