IOS购买,擦除手机,检测以前购买的



我使用用户默认值等进行了大部分IAP购买

但假设用户购买了一个应用程序,然后删除或更新到一部新手机。

然后重新安装应用程序。

如何检测用户以前购买过该应用程序?

这就是恢复功能的作用。请参阅的恢复部分:

https://developer.apple.com/documentation/storekit/in-app_purchase/offering_completing_and_restoring_in-app_purchases

有三种方法:

  1. 如果您在应用程序钥匙链中存储了一些购买指标,则在重新安装应用程序时会出现。如果您的订阅还包括过期日期,则可以检查订阅是否可能过期。

  2. 如果你把应用程序收据发送给苹果,它会一直给你最新的购买数据,其中包括之前的任何购买。因此,在首次发布时,请始终将收据发送给苹果,看看你是否想自动恢复之前的购买。请注意,有时应用程序收据不会在安装后立即出现(尽管它应该始终存在),这就是为什么您还需要考虑选项3。

  3. 还有一个SKPaymentQueue’s restoreCompletedTransactions()调用,您可以基本上回放以前的购买交易。这是你应该连接到UI中某个按钮上的东西——苹果需要这样做。这不是你想自动调用的东西,因为它可以提示用户输入他们的iTunes帐户密码,所以你不应该依赖这种方法来自动恢复购买,但最好为用户提供备份。