Я не могу показать сообщение, подобное этому: «Ваша покупка не может быть завершена. Пожалуйста, проверьте настройки сети и повторите попытку позже».

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

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

Но если я нажму Buy, а затем нажму Cancel, я получуFailed сделка сerror.code == 0,error.localizedDescription это «Не удается подключиться к iTunes Store», что явно является ложью.

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

Отмечу чтоMKStoreKit Предполагается, что все сбои отмены.MKStoreManager«sfailedTransaction метод никогда не вызывается;MKStoreObserver всегда звонитtransactionCanceled для всехFailed сделки.MKStoreManager.h Комментариирекомендуем не сообщать об ошибке заtransactionCanceled, что имеет смысл, но тогда кто будет уведомлять пользователя оFailed неотмененные транзакции?

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

Ответы на вопрос(5)

Ваш ответ на вопрос