Обнаружение недоступности App Store при обработке покупки - PullRequest
1 голос
/ 19 января 2012

Пока я обрабатываю покупку, я хочу иметь возможность определить, не остановились ли серверы Apple, и вывести предупреждение о том, что серверы Apple недоступны.Звучит легко, правда?Проблема, с которой я сталкиваюсь, заключается в том, что я не уверен, что есть способ узнать, не остановились ли серверы Apple, или пользователь просто сидит в предупреждении Apple «Подтвердите покупку в приложении».В основном это происходит в этом методе делегата:

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

При проверке транзакцииState для массива транзакций, делегат вызывается по SKPaymentTransactionStatePurchasing, когда покупка инициируется, и по SKPaymentTransactionStatePurchased после покупки.Нет индикатора того, когда появляется это диалоговое окно с предупреждением, и если пользователь подтверждает, поэтому я не могу надежно вывести сообщение «недоступно» в этих случаях.

Я что-то упустил, или это правильно?Как другие решают эту проблему?

Ответы [ 2 ]

2 голосов
/ 19 января 2012

В случае сбоя транзакции вызывается следующий метод:

- (void)failedTransaction:(SKPaymentTransaction *)transaction
    {
       NSLog(@"The error description is:%@",[transaction.error description]);
        if (transaction.error.code != SKErrorUnknown)
        {
            // error!
           //Your time to take over
        }

     }

Вы должны проверить http://developer.apple.com/library/mac/#documentation/StoreKit/Reference/StoreKitTypes/Reference/reference.html

1 голос
/ 24 января 2012

failedTransaction может быть вызван по разным причинам.если вы ищете конкретное хранилище не работает, то это то, что я делаю во всех обратных вызовах набора магазина.

Посмотрите на код ошибки, возвращенный набором магазина

if ( [[error domain] isEqualToString:SKErrorDomain] 
{  
    if ([[[[error userInfo] objectForKey:NSLocalizedDescriptionKey] lowercaseString] isEqualToString:@"cannot connect to itunes store"] )
    {  
       // Show custome message to user that store is not available  
    }  
}

еще одно условие, которое вы можете добавить, если, просто чтобы убедиться --->

[error code] == 0

Извините за форматирование, я никогда не понял его правильно.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...