Ios paymentQueueRestoreCompletedTransactionsFinished:返回带有空事务数组的队列
问题:我调用Ios paymentQueueRestoreCompletedTransactionsFinished:返回带有空事务数组的队列,ios,ios5,in-app-purchase,storekit,Ios,Ios5,In App Purchase,Storekit,问题:我调用[[SKPaymentQueue defaultQueue]restoreCompletedTransactions]并返回给我的观察者paymentqueue恢复完成的事务已完成:SKPaymentQueue,带有空事务数组。但我在应用程序中购买了非消费品 我正在测试我的应用程序如何从不同的州恢复购买 复制的简单步骤: 添加付款并完成购买。队列返回SKPaymentTransactionStatePurchasedtransaction,所以我在队列中启用该功能并完成事务 删除有关
[[SKPaymentQueue defaultQueue]restoreCompletedTransactions]代码>并返回给我的观察者paymentqueue恢复完成的事务已完成:
SKPaymentQueue
,带有空事务数组。但我在应用程序中购买了非消费品
我正在测试我的应用程序如何从不同的州恢复购买
复制的简单步骤:
添加付款并完成购买。队列返回SKPaymentTransactionStatePurchased
transaction,所以我在队列中启用该功能并完成事务
删除有关购买的信息,以便我可以重新购买。(想象一下,用户重新安装了该应用程序,或开始在另一台设备上使用该应用程序)
再次尝试在应用程序中购买。收到“您已购买此软件。点击“确定”再次免费下载。”。所以我按OK。然后再次将returnskpaymenttransactionstatephased
transaction排队,这样我就启用了该功能并在队列中完成了事务
再次删除有关购买的信息。:)李>
再次尝试在应用程序中购买。接收“您已购买此应用内购买,但尚未下载。”。只有一个OK按钮,甚至在您按下它之前,您将收到状态为SKPaymentTransactionStateFailed
的事务。我把它定下来。但当事务失败时,我不会启用该功能
最后,尝试使用[[SKPaymentQueue defaultQueue]restoreCompletedTransactions]还原已完成的事务代码>。然后返回观测者paymentQueueRestoreCompletedTransactionsFinished:
SKPaymentQueue
,其中包含空的事务
数组
我觉得苹果沙盒服务器现在坏了,所以我无法正确恢复事务。还是我做错了什么?由于您已在步骤3中完成了购买,因此无需恢复该购买IMHO
第2步和第4步与用户重新安装应用程序不同,因为应用程序已启动并正在运行,因此SKPayment可能会采取一些措施来减少服务器负载。您最好尝试删除应用程序并安装,然后立即使用restoreCompletedTransactions
恢复购买
我以前的回答是:
-(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue*)队列在支付队列处理完所有可恢复的事务后被调用。它只是告诉您恢复过程已经完成
对于每个可恢复的购买,将调用-(void)paymentQueue:(SKPaymentQueue*)队列更新交易:(NSArray*)交易
,您需要处理交易
中交易
的每个交易。交易状态
正在SKPaymentTransactionStateRestored
您是否尝试过使用real device并先删除了旧应用程序?当然,我正在real device上进行测试。我重新安装了应用程序,并为购买测试创建了新的测试帐户。你知道如何解决这个问题了吗?谢谢。是的,我知道。我已经实现了“-(void)paymentQueue:(SKPaymentQueue*)队列更新的transactions:(NSArray*)事务”,但在我还原事务时从未调用它。