Интеграция внутриигровых покупок для VR приложений

Интеграция внутриигровых покупок для VR приложений Перед нами часто встаёт задача интеграции внутриигровых покупок (IAP) для VR-приложений. Meta Quest, SteamVR и PCVR предъявляют разные требования к платёжным системам. Приложение для Quest обязано использовать нативный Meta IAP SDK — сторонние пр

Наши компетенции

Другие услуги студии

VR/AR/MR приложения на заказ

Впечатляйте клиентов и обучайте команду в виртуальной реальности

Разработка игр на Unity

От идеи до релиза — игры, которые запоминаются

3D-моделирование и анимация

Оживим ваш продукт в объёмной графике и анимации

VR-тренажёры промышленного оборудования

Тренируем операторов на технике без риска и простоя

AR-инструкции для производства

Пошаговые подсказки прямо на оборудовании — без бумаги

Safety-тренажёры

Отработка ЧС и техники безопасности без выхода на объект

VR/AR-тренинги

Обучаем персонал сервису, адаптации и soft skills в VR

Обучающие викторины

Проверка знаний в формате игры — легко и без стресса

Корпоративные видеоинструкции

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

Геймификация бизнес-процессов

Мотивируем команду через игровые механики в KPI и HR

Приложения для инфокиосков

Интерактивные экраны для магазинов, стендов и офисов

VR/AR-инсталляции

Wow-эффект для брендов на выставках, ивентах и в шоу-румах

Виртуальные выставки и музеи

Ваша экспозиция доступна из любой точки мира — 24/7

Event-квесты и брендированные игры

Запоминающиеся игры для конференций и клиентских ивентов

Часто задаваемые вопросы

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1504
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    1006
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    635
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    95

Интеграция внутриигровых покупок для VR приложений

Перед нами часто встаёт задача интеграции внутриигровых покупок (IAP) для VR-приложений. Meta Quest, SteamVR и PCVR предъявляют разные требования к платёжным системам. Приложение для Quest обязано использовать нативный Meta IAP SDK — сторонние процессинги в Meta Store запрещены. Для Steam — Steamworks API. Если проект выходит на обеих платформах, нужна абстракция, переключающая реализацию под рантайм-платформу. Начинать интеграцию IAP без понимания требований целевого стора — гарантированный возврат на ревизию.

Как избежать ошибок при тестировании IAP на Quest?

Meta Platform SDK (com.meta.xr.sdk.platform) предоставляет IAP через IAP.GetProductsBySKU и IAP.LaunchCheckoutFlow. Все SKU заводятся заранее в Meta Developer Console под конкретным App ID. Без этого SDK при вызове LaunchCheckoutFlow будет возвращать ошибку PURCHASE_NOT_ALLOWED даже в тестовом режиме. Тестирование IAP на Quest: в Developer Console нужно добавить тестовых пользователей в раздел Test Users организации. Только они могут совершать тестовые покупки без реального списания средств. Без этой настройки разработчики регулярно упираются в то, что IAP «не работает» — хотя проблема в отсутствии прав тестового аккаунта. Подписки в Meta IAP — отдельный тип продукта (SUBSCRIPTION). У подписок есть trialPeriodDays, billingPeriod, startDate. При проверке активной подписки используем IAP.GetCurrentEntitlements — возвращает все активные entitlements, включая подписки. Важно: entitlement не исчезает сразу при отмене подписки — она активна до конца оплаченного периода. Нужно проверять ExpirationTime, а не просто факт наличия. Восстановление покупок: Meta автоматически восстанавливает non-consumable покупки при входе под тем же аккаунтом через IAP.GetViewerPurchases. Consumable покупки (монеты, расходники) не восстанавливаются — они должны быть списаны через IAP.ConsumePurchase после вручения игроку.

Steamworks и PCVR: серверная верификация обязательна

Для Steam используем Steamworks.NET — C# обёртка над Steamworks API. Микротранзакции через Steam работают через SteamUser.GetSteamID + серверную верификацию через Steam Web API. В отличие от Meta, Steam рекомендует серверную проверку покупок: клиент инициирует покупку → Steam возвращает OrderID → сервер игры верифицирует через ISteamMicroTxn/FinalizeTxn → вручаем предмет. Без серверной верификации покупки можно подделать через memory editing. Для VR-only игр на Steam, где нет выделенного сервера (синглплеер или P2P), верификация ведётся через Steam Inventory Service — Steam сам хранит предметы инвентаря, и читы на клиентской стороне не влияют на Steam Inventory.

Unity IAP как кроссплатформенная абстракция

Unity In-App Purchasing (com.unity.purchasing) поддерживает Meta Store через Meta Appstore IAP и Steam через Steam IAP в одном API. IStoreController.InitiatePurchase(product) одинаково работает на обеих платформах при правильной конфигурации Builder. Unity IAP сокращает время разработки на 30–40% по сравнению с интеграцией двух нативных SDK по отдельности. Проблема Unity IAP на Meta Quest: пакет Unity IAP использует Google Play Billing как основу для Android. Quest — тоже Android-based платформа, и Unity IAP по умолчанию может попытаться использовать Google Play Store вместо Meta Store. Нужно явно задать StandardPurchasingModule.useFakeStoreAlways = false и добавить Meta Store через builder.AddStoreConfiguration. Ограничение: Unity IAP не поддерживает все возможности нативных SDK — например, Meta-специфичные подписки с trialing требуют дополнительного кода вне Unity IAP. Если проект требует нативных фич, Unity IAP используется только как fallback, а Meta SDK — как первичный.

Почему серверная верификация обязательна для pay-to-win VR-игр?

Chargeback и возврат средств в Meta Store — пользователь запрашивает возврат, Meta его одобряет, но entitlement в игре уже активирован. Если игра вручила предмет при покупке и не проверяет entitlement повторно, игрок получил предмет бесплатно. Защита: не вручать дорогие предметы мгновенно на клиенте. Паттерн: LaunchCheckoutFlowGetViewerPurchases (проверка статуса) → вручение через сервер с записью в БД. При каждом запуске приложения — повторная проверка активных entitlements через GetViewerPurchases и сверка с серверной записью. При несоответствии — блокировка предмета. Для Free-to-Play VR игр с cosmetic покупками серверная верификация часто не критична (украденный скин не ломает экономику), но для игр с pay-to-win элементами или подписками — обязательна.

Платформа / сложность Ориентировочные сроки
Meta Quest IAP (consumable + non-consumable) 1–2 недели
Steam IAP через Steamworks 1–2 недели
Кроссплатформа Unity IAP + нативные SDK 2–4 недели
Серверная верификация + защита от возвратов +1–3 недели
Метод верификации Уровень защиты Сложность реализации
Клиентская (только SDK) Низкая Быстрая
Серверная + Steam Inventory Высокая Средняя
Серверная + Meta Entitlements Высокая Высокая

Что входит в работу

  • Настройка Meta IAP SDK с корректными SKU в Developer Console
  • Интеграция Steamworks для микротранзакций с серверной верификацией
  • Создание кроссплатформенной абстракции через Unity IAP с fallback на нативные SDK
  • Тестирование на реальных устройствах с тестовыми аккаунтами
  • Документация по IAP-системе и инструкция по обслуживанию
  • Поддержка после запуска: мониторинг покупок и решение проблем с возвратами

Мы реализовали IAP для 15+ VR-проектов за 5 лет работы. Оценим ваш проект и предложим оптимальное решение — от простой интеграции до комплексной защиты от фрода. Свяжитесь с нами, чтобы обсудить детали.

Стоимость рассчитывается индивидуально после анализа требований: платформы, типы продуктов, наличие серверной инфраструктуры.