SKPaymentTransactionObserver не получает обратный вызов при переключении приложения - PullRequest
5 голосов
/ 08 февраля 2011

У меня настроены покупки в приложении, поэтому, когда пользователь нажимает кнопку покупки, появляется представление «Пожалуйста, подождите» и добавляет платеж в очередь платежей. Это всегда вызывает немедленный обратный вызов наблюдателя в очереди, сообщающего, что транзакция перешла в состояние «Покупка».

Моя проблема возникает, когда пользователь возвращается к главному экрану до появления диалогового окна подтверждения покупки, а затем отменяется. Если я некоторое время подожду на главном экране, прежде чем вернуться к приложению, приложение никогда не получит никакого обратного вызова о состоянии переключения транзакций или его удалении. Если я просматриваю очередь платежей, я вижу, что транзакция все еще находится в очереди, все еще в состоянии «Покупка». Могу ли я что-нибудь сделать, чтобы он перезвонил и удалил его из очереди после возобновления работы приложения?

Ответы [ 2 ]

5 голосов
/ 11 августа 2011

Если я правильно понял вашу ситуацию, вы столкнулись с этой проблемой:

При покупке приложения пользователь отменяет передачу, а приложение в фоновом режиме: состояние покупки остается при покупке

Это похоже на ошибку в комплекте Apple's Store. Проблема может быть легко воспроизведена, если вы отправите свое приложение в фоновый режим сразу после начала покупки, а затем нажмете кнопку отмены, когда появится всплывающее окно подтверждения покупки. Ваше приложение никогда не получит уведомление о неудачной (отмененной) транзакции и перейдет в заблокированное состояние (если вы отключили пользовательский интерфейс, пытаясь запретить пользователю взаимодействовать с приложением до завершения покупки).

Мы должны ждать исправления от Apple. В то же время, если ваше приложение входит в заблокированное состояние, потому что вы отключаете пользовательский интерфейс при совершении покупки; Вы должны реализовать некоторый механизм, позволяющий пользователю выйти из этого состояния.

Удачи!

0 голосов
/ 09 июня 2012

У меня та же проблема, однако мне удалось воспроизвести ее только при использовании учетной записи в песочнице appstore.

Кому-нибудь удалось воспроизвести ее, используя настоящую учетную запись Apple?

IЯ еще не пробовал этого, но я думаю об удалении моего SKPaymentTransactionObserver в тот момент, когда приложение теряет фокус, и добавлении его снова, когда оно в следующий раз становится активным.

Странная вещь об этой ошибке - то, что вы получаетезастрял с транзакцией в состоянии покупки, однако, когда вы правильно выключите приложение и перезапустите его, вы ожидаете, что транзакция в состоянии покупки все еще будет там, однако это не так ... Как будто повторное добавление SKPaymentTransactionObserver имеетвызвал его, чтобы правильно пересмотреть его состояние.

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