Обработка отмененных транзакций IAP

, я использую StoreKit для покупок в приложении. Я обнаружил, что API-интерфейс работает странно, когда пользователь нажимает кнопку« Отмена » ".

Например, если я нажимаю Отменить на экране« Подтвердить покупку в приложении », я получаю транзакцию SKPaymentTransactionStateFailed с error.code == SKErrorPaymentCancelled как я Я ожидал.

Но если я нажму «Купить», а затем нажму «Отмена», я получу Неудачную транзакцию с error.code == 0 . Ошибка . localizedDescription - «Невозможно подключиться к iTunes Store», что явно является ложью.

Заманчиво рассматривать все Неудачные транзакции как игнорируемые отмены, но я также могу ясно видеть это, если устройство отключено в режиме полета я получаю транзакцию Failed без всплывающего окна с предупреждением; Я действительно должен уведомить пользователя, чтобы объяснить проблему в этом случае.

Я отмечаю, что MKStoreKit предполагает, что все сбои являются отменами. Метод MKStoreManager failedTransaction никогда не вызывается; MKStoreObserver всегда вызывает transactionCanceled для всех неудачных транзакций. MKStoreManager. h комментарии рекомендуют не сообщать об ошибке для transactionCanceled , что имеет смысл, но тогда кто будет уведомлять пользователя о неудачных неотмененных транзакциях?

Как лучше всего справляться с этими сбоями? Стоит ли проглатывать ошибки? Всегда показывать ошибку, даже если она повторяется?

8
задан Dan Fabulich 26 April 2011 в 09:37
поделиться