paymentQueue :(SKPaymentQueue *)очередь updatedTransactions :(NSArray *)транзакции не вызываются, пока restoreCompletedTransactions

Привет, мне нужно реализовать функцию восстановления в Inapp -Purchase, для этого сделал кнопку «Восстановить», которая вызывает метод

-(void)restorePurchasedProductsWithProductId:(NSString*)prodID
{
    _productIdsArray = [[NSMutableArray alloc] init];
    productID = [prodID retain];
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}

Это дает мне всплывающее окно для ввода пароля Apple ID. И после этого ничего не происходит.

Я где-то читал, что он вызывает

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

Так что я сделал это

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
    NSLog(@"paymentQueue");
    for (SKPaymentTransaction *transaction in transactions)
    {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                [self failedTransaction:transaction];
                break;
            case SKPaymentTransactionStateRestored:
                NSLog(@"restored");
                [self restoreTransaction:transaction];
                break;
            default:
                break;

        }
    }
}

Но проблема в том, что вышеуказанный метод не вызывает ни этот

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue

ни

-(void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error

Я также включил необходимые протоколы,

Может ли кто-нибудь помочь мне, почему эти методы делегата не вызывают процесс восстановления. Я пробую это с тестовой учетной записью.

7
задан JasonMArcher 29 April 2015 в 15:36
поделиться