При покупке приложения пользователь отменяет передачу, когда приложение в фоновом режиме: состояние покупки остается при покупке - PullRequest
6 голосов
/ 10 июня 2011

У меня странное поведение при отмене пользователя в приложении «Приобретение приложения» (среда «песочница»), когда приложение работает в фоновом режиме, а пользователь еще не вошел в магазин:

Процесс выглядит следующим образом:

  • Пользователь не вошел в систему / Идентификатор приложения не установлен в Настройки> Магазин
  • Пользователь нажимает кнопку покупки. Это звонки [[SKPaymentQueue defaultQueue] addPayment:payment];
  • Пользователь сразу нажимает кнопку «Домой» (приложение переходит в фоновый режим)
  • Появляется всплывающее окно Storekit с просьбой подтвердить покупку. Пользователь отменяет
  • Приложение снова активировано и ожидает получения - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions, но не получает. TX все еще находится в государственной закупке.

Этот процесс отличается, если тестируемый уже вошел в хранилище. В этом случае описанный выше процесс работает, как и ожидалось.

Еще одно замечание : После описанных выше шагов я фактически покупаю еще один элемент в приложении (включая вход в магазин приложений). После этого я отправил приложение в фоновый режим и повторно активировал его, и оно обработает только 1023 * отсутствующие отмененные транзакции.

Вывод: Пользователь, отменяющий платеж, когда приложение работает в фоновом режиме и не вошел в магазин, приводит к поздней доставке обратного вызова storekit. Доставка осуществляется после того, как пользователь фактически вошел в магазин приложений, и процесс PaymentQueue запускается при повторной активации приложения.

Такое поведение кажется неправильным, и если оно действительно таково в реальной среде , я мог бы считать это ошибкой Storekit. Кто-то испытывал такое же поведение или может указать что-то, чтобы предотвратить "зависание" tx в состоянии покупки?

Спасибо, Маркус

1 Ответ

2 голосов
/ 16 сентября 2011

Я не верю, что вы можете рассчитывать на НИЧЕГО, когда дело доходит до Store Kit.Вместо того, чтобы «выжидать», когда транзакция будет поставлена ​​в очередь после нажатия кнопки «Купить», просто продолжайте заниматься своим делом.Когда вы получите уведомление о том, что есть транзакции (которые могут быть завтра), обработайте их.Я полагаю, что в документации есть комментарий по этому поводу - ваше приложение должно регистрироваться для получения уведомлений SK при запуске и ожидать их получения в любое время.Так что не делайте никакой осведомленности о «состоянии» в своем приложении, когда дело доходит до Store Kit.Просто обрабатывайте транзакции по мере их поступления.

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