问题:我调用 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 它返回到我的观察者 paymentQueueRestoreCompletedTransactionsFinished: SKPaymentQueue 带有空交易数组。但我已经购买了非消耗性应用内应用。
我正在测试我的应用如何恢复不同状态下的购买。
重现的简单步骤:
SKPaymentTransactionStatePurchased 交易,因此应用启用功能并完成队列中的交易。SKPaymentTransactionStatePurchased 交易,因此应用启用功能并完成队列中的交易。SKPaymentTransactionStateFailed 的交易。该应用程序完成交易,但在交易失败时不会启用该功能。[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 恢复已完成的交易。它返回给观察者 paymentQueueRestoreCompletedTransactionsFinished: SKPaymentQueue 和空的 transactions 数组。我觉得 Apple Sandbox 服务器出现问题,因此我无法正确恢复交易。还是我做错了什么?
最佳答案
由于您已在第 3 步完成购买,恕我直言,无需恢复该购买。
第 2 步和第 4 步与用户重新安装应用程序不同,因为该应用程序已启动并正在运行,因此 SKPayment 可能会采取一些措施来减少服务器负载。您最好尝试删除应用程序并安装,然后立即使用 restoreCompletedTransactions 恢复购买。
我的旧答案:
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queueis called AFTER all restorable transactions have been processed by the payment queue. It just tells you the restoration process is done.For each restorable purchase,
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactionswill be called, and you need to deal with eachtransactionintransactionsthattransaction.transactionStatebeingSKPaymentTransactionStateRestored.
关于ios - paymentQueue RestoreCompletedTransactions 完成 : return queue with empty transactions array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11491681/