본문 바로가기
개발/C#

유니티 C# IAP 국가코드 화폐 단위 가져오기 간단 구현

by SPNK 2024. 2. 18.
반응형
  • 코드 작성
using UnityEngine;
using UnityEngine.Purchasing;

public class CurrencyUnitsFetcher : MonoBehaviour, IStoreListener
{
    private IStoreController storeController;

    void Start()
    {
        InitializePurchasing();
    }

    private void InitializePurchasing()
    {
        ConfigurationBuilder builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());

        // 여기에 제품 ID를 추가하세요
        builder.AddProduct("your_product_id", ProductType.Consumable);

        UnityPurchasing.Initialize(this, builder);
    }

    public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
    {
        storeController = controller;
    }

    public void OnInitializeFailed(InitializationFailureReason error)
    {
        Debug.LogError("Unity IAP 초기화 실패: " + error);
    }

    public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
    {
        Debug.LogError("제품 " + product.definition.id + " 구매 실패: " + failureReason);
    }

    public void OnPurchaseComplete(Product product)
    {
        // 구매가 완료되면 국가별로 통화 단위를 가져올 수 있습니다.
        string countryCode = GetCountryCode(); // 국가 코드를 가져오는 메서드를 구현하세요
        string currencySymbol = GetCurrencySymbol(product.metadata, countryCode);

        Debug.Log("제품 " + product.definition.id + "의 통화 단위: " + currencySymbol);
    }

    private string GetCurrencySymbol(ProductMetadata metadata, string countryCode)
    {
        // 국가 코드를 기반으로 통화 기호를 가져옵니다.
        foreach (var localizedPrice in metadata.localizedPriceString.Split('\n'))
        {
            string[] parts = localizedPrice.Split(' ');
            if (parts.Length == 2 && parts[0] == countryCode)
            {
                return parts[1];
            }
        }

        return "알 수 없음";
    }

    // 사용자 위치를 기반으로 국가 코드를 가져오는 메서드를 구현하세요
    private string GetCountryCode()
    {
        // 귀하의 요구 사항에 기반하여이 메서드를 구현해야합니다.
        // 장치의 로케일 또는 기타 방법을 사용하여 사용자의 위치를 결정할 수 있습니다.
        // 간단함을 위해이 예제는 더미 국가 코드 "US"를 반환합니다.
        return "US";
    }

    // 나머지 클래스 구현 부분...
}
반응형

댓글