Я работаю над этим приложением с включенной функцией покупки в приложении. Счастливый путь пройден, все нормально, пытаюсь проработать не счастливый путь.
Проще говоря, покупка привязана к серверному компоненту. При покупке, когда транзакция находится в состоянии «Куплено», я должен выйти на сервер, который активирует учетную запись пользователя. Когда запрос возвращается, я очищаю некоторые вещи и, в конце концов, вызываю -finishTransaction :в SKPaymentQueue.
Несчастный путь - это в значительной степени, когда вызов сервера терпит неудачу по какой-либо причине. Сеть недоступна, время ожидания сети, пользователь закрыл приложение сразу после его покупки, и незадолго до того, как я смог позвонить на сервер, вы называете это.
Мои тесты в симуляторе 5.1 с учетной записью песочницы показывают мне, что незавершенная транзакция Purchased вернется в очередь при следующем запуске, и мой делегат будет правильно вызван с ней. Но через некоторое время, скажем, 5 минут, бум, транзакция прошла. Учитывая общую стабильность учетных записей песочницы, я готов назвать это реализацией симулятора, но трудно сказать.
Каков правильный способ решения этой проблемы?
Дополнительный вопрос :когда Apple действительно взимает плату? Похоже, это должно быть ПОСЛЕ приложения под названием -finishTransaction :, но я нигде не смог найти никаких доказательств этого.
Спасибо, / кра
ОБНОВЛЕНИЕ :тестирование на физическом устройстве, почти час, а транзакция все еще есть. Похоже, исчезновение транзакций — это симулятор.