应用内购买错误的恢复按钮

时间:2012-07-26 13:37:43

标签: iphone objective-c ios in-app-purchase

我在我的应用中恢复应用内购买时遇到了问题

我已经在我的项目中应用了这行代码:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

但是它调用了这个函数

- (void)paymentQueue:(SKPaymentQueue*)queue restoreCompletedTransactionsFailedWithError:(NSError*)error
{
    NSLog(@"error");
}

我必须做些什么才能避免出现此错误?并调用此函数:

- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
    NSMutableArray *purchasedItemIDs = [[NSMutableArray alloc] init];

 NSLog(@"received restored transactions: %i", queue.transactions.count);
    for (SKPaymentTransaction *transaction in queue.transactions)
    {
        NSString *productID = transaction.payment.productIdentifier;
        [purchasedItemIDs addObject:productID];
    }

}

先谢谢你们!

3 个答案:

答案 0 :(得分:3)

从模拟器测试时我遇到了同样的问题。在物理设备上试用它,因为模拟器上没有应用内购买。

答案 1 :(得分:2)

来自“应用程序内购买编程指南”:Store Kit无法在iOS模拟器中运行。在iOS模拟器中运行应用程序时,如果应用程序尝试检索付款队列,Store Kit会发出警告。必须在实际设备上测试商店。

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/DevelopingwithStoreKit/DevelopingwithStoreKit.html

答案 2 :(得分:0)

inapp购买可在模拟器中使用,因此您可以在模拟器中进行检查。