Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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_Objective C_In App Purchase - Fatal编程技术网

Ios 恢复自动续订订阅

Ios 恢复自动续订订阅,ios,objective-c,in-app-purchase,Ios,Objective C,In App Purchase,我正在开发一款iOS应用程序,可以自动续费订阅。正常的采购流程运行良好,但我在恢复交易时面临问题 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions] 我用它来恢复交易,苹果会返回我应用程序中的所有交易。我不知道如何找到用户的确切交易和验证收据。我的应用程序通过将收据发送到我们的服务器来验证收据,该服务器发送到苹果并获取状态 确切的情况是: 用户A安装应用程序并在设备1中购买订阅 用户A在第2台设备中安装应用程序,并希望恢复在

我正在开发一款iOS应用程序,可以自动续费订阅。正常的采购流程运行良好,但我在恢复交易时面临问题

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]
我用它来恢复交易,苹果会返回我应用程序中的所有交易。我不知道如何找到用户的确切交易和验证收据。我的应用程序通过将收据发送到我们的服务器来验证收据,该服务器发送到苹果并获取状态

确切的情况是:

  • 用户A安装应用程序并在设备1中购买订阅

  • 用户A在第2台设备中安装应用程序,并希望恢复在设备1中进行的订阅。如何处理这种情况

  • 这个问题似乎是重复的,但我还没有找到我想要的确切情况


    谢谢。

    您需要恢复所有未过期的事务。您应该能够通过与Apple验证收据时获得的JSON来确定这一点。顺便说一句,这个验证方案不是苹果公司推荐的。苹果建议在设备上进行验证(iOS7)或在服务器上进行验证(iOS6及更早版本)。

    您所说的“查找用户的确切交易”是什么意思?谢谢您的回复。。是的,我想我还没有说清楚。如果我尝试还原事务,那么返回的结果包含来自所有用户的事务,那么我如何确定确切的事务。例如,如果用户A、B和C订阅,并且用户B尝试在其他设备中使用订阅,则[[SKPaymentQueue defaultQueue]restoreCompletedTransactions]返回所有用户(A、B和C)的事务。如何确定用户B的订阅?我现在清楚了吗?对不起我的英语:(你说的“用户”是什么意思?苹果ID?是的,克里斯。你可以按用户ID购买订阅,对吗?我认为情况比这简单。典型的用例是你担心一个苹果ID。还原会给你收据来自单个Apple Id,即在调用还原后出现Apple提示时,此人输入的Id。