코드리스 IAP(Codeless IAP)
초기화(Initialization)

상품 정의(Defining products)

애플리케이션은 판매하는 상품의 리스트를 제공해야 합니다. 애플리케이션에서 코드를 사용하여 이렇게 할 수 있습니다.

상품 타입

각 상품은 다음 타입 중 하나여야 합니다.

Consumable 반복 구매가 가능한 상품입니다. 가상 화폐 같은 소비 가능한 아이템에 적합하고, 복구가 불가능합니다.
NonConsumable 한 번만 구매할 수 있습니다. 추가 레벨 같은 일회성 구매에 적합하고 복구 가능합니다.
Subscription 유효 기간이 있으며, 복구 가능합니다.

App 에서 직접 상품 정의

ConfigurationBuilder를 사용해 상품 리스트를 프로그램 방식으로 선언할 수 있습니다.

모든 상품 및 앞에서 언급한 타입 중 하나에 대해 고유한 크로스 스토어 식별자를 제공해야 합니다.

using UnityEngine;
using UnityEngine.Purchasing;

public class MyIAPManager {
    public MyIAPManager () {
        var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
        builder.AddProduct("100_gold_coins", ProductType.Consumable);
        // Initialize Unity IAP...
    }
}

스토어 별 ID

Unity IAP 는 기본적으로 모든 앱 스토어에서 상품의 식별자가 동일하다고 가정합니다.

예를 들어, 앞의 예제에서 Unity IAP 는 모든 앱 스토어와 통신할 때 “100_gold_coins”를 ID 로 사용합니다.

iOS 및 Mac 스토어에 모두 퍼블리시함으로 인해 개발자가 두 스토어에서 모두 동일한 상품 ID 를 사용할 수 없는 경우처럼 모든 스토어에서 동일한 상품 식별자를 재사용할 수 없는 경우가 있습니다.

이런 상황에 상품의 올바른 식별자가 크로스 플랫폼 ID 와 다른 경우에는 Unity IAP 에 해당 식별자를 알리는 메커니즘이 제공됩니다.

using UnityEngine;
using UnityEngine.Purchasing;

public class MyIAPManager {
    public MyIAPManager () {
        var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
        builder.AddProduct("100_gold_coins", ProductType.Consumable, new IDs
        {
            {"100_gold_coins_google", GooglePlay.Name},
            {"100_gold_coins_mac", MacAppStore.Name}
        });
        // Initialize Unity IAP...
    }
}

이 예제에서 상품의 식별자는 Google Play 에서 “100_gold_coins_google”이고 Mac 앱 스토어에서 “100_gold_coins_mac”입니다.

가능한 경우 모든 스토어에서 동일한 상품 식별자를 재사용하는 것이 좋습니다.

스토어별 식별자를 정의하면 Unity IAP 가 스토어와 통신할 때 사용하는 식별자만 변경되므로 API 호출 시에는 상품의 크로스 플랫폼 식별자를 계속 사용해야 합니다.

코드리스 IAP(Codeless IAP)
초기화(Initialization)