Зная, когда пользователь нажал кнопки отмены во время покупки в приложении - PullRequest
4 голосов
/ 13 августа 2010

Я пишу код для покупок в приложении и использую представление «Обработка ...» с индикатором активности, чтобы заблокировать кнопку «Купить сейчас» после начала покупки.Тем не менее, как вы можете определить, когда пользователь нажимает кнопку «Отмена», поскольку эти представления предупреждений приходят из AppStore.app?

Есть ли метод делегата, который вызывается при нажатии этих кнопок отмены?Или, по вашему мнению, вы снова становитесь firstResponder?Что мне здесь не хватает?

Если вы не думаете, что это возможно, взгляните на приложение «Я - Т-Боль» ... они делают что-то очень похожее и сразу после представления отклоняют свое мнение.нажата кнопка отмены.

альтернативный текст http://i37.tinypic.com/1t4ead.png

1 Ответ

8 голосов
/ 13 августа 2010

При условии, что все настроено правильно, у вас должен быть объект, реализующий SKPaymentTransactionObserver , который будет получать обратные вызовы для успешной / неудачной / отмены транзакции.

В моем примере это объект purchaseManager , упомянутый в этом вызове

  [[SKPaymentQueue defaultQueue] addTransactionObserver:purchaseManager];

Когда пользователь отменяет платеж, вы должны получить обратный вызов с состоянием транзакции отменено:

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

        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
                break;

            case SKPaymentTransactionStateFailed:
                // THIS IS THE STATE YOU SHOULD SEE
                [self failedTransaction:transaction];
                break;

                           ...
}

Вы можете использовать этот обратный вызов, чтобы отклонить ваше мнение и т. Д. *

...