Інтеграція внутрішньоігрових покупок для VR-додатків: наш досвід

Інтеграція внутрішньоігрових покупок для VR-додатків: наш досвід Ми часто стикаємося із завданням інтеграції внутрішньоігрових покупок (IAP) для VR-додатків. За 5 років роботи ми реалізували IAP для 15+ VR-проєктів на Meta Quest, SteamVR та PCVR. Статистика: 70% VR IAP-проєктів припадає на Meta Q

Наші компетенції

Інші послуги студії

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-додатків. За 5 років роботи ми реалізували IAP для 15+ VR-проєктів на Meta Quest, SteamVR та PCVR. Статистика: 70% VR IAP-проєктів припадає на Meta Quest, 20% на SteamVR, 10% на інші платформи. Кожна платформа висуває різні вимоги до платіжних систем. Додаток для 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 навіть у тестовому режимі. Офіційна документація Meta рекомендує додавати тестових користувачів у розділ 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 краще за нативну інтеграцію: він у 1.5-2 рази швидше в реалізації, що дає економію до $2000 середньому на проєкті. Проблема 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 елементами або підписками — обов'язкова. За нашими даними, до 10% покупок у VR-іграх можуть бути скасовані, тому захист економить до $5000 на місяць для середнього проєкту.

Платформа / складність Орієнтовні терміни Вартість (USD)
Meta Quest IAP (consumable + non-consumable) 1–2 тижні $500–$1000
Steam IAP через Steamworks 1–2 тижні $700–$1500
Крос-платформа Unity IAP + нативні SDK 2–4 тижні $1500–$3000
Серверна верифікація + захист від повернень +1–3 тижні $800–$2000
Метод верифікації Рівень захисту Складність реалізації
Клієнтська (тільки SDK) Низький Швидка
Серверна + Steam Inventory Високий Середня
Серверна + Meta Entitlements Високий Висока

Покрокова інтеграція IAP для VR (наш процес)

  1. Аналіз вимог до проєкту: платформи, типи продуктів, наявність сервера.
  2. Налаштування Meta IAP SDK: створення SKU в Developer Console, додавання тестових користувачів.
  3. Інтеграція Steamworks: налаштування мікротранзакцій з серверною верифікацією.
  4. Реалізація крос-платформної абстракції через Unity IAP з fallback на нативні SDK.
  5. Тестування на реальних пристроях з тестовими акаунтами (90% помилок виявляються на цьому етапі).
  6. Написання документації та інструкції з обслуговування.
  7. Підтримка після запуску: моніторинг покупок і вирішення проблем з поверненнями.

Що входить у роботу

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

Ми — TrueTech, маємо 5 років досвіду та 15+ реалізованих проєктів. Оцінимо ваш проєкт і запропонуємо оптимальне рішення — від простої інтеграції (від $500) до комплексного захисту від фроду. Зв'яжіться з нами, щоб обговорити деталі.

Вартість розраховується індивідуально після аналізу вимог: платформи, типи продуктів, наявність серверної інфраструктури.