Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 使用appStoreReceiptURL恢复非续订订阅_Ios_In App Purchase_Non Renewing Subscription - Fatal编程技术网

Ios 使用appStoreReceiptURL恢复非续订订阅

Ios 使用appStoreReceiptURL恢复非续订订阅,ios,in-app-purchase,non-renewing-subscription,Ios,In App Purchase,Non Renewing Subscription,我可以使用appStoreReceiptURL获取的收据来检索非续订订阅的购买日期。对于非续费订阅,从购买日期开始,我可以计算到期日期 但当我尝试使用appStoreReceiptURL进行恢复时。我发现即使使用相同的苹果ID登录也没有购买的设备返回零 使用 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 无法更新appStoreReceiptURL中的收据。我做错什么了吗?或者,就是不可能以这种方式恢复收据 谢谢您无

我可以使用appStoreReceiptURL获取的收据来检索非续订订阅的购买日期。对于非续费订阅,从购买日期开始,我可以计算到期日期

但当我尝试使用appStoreReceiptURL进行恢复时。我发现即使使用相同的苹果ID登录也没有购买的设备返回零

使用

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
无法更新appStoreReceiptURL中的收据。我做错什么了吗?或者,就是不可能以这种方式恢复收据


谢谢

您无法以您尝试的方式恢复事务,因为它们是易耗品,而且易耗品的寿命有限

但是,您可以解析收据,并由此计算订阅期

收据将位于主捆绑包中,但可以使用刷新

recreq = [[SKReceiptRefreshRequest alloc] init];
        [recreq setDelegate:self];
        [recreq start];

谢谢你的回答。我确实设置了我的应用程序来恢复:刷新收据并重新计算过期日期。它工作得很好。然而,我的应用被苹果拒绝了,他们希望我有一个可选的注册,以便用户恢复或使用iCloud。所以不要这样还原。首先,我很高兴听到你找到了答案。其次,我的应用程序已经获得批准。无需使用iCloud或可选注册。看看我之前写的一篇博文。如果你想联系我(见博客),我很乐意进一步讨论,但请确保苹果会批准。伙计,你批准了吗?我得到了这样的答案:修改你的应用程序,使其包含一个可选的用户注册功能,将订阅内容发送到用户的所有iOS设备是合适的。此类用户注册必须是可选的,而不是必需的。我们还建议指出,从其他iOS设备访问订阅内容需要注册,并提供一种稍后注册的方式,如果用户希望在将来访问此内容。我非常喜欢从收据计算的方式,它很简洁,用户不容易作弊。您能告诉我更多如何获得批准的信息吗?是否包含还原订阅按钮?您需要确保包括一个恢复购买,该恢复购买将调用SKReceiptRefresh,将收据拉到其他设备上,并遍历收据以获取订阅信息。