问题:我调用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
它返回给我的观察者paymentQueueRestoreCompletedTransactionsFinished:
SKPaymentQueue
,并带有空的事务数组。但我购买了非消耗性应用内。
我正在测试我的应用程序如何恢复来自不同州的购买。
重现的简单步骤:
- 添加付款并完成购买。队列返回
SKPaymentTransactionStatePurchased
事务,因此应用程序启用功能并最终确定队列中的事务。 - 删除有关购买的信息,以便我可以重新购买。(想象一下,用户重新安装了该应用程序,或开始在另一台设备上使用该应用程序)
- 再次尝试在应用内购买。收到“您已经购买了。点击确定再次免费下载。 ”。按 OK,队列返回
SKPaymentTransactionStatePurchased
事务,因此应用程序启用功能并完成队列中的事务。 - 再次删除有关购买的信息。
- 再次尝试在应用内购买。收到“您已经购买了此应用内购买但尚未下载。 ”。只有一个 OK 按钮,甚至在你按下它之前,你就会收到带有 state 的交易
SKPaymentTransactionStateFailed
。应用程序完成交易,但交易失败时不会启用功能。 - 最后尝试使用
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
.paymentQueueRestoreCompletedTransactionsFinished:
SKPaymentQueue
并以空transactions
数组返回观察者。
我觉得 Apple Sandbox 服务器有问题,所以我无法正确恢复交易。还是我做错了什么?