Вступить в клуб →
сложнаявопросСеть, сохранения и защита игровых данных

Unity IAP: покупка прошла, сервер не ответил, пакет кристаллов потерян навсегда

public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)
{
    backend.GrantAsync(e.purchasedProduct).Forget(); // отправили и не ждём
    return PurchaseProcessingResult.Complete;
}

Это классический обработчик Unity IAP. Если в момент покупки сервер недоступен, кристаллы не начисляются, а при следующем запуске покупка больше не приходит. Как правильно?

  • Вернуть Pending, подтвердить после ответа сервера
  • Начислить кристаллы локально, потом Complete
  • Дождаться GrantAsync синхронно через .Result
  • Вернуть Complete и повторить покупку при ошибке

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела