iOS恢复订阅按钮并非始终有效

问题描述

我有一个自动订阅的iOS应用。我在应用程序中添加一个还原按钮,以允许用户在其他手机上安装该应用程序时恢复其订阅。但是用户遇到异常行为。

某些用户能够恢复其订阅,对于某些“恢复”按钮而言,它什么也没做,看来苹果甚至从未调用过paymentQueue()回调。

我在打电话,

SKPaymentQueue.defaultQueue().restoreCompletedTransactions()

我发现了这个,似乎表明您需要先调用它?

let receiptRefreshRequest: SKRequest = SKReceiptRefreshRequest()
receiptRefreshRequest.delegate = self
receiptRefreshRequest.start()

iOS IAP restore doesn't work

订阅后,我们还在自己的测试中转到“ iPhone设置” /“ Apple ID” /“订阅”,它为空?还是Apple仅管理自动续订,而非自动订阅由您自己承担??

一个奇怪的行为是我将预订记录存储在iCloud中,因此,根据我的理解,即使同一用户在另一部电话上登录,即使没有调用恢复操作,他们仍然应该看到其预订。但这似乎并非如此?在同一部手机上重新启动应用程序后,似乎还无法在iCloud中存储?

NSUbiquitouskeyvalueStore *storage = [NSUbiquitouskeyvalueStore defaultStore];

解决方法

因此,我们切换到管理在我们的服务器上自己跟踪的订阅。

“跟踪和还原非续订订阅是您的责任。Apple仅处理自动续订订阅的还原。”