什么是恢复内购?

恢复内购是指恢复已购买的内购物品,并不意味着将原购买物品恢复为非购买。

打个比喻,比如你用iPhone上的账号在游戏里买了2000宝石,那么你在iPad上登录同一个账号,选择恢复购买,你也会得到同样的2000宝石。该功能主要用于单机游戏,不用于网络游戏。

用户恢复交易以保持对他们已经购买的内容的访问。例如,当他们得到一部新手机时,他们不会丢失他们在旧手机上购买的任何产品。在应用程序中包含一些机制,允许用户恢复他们的购买记录,比如恢复购买按钮。恢复购买记录是为了提示用户应用商店的凭证,从而打断你的应用进程,所以不要自动恢复购买记录,尤其是每次应用启动的时候。

在大多数情况下,您的应用程序只需要刷新它的收据,并在收据中传递产品。刷新的收据包含用户在该设备或该应用程序中的其他设备中的购买记录。但是,出于以下原因,一些应用程序需要采用另一种方法:

如果您使用Apple托管内容,Apple将为您的应用程序提供一些事务对象来下载内容,以恢复已完成的事务。

如果需要支持iOS7之前的版本,需要存储所有完成的交易,因为之前的版本不支持应用回执功能。

如果您的应用程序使用非更新订阅,则应用程序负责恢复过程。

刷新回执是请求存储中最新回执的副本。刷新收据不会创建任何新的事务处理。尽管您应该避免在同一行中多次刷新,但多次刷新与一次刷新是一样的。恢复一个已完成的事务就是为用户进行的每个已完成的事务创建一个新的事务,本质上就是重复您的事务队列观察者的历史。当事务被恢复时,应用程序维护它自己的状态来监视它为什么要恢复事务以及它需要如何处理它们。多次恢复将为每个已完成的事务创建多个已恢复的事务。

注意:如果用户试图再次购买他已经购买的产品,而不是使用应用程序中的恢复界面,app store将创建一个常规交易,而不是恢复交易。用户不需要再次为产品付费。像对待原始交易一样对待这些交易。适当控制用户可以再次下载的内容。比如一次下载不了三年的日报,或者一次下载不了10M大小的游戏关卡。