【发布时间】:2012-07-15 11:58:30
【问题描述】:
问题:我调用 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 它返回给我的观察者 paymentQueueRestoreCompletedTransactionsFinished: SKPaymentQueue,但事务数组为空。但我在应用内购买了非消耗品。
我正在测试我的应用如何恢复来自不同状态的购买。
重现的简单步骤:
- 添加付款并完成购买。队列返回
SKPaymentTransactionStatePurchased事务,因此应用启用功能并完成队列中的事务。 - 删除有关购买的信息,以便我重新购买。 (想象一下,用户重新安装了该应用,或开始在另一台设备上使用该应用)
- 再次尝试在应用内购买。收到“你已经购买了这个。点击 OK 再次免费下载。”。按 OK,队列返回
SKPaymentTransactionStatePurchased事务,因此应用启用功能并完成队列中的事务。 - 再次删除有关购买的信息。
- 再次尝试在应用内购买。收到“您已经购买了此应用内购买,但尚未下载。”。只有一个 OK 按钮,甚至在您按下它之前,您就会收到状态为
SKPaymentTransactionStateFailed的交易。应用完成交易,但交易失败时不会启用功能。 - 最后尝试使用
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];恢复已完成的事务。它返回到观察者paymentQueueRestoreCompletedTransactionsFinished:SKPaymentQueue并带有空的transactions数组。
我觉得 Apple Sandbox 服务器出现问题,因此我无法正确恢复交易。还是我做错了什么?
【问题讨论】:
-
你有没有试过用真机先删除旧应用?
-
当然,我正在真实设备上进行测试。然后我重新安装了该应用程序,并创建了新的测试帐户以进行购买测试。
-
你知道如何解决这个问题了吗?谢谢。
标签: ios ios5 in-app-purchase storekit