Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.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 如何检查用户是否已在应用程序采购中下载了非易耗品_Ios_In App Purchase_Storekit - Fatal编程技术网

Ios 如何检查用户是否已在应用程序采购中下载了非易耗品

Ios 如何检查用户是否已在应用程序采购中下载了非易耗品,ios,in-app-purchase,storekit,Ios,In App Purchase,Storekit,我在申请表中提供非消耗品 假设用户购买了该项目,并尝试在另一台具有相同id的设备上安装该应用程序。如果用户已登录并已购买该商品,我想显示一些弹出窗口,告诉用户您已购买该商品,请立即免费下载。现在发生的情况是,当我再次单击购买该商品时,则表示您已购买该商品,请单击下载 是否有任何方法可以获取用户登录详细信息,并检查用户是否已经进行了应用内购买 登录并尝试购买已购买的商品时出现问题。两种警报视图会不时出现。我使用的是沙盒环境 您已经购买了此文件,但尚未下载。点击“确定”立即下载。 此警报视图只有“确

我在申请表中提供非消耗品

假设用户购买了该项目,并尝试在另一台具有相同id的设备上安装该应用程序。如果用户已登录并已购买该商品,我想显示一些弹出窗口,告诉用户您已购买该商品,请立即免费下载。现在发生的情况是,当我再次单击购买该商品时,则表示您已购买该商品,请单击下载

是否有任何方法可以获取用户登录详细信息,并检查用户是否已经进行了应用内购买

登录并尝试购买已购买的商品时出现问题。两种警报视图会不时出现。我使用的是沙盒环境

  • 您已经购买了此文件,但尚未下载。点击“确定”立即下载。 此警报视图只有“确定”按钮。当我们按下“确定”按钮时,控制转到-(作废)failedTransaction:(SKPaymentTransaction*)transaction

  • 您已经购买了此警报。点击“确定”再次免费下载。此警报视图有两个按钮,一个是“取消”,另一个是“确定”。按下OK按钮后,控制转到-(void)completeTransaction:(SKPaymentTransaction*)事务,该事务正常

  • 一个为什么事务显示这种特殊行为的想法


    谢谢

    我不明白你为什么认为你需要做些不同的事情

    正如您所说,系统检测到用户已经拥有该产品,并向用户发出“点击下载”警报。如果用户选择下载,那么您将获得一个状态为“已购买”或“已恢复”(我忘了是哪个)的
    SKPaymentTransaction
    。那你就照常提供产品。因此,用户知道他没有被第二次收费,他得到了产品


    如果您说要自动检测用户拥有的产品,而用户无需做任何事情:您只能通过将
    restoreCompletedTransactions
    发送到
    SKPaymentQueue
    来实现。当您这样做时,用户可能需要输入其iTunes密码。我更喜欢在我的用户界面上有一个“恢复购买”按钮,这样用户就知道为什么要询问他的密码。

    沙箱似乎存在很多稳定性问题,请在Apple开发者论坛上查看此线程(需要登录)。我一直在用消耗品测试应用内购买,从未见过案例2,我只得到案例1(正如论坛中提到的)。因此,你有时会觉得自己很幸运,甚至能得到2):(

    P)面对这两个问题,我有以下的思考: 1] 包括我在内的许多开发人员通过重启设备解决了第一个问题

    2] 对于第二个问题,由于“购买的”或“恢复的”回调在录制“OK”时被调用,所以产品本身将可用


    希望有帮助!

    我已经编辑了我的问题。现在又出现了其他问题。你能帮我解决一下吗?你有什么想法吗?为什么在沙盒环境中的不同场合会出现这种不同的行为?我不知道。我没有看到这个问题。当我单击“购买”按钮时,我想在超时后取消交易。那么你能告诉我如何取消交易吗交易