【问题标题】:restoreCompletedTransactions never calls updatedTransactions in StoreKitrestoreCompletedTransactions 从不调用 StoreKit 中的 updatedTransactions
【发布时间】:2012-11-15 13:25:23
【问题描述】:

这几天我一直在碰壁,因为以前一切正常,但现在我已经搬到 Mountain LionXCode 4.5iOS5.1iOS6 ,出现了这个问题,我认为可能与配置开关有关。

我打电话给[[SKPaymentQueue defaultQueue] restoreCompletedTransactions],稍后paymentQueueRestoreCompletedTransactionsFinished 被调用,但没有任何迹象表明对updatedTransactions 有任何调用。就像请求在太空中丢失了一样。

我还遇到了一个可能与购买相关的问题。如果我尝试使用 makePurchase 回购一个项目,据我了解这也应该导致 SKPaymentTransactionStateRestored,我会收到 "Already purchased.. download" 消息,然后是可怕的 "Cannot connect to iTunes store...""PaymentTransactionStateFailed" 错误代码 2。什么是错误代码 2 ?

该项目是普通的非消耗性应用内购买,在沙盒模式下测试StoreKit时会发生这种情况。

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

如果有这方面的消息,我们将不胜感激。

【问题讨论】:

  • 我看到这个问题已经存在一年了。我遇到了与上述完全相同的问题。我希望在本地存储更新的交易返回后购买的项目,以便在应用程序启动时检索它们。另外,我添加了一个新的测试用户来解决“坏测试用户”的情况,仍然没有任何乐趣。我确实让观察者在 viewDidLoad: [[SKPaymentQueue defaultQueue] addTransactionObserver:self];请帮助我们!!!

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


【解决方案1】:

paymentQueue:updatedTransactions: 仅在事务状态发生变化时调用。

如果没有以前的事务,[[SKPaymentQueue defaultQueue] restoreCompletedTransactions] 不会改变这些事务的状态(因为没有),所以 paymentQueueRestoreCompletedTransactionsFinished 被调用而不调用 paymentQueue:updatedTransactions:

我还遇到了一个可能与购买相关的问题。如果我尝试使用 makePurchase 重新购买商品,据我了解,这也应该导致 SKPaymentTransactionStateRestored,我收到“已购买..下载”消息,然后是可怕的“无法连接到 iTunes 商店...”,并带有“ PaymentTransactionStateFailed”错误码2。什么是错误码2?

交易成功后需要拨打[[SKPaymentQueue defaultQueue] finishTransaction:]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    相关资源
    最近更新 更多