2013-02-19 4 views
3

Я новичок в iOS, и мне интересно, есть ли возможность указать, какой завершенный транзакционный пользователь хочет восстановить? Прямо сейчас я использую:IAP-восстановление пользовательских транзакций

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

И я ничего не могу найти, чтобы точно указать, какую операцию я хочу восстановить.

Спасибо!

ответ

0

Вы на правильном пути. Добавить

[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

И добавить функцию делегирования функции paymentQueueRestoreCompletedTransactionsFinished. В этой функции вы можете привязать определенный идентификатор продукта.

- (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]; 

     if([productID isEqualToString:IN_APP_KEY_UNLOCK_SHIP_2]) 
     { 
      //NSError *error = nil; 
      [[NSNotificationCenter defaultCenter] postNotificationName:@"ship2PurchaseRestored" object:nil]; 
     } 
    } 

} 
+0

Спасибо за ваш ответ, но это не помогло. Это даже не входит в этот код. – dargod

+0

ok получил его, добавьте \t [[SKPaymentQueue defaultQueue] addTransactionObserver: self]; Обновлен мой ответ .. – Guru

+0

Все тот же. У меня был наблюдатель раньше, сразу после восстановленияCompletedTransactions. Я все равно изменил порядок, но никакой разницы. – dargod

Смежные вопросы