【问题标题】:iOS6 - In app purchase with download from Apple serveriOS6 - 从苹果服务器下载的应用内购买
【发布时间】:2012-12-03 15:56:06
【问题描述】:

我能够成功进行应用内购买并从 Apple 服务器下载内容并使用它。
我的应用内购买内容是非消耗品。所以我在我的应用程序中提供了“恢复”按钮
现在,当用户按下“恢复”按钮时,我正在调用该方法:

restoreCompletedTransactions

但在这里,我没有接到委托方法的调用:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

这样我就可以识别交易对象并重新开始从苹果服务器下载内容。有人可以帮我写“恢复”选项吗?

根据苹果,它说:

// 异步的。将当前用户的已完成事务添加回队列以重新完成。将要求用户进行身份验证。观察者将收到 0 个或多个 -paymentQueue:updatedTransactions:,然后是 -paymentQueueRestoreCompletedTransactionsFinished: 成功或 -paymentQueue:restoreCompletedTransactionsFailedWithError: 失败。在部分成功的情况下,部分交易可能仍会送达。

但对我来说,我根本没有接到“paymentQueue:updatedTransactions”的电话。我刚接到电话“paymentQueueRestoreCompletedTransactionsFinished:”

【问题讨论】:

    标签: ios download in-app-purchase


    【解决方案1】:

    您可能没有观察到事务队列。确保你有

    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    

    调用 restoreCompletedTransactions 方法之前的某个地方

    【讨论】:

    • 恢复后,我收到回调:- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue 但是如何获取交易对象并获取要下载的内容?
    • 这很奇怪。 paymentQueue:updatedTransactions: 方法应该被调用。有没有可能早先调用了这个方法,但你没有在它之后调用 [[SKPaymentQueue defaultQueue] finishTransaction:transaction]?如果是这种情况,则应从设备中删除应用并尝试使用同一测试用户再次恢复产品。
    • 我试过了。我删除了该应用程序并尝试使用相同的测试用户恢复产品....我仍然没有接到“updatedTransactions”的电话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多