유니티게임개발/기초공부

유니티 인앱결제(Unity In-App Purshasing, IAP) 초기화 및 상품 구매 구현

디지털콘텐츠크리에이터 2024. 10. 10. 23:58

유니티 인앱결제(Unity In-App Purshasing, IAP) 초기화 및 상품 구매 구현

IAP 패키지의 샘플(Samples) 프로젝트에서 IAP 초기화 및 상품 구매구현 방법을 참고합니다.

1)패키자 관리자(Package manager)에서 IAP 패키지를 설치합니다. 설치한 IAP 패키지의 samples에서 IAP 샘플 프로젝트를 확인할수있습니다. import를 클릭하여 상품 구매 buying consumables 샘플을 프로젝트로 가져오기합니다.

 

2)프로젝트에서 IAP 샘플 씬 및 스크립트를 확인합니다.

 

3)Purchasing, Purchasing.Extension 네임스페이스를 선언하고 IDetailedStoreListener 인터페이스를 상속합니다.

Purchasing - 제품 목록 정의, 결제 요청 및 처리등의  IAP 필수 기능을 제공합니다(IAPButton, Product, PurchaseEventArgs등)  

Purchasing.Extension - Purchasing 의 확장 기능을 제공합니다.

IDetailedStoreListener  - 세부적인 결제 정보와 추가적인 콜백을 처리하기 위한 기능을 제공합니다.

 

4)IAP 초기화 함수를 구현합니다.

var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());

표준 결제 모듈(StandardPurchasingModule)를 사용하여 IAP에서 사용할 제품들을 정의하기 위한 빌더인 ConfigurationBuilder 인스턴스를 생성합니다.
 

builder.AddProduct(goldProductId, ProductType.Consumable);
상품의 제품 ID와 제품 유형(소모성, 비소모성)을 정의하고 빌더에 상품을 추가합니다. 

 

UnityPurchasing.Initialize(this, builder);
Unity IAP 시스템을 초기화합니다.  IStoreListener를 구현하는 객체 this와 제품들을 정의한 빌더 ConfigurationBuilder를 매개변수로 설정합니다.

 

 

5)유니티 IAP 시스템 초기화가 성공 또는 실패했을때 호출될 함수를 구현합니다.
OnInitialized, OnInitializeFailed

 

 

6)사용자 상품 구매 버튼과 함수를 구현합니다. 사용자가 구매 버튼을 클릭하면 BuyGold() 메소드를 호출합니다.

m_StoreController.InitiatePurchase 함수에서  제품ID로 정의된 상품의 구매 프로세스를 시작하며 스토어에서 결제 화면을 표시합니다.

 

7)스토어에서 구매가 완료되었을 때 호출되는 콜백 함수를 구현합니다.

public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)

구매 이벤트의 결과로 PurchaseEventArgs args 매개변수를 전달받고 어떤 상품을 구매했는지 판별한후에 게임에서 재화를 추가합니다.

PurchaseProcessingResult.Complete
구매 처리가 끝났음을 알리는 값입니다. 완료를 반환하여 유니티 IAP 시스템에서 해당 구매를 완료하였으며 거래를 종료할 수 있음을 알립니다.

 

8)구매를 실패했을때 호출되는 콜백 함수를 구현합니다.구매 실패 콜백 함수는 사용자 계정 또는 카드 문제, 사용자 카드 한도 초과, 네트워크 연결 문제등에 의해 구매를 실패했을때 호출될수있습니다.

public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)