在全新安装的应用程序上,当我尝试重新购买商品以重新下载时,我的应用程序将购买请求发送到Store Kit。
然后,我得到SKPaymentTransactionStatePurchasing
,并且Store Kit提示用户确认购买。
然后,Store Kit在iOS 7上以以下消息作为响应:“您已经购买了此应用内购买功能,但尚未下载。”。
然后,Store Kit失败并显示SKPaymentTransactionStateFailed
,错误为
以前,StoreKit只会让用户重新下载内容。但是现在它失败,错误代码为2“无法连接到iTunes Store ”。如果执行完整还原,则Store Kit允许下载内容,但是此特定项目仍然失败。另请注意,测试设备具有WiFi和稳定的互联网连接,StoreKit能够确定已购买该产品。所以这个错误是假的。
这是iOS 7中的新变化吗?如何让用户重新下载单个项目而又不强制重新下载所有项目?
根据此Technical Note,如果存在未完成的购买交易,则会出现问题。我仔细检查了一下我称为完成交易的过程,并在收到错误后进行了处理。因此,交易确实完成了。
最佳答案
付款队列中有一些未完成的交易。要完成它们,请在使用paymentQueue.transactions
方法添加观察者之后立即检查addTransactionObserver:
数组。如果它包含一些事务,请按照您在paymentQueue:updatedTransactions:
方法中的方式处理它们。
如果不这样做,则不为它们调用paymentQueue:updatedTransactions:
,因为在您注册观察者时,它们已经在队列中。
顺便说一句,即使所有交易失败,也请确保为所有交易调用finishTransaction:
。否则,他们将留在付款队列中并导致此问题。
关于iphone - 如何根据此StoreKit消息开始下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302209/