Подтвердить что ты не робот

Как пропустить предупреждение "Вы уже купили это, но он не был загружен"

Я тестирую приложение для покупки приложений. В то время как я покупаю свой расходный продукт во второй раз с учетной записью пользователя в среде песочницы, он всегда показывает мне предупреждение: "Вы уже купили это, но он не был загружен. Нажмите" ОК ", чтобы загрузить его сейчас". Есть ли способ пропустить предупреждение?

Спасибо за любую помощь.

4b9b3361

Ответ 1

Вы не должны видеть это предупреждение, если вы покупаете расходный материал после того, как уже сделали это. Если да, то вы никогда не удаляли транзакцию из очереди. Вам нужно удалить его, прежде чем магазин позволит вам купить его снова.

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

Ответ 2

Хорошо, мое решение после поиска в Интернете в течение нескольких часов! Не забудьте добавить наблюдателя транзакций для вашего менеджера IAP!

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

Ваше приложение должно добавить наблюдателя в очередь платежей во время инициализации приложения. Если в очереди нет наблюдателей, очередь платежей не синхронизирует свой список ожидающих транзакций с Apple App Store, потому что нет наблюдателя для ответа на обновленные транзакции.

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

Ответ 3

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

Вы можете использовать

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

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

Ответ 4

Это также может произойти с совершенно корректным кодом в ad-hoc-сборке, если вы вошли в систему с идентификатором без песочницы или с идентификатором WDONG Sandbox ID, например, с другой программой-разработчиком, чем с сертификатом, подписанным приложением с. Например, как личные или корпоративные.

Ответ 5

Убедитесь, что вы добавили эту часть кода в контроллер, обрабатывающий все запросы.

[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];

Ответ 6

У меня была такая же проблема, хотя я добавил наблюдателя транзакций, а также удалил транзакцию из очереди. Я смог исправить это, очистив мои профили обеспечения:

  • Перейдите в портал Provisioning Portal и проверьте, все ли ваши профили обеспечения распространения/разработчика сохранены. Обновите их, если необходимо, или, по крайней мере, обновите их, удалив устройство и добавив его снова.

  • Перейдите в свой организатор в XCode и удалите все профили подготовки, а не нажмите обновление.

  • Удалите приложение и все профили обеспечения вашего приложения с помощью тестового устройства

  • Выйдите с вашим текущим пользователем теста из AppStore и снова войдите в систему позже, когда ваше приложение для покупки приложений попросит вас сделать это.

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

  • Молитесь, чтобы он тоже работал для вас!

Ответ 7

Я только что исправил проблему после создания новой учетной записи для использования. Я думаю, что система Apple просто подкрепляется и испортила счета.

Удачи!