问题:我调用 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
然后返回我的观察者 paymentQueueRestoreCompletedTransactionsFinished:
SKPaymentQueue
,其中包含空事务数组 . 但我已经购买了 non-consumable in-apps .
我正在测试我的应用如何恢复来自不同州的购买 .
简单的重现步骤:
-
添加付款并完成购买 . queue return
SKPaymentTransactionStatePurchased
transaction,所以我启用了功能并在队列中完成了事务 . -
删除有关购买的信息,以便我可以重新购买 . (想象一下,用户重新安装了应用程序,或者开始在其他设备上使用该应用程序)
-
尝试再次在应用内购买 . 收到“你已经购买过这个 . 点击确定再次免费下载 . ”所以我按下OK . 并再次队列返回
SKPaymentTransactionStatePurchased
事务,因此我启用了功能并在队列中完成事务 . -
删除了有关购买的信息 . :)
-
尝试再次购买应用程序内 . 收到“你've already purchased this In-App Purchase but it hasn'已被下载 . ”只有一个OK按钮,甚至在您按下它之前,您将收到状态
SKPaymentTransactionStateFailed
的交易 . 我敲定了它 . 但是当交易失败时我不会启用功能 . -
最后尝试使用
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
恢复已完成的事务 . 它返回观察者paymentQueueRestoreCompletedTransactionsFinished:
SKPaymentQueue
,空transactions
数组 .
我觉得现在苹果沙箱服务器出了问题,所以我无法正确恢复交易 . 或者我做错了什么?
1 回答
由于您已在步骤3中完成购买,因此无需恢复购买IMHO .
步骤2和4与用户重新安装应用程序不同,因为应用程序已启动并正在运行,因此SKPayment可能会采取措施来减少服务器负载 . 您最好尝试删除应用程序,然后安装,然后立即使用
restoreCompletedTransactions
恢复购买 .我的回答是: