restoreCompletedTransactions永远不会调用StoreKit中的updatedTransactions

时间:2012-11-15 13:25:24

标签: objective-c ios in-app-purchase sandbox storekit

由于过去一切正常,我已经用头撞击墙壁了几天,但现在我已经搬到Mountain LionXCode 4.5和{{1和} iOS5.1,这个问题出现了,我认为它可能与配置开关有关。

我致电iOS6,稍后调用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions],但没有任何电话paymentQueueRestoreCompletedTransactionsFinished的迹象。这就像请求在太空中丢失了。

我也有购买可能存在的相关问题。如果我尝试使用makePurchase重新购买一个项目,根据我的理解也应该导致SKPaymentTransactionStateRestored,我得到updatedTransactions消息,然后是可怕的"Already purchased.. download",其中"Cannot connect to iTunes store..."错误代码为2什么是错误代码2?

该项目是正常的非消费类应用内购买,在沙箱模式下测试"PaymentTransactionStateFailed"时会发生这种情况。

我在这个论坛上看到其他人有类似的问题,唯一的回答是这是一个间歇性的错误,我是StoreKit。这仍然是最合理的案例吗?

任何关于此的消息都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

paymentQueue:updatedTransactions:仅在交易状态发生变化时被调用。

如果以前没有交易,[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]将不会更改这些交易的状态(因为没有交易),因此调用paymentQueueRestoreCompletedTransactionsFinished而不调用paymentQueue:updatedTransactions:

  

我也有购买可能存在的相关问题。如果我尝试使用makePurchase重新购买一个项目,根据我的理解也应该导致SKPaymentTransactionStateRestored,我得到“已经购买..下载”消息,然后是可怕的“无法连接到iTunes商店...”,带有“ PaymentTransactionStateFailed“错误代码2.什么是错误代码2?

处理成功交易后,您需要致电[[SKPaymentQueue defaultQueue] finishTransaction:]