【发布时间】:2020-12-21 19:27:55
【问题描述】:
我有一个非自动订阅的 iOS 应用。我在应用程序中添加了一个恢复按钮,以允许用户在另一部手机上安装应用程序时恢复他们的订阅。但是用户遇到了异常行为。
有些用户能够恢复他们的订阅,而有些用户的恢复按钮什么也没做,似乎 Apple 甚至从未调用 paymentQueue() 回调。
我在打电话,
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
我找到了这个,看来你需要先调用这个?
let receiptRefreshRequest: SKRequest = SKReceiptRefreshRequest()
receiptRefreshRequest.delegate = self
receiptRefreshRequest.start()
在我们订阅后我们自己的测试中,我们转到 iPhone 设置/Apple ID/订阅,它是空的??还是 Apple 只管理自动续订订阅,而您自己管理非自动订阅??
另一个奇怪的行为是我将订阅记录存储在 iCloud 中,因此据我了解,如果同一用户在另一部手机上登录,即使没有调用恢复,他们仍然应该看到他们的订阅。但是好像不是这样的??在同一部手机上重新启动应用后,在 iCloud 中的存储似乎也不起作用?
NSUbiquitousKeyValueStore *storage = [NSUbiquitousKeyValueStore defaultStore];
【问题讨论】:
-
您有责任跟踪和恢复非续订订阅。 Apple 仅处理自动续订订阅的恢复。
标签: ios objective-c in-app-purchase app-store subscription