如何检测用户是否进行了任何应用内购买?

时间:2014-07-21 07:36:18

标签: ios in-app-purchase

我的iOS应用程序有应用内购买(耗材)并定期展示广告。我们的想法是在用户购买任何东西后删除广告。但是应用内商品是可以使用的,因此在用户重新安装应用后,我无法确定他是否使用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];购买了任何商品,对吗?我会再次用广告轰炸他......

您有什么建议可以发现用户已购买任何东西?

2 个答案:

答案 0 :(得分:1)

当用户重新安装你的应用程序(即删除它并重新安装)时,没有直接的方法知道他做了什么购买。这就是为什么Apple要求您的应用提供恢复以前购买的方法的原因,以便当用户执行此操作时,他可以免费恢复这些购买。

对于消耗品,您可能需要使用服务器来管理购买,以便在应用程序加载时检查服务器检查用户购买的内容并立即启用相关内容。

我不知道是否是强制性的,但是"删除广告" IAP应该是非消费品,因此用户只需要购买一次(否则我相信用户会抱怨或者只是不会购买它)。

可以在此处找到一些创造性的方法:iPhone - in-App purchase consumable correct approach

答案 1 :(得分:0)

作为对情况的改进,您可以存储在NSUserDefaults中进行购买的事实。如果用户卸载并重新安装应用程序,那将无法生存,但如果用户购买新手机并恢复备份以将所有内容传输到新手机,则至少可以存活。

您也可以查看Cloud Kit,它可以存储每个AppleId的信息。这个问题有点矫枉过正,但这意味着你可以免费使用Apple的服务器而不是你自己的服务器。如果用户在六台设备上安装您的应用程序,在一台设备上进行消费品购买,广告就会停止在所有设备上。

相关问题