Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход
Разработка платформы Шаг 385 из 387

Реализация в приложении покупки с Unity IAP APIs

Используйте Unity покупку в приложении (IAP) APIs для того чтобы инициализировать покупку, сопоставить магазин центра партнера Майкрософта IDs к продуктам которые вы хотите продать, и обработать покупки в вашей игре.

Перед реализацией рабочего процесса покупки выполните Настройка центра партнеров Microsoft и Unity Editor для установки необходимых пакетов и настройки продуктов.

Важно: Инициализируйте XGameRuntime перед тем, как вызывать IAP. Unity IAP требует этого для поддержки Xbox.

Для реализации покупок выполните следующие действия:

  1. Инициализация системы закупок.
  2. Определите ваши продукты.
  3. Получить подробную информацию по каждому продукту.
  4. Получить существующие покупки.
  5. Обработка запросов на покупку.
  6. Подтвердите доступ к приобретенному продукту.

1. Инициализация системы закупок

Дополнительные сведения см. в документации Unity IAP по Инициализация покупки в приложении.

2. Определите ваши продукты

Дополнительные сведения см. в документации Unity IAP по Определение продуктов программно.

Примечание: Каждый продукт в магазине Сбокс имеет свой собственный магазин ID созданный центром партнера Майкрософта когда вы создаете дополнения. Введите этот ID в ProductDefinition как storeSpecificId.

Магазин Сбокс только

Если ваша игра предназначена только для магазина Xbox, создайте ProductDefinition с магазином продукта ID как storeSpecificId:

ICatalogProvider catalogProvider = new CatalogProvider(); 
var products = new List<ProductDefinition>
{ 
new("com.mygame.coins100", "9PEXAMPLE001", ProductType.Consumable), 
new("com.mygame.extralevel", "9NEXAMPLE002", ProductType.NonConsumable) 
};  
catalogProvider.AddProducts(products);

Несколько магазинов

Если ваша игра поддерживает несколько магазинов и вы хотите, чтобы один и тот же продукт был доступен в этих магазинах, используйте сопоставление StoreSpecificIds:

ICatalogProvider catalogProvider = new CatalogProvider(); 
var products = new List<ProductDefinition>
{  
   new("com.mygame.coins100", ProductType.Consumable),
   new("com.mygame.extralevel", ProductType.NonConsumable)
};
var coinIds = new StoreSpecificIds
{
   { "9PEXAMPLE001", XboxStore.Name }
};
var extraLevelIds = new StoreSpecificIds
{
   { "9NEXAMPLE002", XboxStore.Name }
};
var storeSpecificIds = new Dictionary<string, StoreSpecificIds>
{
   { "com.mygame.coins100", coinIds },
   { "com.mygame.extralevel", extraLevelIds }
};
catalogProvider.AddProducts(products, storeSpecificIds);

3. Получить подробную информацию по каждому продукту

Дополнительные сведения см. в документации IAP по Получение продуктов.

Примечание: Рекомендуется получать продукты с помощью ICatalogProvider.FetchProducts, так как StoreSpecificIds уже сопоставлены при определении продуктов. Если вы хотите получать продукты с помощью StoreController.FetchProducts, создайте различные списки ProductDefinition для каждого магазина. Следующий пример кода демонстрирует, как создать списки продуктов на основе магазина:

var products = new List<ProductDefinition>();
var storeName = DefaultStoreHelper.GetDefaultStoreName();
if (storeName == XboxStore.Name)
{
   products.Add(new ProductDefinition("com.mygame.coins100", "9PEXAMPLE001", ProductType.Consumable));
   products.Add(new ProductDefinition("com.mygame.extralevel", "9NEXAMPLE002", ProductType.NonConsumable));
}
else
{
   products.Add(new ProductDefinition("com.mygame.coins100", ProductType.Consumable));
   products.Add(new ProductDefinition("com.mygame.extralevel", ProductType.NonConsumable));
}
var storeController = UnityIAPServices.StoreController();
storeController.FetchProducts(products);

4. Извлечение существующих закупок

Дополнительные сведения см. в документации Unity IAP по Получить покупки.

5. Обработка заявок на закупки

Дополнительные сведения см. в документации IAP о покупках.

6. Подтвердите доступ к приобретенному продукту

Используйте проверку прав, чтобы подтвердить, что пользователь имеет действительный доступ к приобретенному продукту. Дополнительные сведения см. в документации Unity IAP API по CheckEntitlement(Product).

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

Ограничения

Unity IAP для магазина Сбокс не поддерживает следующие особенности:

  • Управление подписки: Пользователи должны управлять их подписками через их учетную запись Майкрософта.
  • Приобретения пропуска Сбокс Game: связанные покупки пропуска Сбокс Game недоступны.
  • Поддержка нескольких магазинов: магазины, кроме магазина Xbox на Windows, не поддерживаются.
  • Изменение учетной записи пользователя во время игры: Unity IAP не обновляет права, если пользователь меняет учетные записи во время игры. Переинициализация системы покупок для получения продуктов и покупок для нового пользователя.

Дополнительные ресурсы

  • Начните с Unity IAP
  • Типы продукции
  • Unity IAP сценарии API ссылка