, я использую StoreKit для покупок в приложении. Я обнаружил, что API-интерфейс работает странно, когда пользователь нажимает кнопку« Отмена » ".
Например, если я нажимаю Отменить на экране« Подтвердить покупку в приложении », я получаю транзакцию SKPaymentTransactionStateFailed
с error.code == SKErrorPaymentCancelled
как я Я ожидал.
Но если я нажму «Купить», а затем нажму «Отмена», я получу Неудачную
транзакцию с error.code == 0
. Ошибка . localizedDescription
- «Невозможно подключиться к iTunes Store», что явно является ложью.
Заманчиво рассматривать все Неудачные
транзакции как игнорируемые отмены, но я также могу ясно видеть это, если устройство отключено в режиме полета я получаю транзакцию Failed
без всплывающего окна с предупреждением; Я действительно должен уведомить пользователя, чтобы объяснить проблему в этом случае.
Я отмечаю, что MKStoreKit предполагает, что все сбои являются отменами. Метод MKStoreManager
failedTransaction
никогда не вызывается; MKStoreObserver
всегда вызывает transactionCanceled
для всех неудачных
транзакций. MKStoreManager. h
комментарии рекомендуют не сообщать об ошибке для transactionCanceled
, что имеет смысл, но тогда кто будет уведомлять пользователя о неудачных
неотмененных транзакциях?
Как лучше всего справляться с этими сбоями? Стоит ли проглатывать ошибки? Всегда показывать ошибку, даже если она повторяется?