Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ios上检查已购买的InApp购买_Ios_Ios5_In App Purchase - Fatal编程技术网

如何在ios上检查已购买的InApp购买

如何在ios上检查已购买的InApp购买,ios,ios5,in-app-purchase,Ios,Ios5,In App Purchase,我正在与InApp采购部门合作,因此我已经实现了一个工作模型,我已经提到了这一点 链接 在这里,当用户购买物品时,我将一些值存储在KeyChain中,并用该值进行交叉检查,以确认用户已购买该物品,如果没有,我将要求用户购买该物品 这是可行的,但我有4种产品可供购买,它们可以单独购买,所以我想创建不同的钥匙链实例,为这4种产品存储不同的密码并进行交叉检查,但钥匙链只能保存一个用户名和密码 因此,我想知道有什么可以替代。另外,NSUserdefaults将不起作用,因为它与应用程序捆绑包绑定,每当用

我正在与InApp采购部门合作,因此我已经实现了一个工作模型,我已经提到了这一点

链接

在这里,当用户购买物品时,我将一些值存储在KeyChain中,并用该值进行交叉检查,以确认用户已购买该物品,如果没有,我将要求用户购买该物品

这是可行的,但我有4种产品可供购买,它们可以单独购买,所以我想创建不同的钥匙链实例,为这4种产品存储不同的密码并进行交叉检查,但钥匙链只能保存一个用户名和密码

因此,我想知道有什么可以替代。另外,NSUserdefaults将不起作用,因为它与应用程序捆绑包绑定,每当用户删除应用程序时,数据都会丢失,因此他将被要求再次购买

问候
Ranjit

如果您要添加可恢复的应用内购买(不可续费订阅、免费订阅或非消费品),则Store Kit API已经为您提供了“恢复交易”功能:


在UI中,您需要在产品屏幕上添加一个“恢复购买”按钮,该按钮调用
restoreCompletedTransactions
方法。这一点很重要,因为如果您不提供此按钮,苹果可能会拒绝您的应用程序。

首先,您的应用程序中应该始终有一个“恢复购买”按钮。这是一个非常开放的问题,你可以考虑将所有购买信息存储在一个密码中(NNNN将意味着没有一个产品被购买,YNNN将意味着只有第一个产品被购买等等),但这不是一个优雅的解决方案。我建议您无论如何都使用NSUserDefaults,但是如果您在删除应用程序时使用NSUserDefaults,其中的数据将被删除,这就是为什么您应该有一个还原按钮,StoreKit有一些方法可以让您轻松地执行此操作。在另一个场景中,假设您使用Keychain,用户购买了一台新iPhone,然后呢?那么您的意思是他们不需要Keychain或NSUserdefaults,对吗?仍然需要NSUserdefaults,因为如果您不使用,用户每次打开应用程序时都需要恢复购买。卸载应用程序时,
NSUserDefaults
将被删除。钥匙链是安全的,但它绑定到一个设备,而不是一个用户帐户(同一个用户帐户可以在多个设备中)。如果你想储存收据。将其存储在您的服务器或iCloud中。嗨@Daniel Martin,我正在测试inApp购买,我购买了一件物品,然后删除了该应用并重新安装。现在,当我点击恢复按钮时,它要求输入密码,输入密码后,什么也没发生。我是否遗漏了什么?请帮帮我嘿@Daniel Martin,请看看这个