콘텐츠로 이동

Hive IAP v4 초기화

IAP v4를 사용하기 위해서는 구매 전 한 번 IAP 초기화를 요청해야 합니다. IAP 초기화를 요청하면 앱 클라이언트에서 이용 가능한 스토어 정보를 결과 값으로 반환합니다.

스토어 정보

스토어 정보는 IAPV4Type enum으로 정의되어 있으며, 필드 설명은 다음과 같습니다.

필드명 설명
APPLE_APPSTORE Apple 앱스토어
GOOGLE_PLAYSTORE Google Play 스토어
HIVE_LEBI 러비 상점
ONESTORE 원스토어
AMAZON_APPSTORE Amazon Appstore (SDK v4 KS 전용)
SAMSUNG_GALAXYSTORE Samsung Galaxy Store
HUAWEI_APPGALLERY Huawei AppGallery
HIVESTORE PG (Windows용 Unity, iOS, Android 지원)
ANIMATE_GO animate Games Online (Android 전용)
DMM DMM 포인트 상점. Windows에서 DMM GAME PLAYER를 통해 실행한 경우 사용합니다.
  • HIVESTORE PG는 상품 목록 조회와 구매까지만 지원하며, 클라이언트 기반의 영수증 검증은 과정에서 제외됩니다.
  • DMM 스토어는 Windows에서 DMM GAME PLAYER를 통해 실행한 경우에만 사용하며, DMM 포인트 기반으로 동작합니다. 자세한 내용은 [DMM 결제 사용 전 확인 사항](#dmm-billing)을 참조하세요.

스토어에서 앱 서비스를 종료하더라도 기존 사용자가 게임 플레이를 지속하려면 게임 내 재화 상점에 접근할 수 있어야 합니다. 이를 위해 앱에서는 현금 결제 상점과 게임 내 재화 상점을 반드시 분리해 설계해야 합니다. IAP v4 초기화로 전달되는 결과 값은 게임 내 상점에 접근하는 용도가 아니니 목적과 다르게 사용하지 마세요.

IAP v4 초기화

IAP v4를 초기화하려면 IAPV4 클래스의 marketConnect() 메서드를 호출해야 합니다.

다음은 IAP v4를 초기화하는 예제 코드입니다.

API Reference: hive.IAPV4.marketConnect

using hive;    
    IAPV4.marketConnect((ResultAPI result, List marketIdList) => {    
         if (result.isSuccess()) {    
            // call successful    
        }    
});
#include "HiveIAPV4.h"

FHiveIAPV4::MarketConnect(FHiveIAPV4OnMarketConnectDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<EHiveIAPV4Type>& MarketIds) {
        if (Result.IsSuccess()) {
                // API 호출 성공
        }
}));

API Reference: IAPV4::marketConnect

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    IAPV4::marketConnect([=](ResultAPI const & result, vector const & marketIdList) {    
         if (result.isSuccess()) {    
            // call successful    
         }    
});

API Reference: IAPV4.marketConnect

import com.hive.IAPV4    
    import com.hive.ResultAPI    
    IAPV4.marketConnect(object : IAPV4.IAPV4MarketInfoListener {    
         override fun onIAPV4MarketInfo(result: ResultAPI, iapV4TypeList: ArrayList<IAPV4.IAPV4Type>?) {    
             if (result.isSuccess) {    
                 // call successful    
             }    
         }    
})

API Reference: com.hive.IAPV4.marketConnect

import com.hive.IAPV4;    
    import com.hive.ResultAPI;    
    IAPV4.INSTANCE.marketConnect((result, iapV4TypeList) -> {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

API Reference: IAPV4Interface .marketConnect

import HIVEService    
    IAPV4Interface.marketConnect() { result, marketIdList in    
        if result.isSuccess() {    
        // call successful    
        }    
}

API Reference: HIVEIAPV4::marketConnect

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEIAPV4 marketConnect: ^(HIVEResultAPI *result, NSArray<NSNumber *> *marketIdList) {    
         if ([result isSuccess]) {    
            // call successful    
         }    
}];

초기화 결과 확인

여러 스토어를 사용하는 경우, 콜백으로 전달되는 marketList에는 Hive 콘솔에 설정된 스토어가 포함되며, 스토어 초기화 성공 여부에 따라 콜백이 다음과 같이 나뉩니다.

  • 모든 스토어 또는 일부 스토어만 연결에 성공한 경우: ResultAPI는 성공을 반환하며, marketList에는 연결에 성공한 스토어만 전달됩니다.
  • 모든 스토어 연결에 실패한 경우: ResultAPI는 에러 코드를 반환하며, marketList는 값 없음(null)을 반환합니다.

예를 들어, Hive 콘솔에 App Store와 PG(Hive Store)를 모두 설정한 앱에서 PG(Hive Store) 연결에만 실패한 경우:

  • ResultAPI: 성공 반환
  • marketList: [APPLE_APPSTORE] (성공한 스토어만 전달)
Warning

marketConnect() 메서드 호출이 실패한 경우 상품 목록 조회 또는 구매를 정상적으로 진행할 수 없으며, 그 실패 요인은 다음과 같습니다.

  • 단말에 계정 로그인이 비정상 처리된 경우
  • Google Play 스토어, Apple 앱스토어 등의 스토어 플랫폼 앱에 로그인이 비정상 처리된 경우
  • 하이브 콘솔에서 앱아이디에 따른 스토어 설정이 비정상 처리된 경우

ResultAPI가 성공을 반환하더라도, 콘솔에 설정한 모든 스토어가 연결된 것은 아닙니다. 콘솔에 설정한 스토어 수와 marketList의 스토어 수가 다르다면 일부 스토어 연결에 실패한 것이므로, 반환된 marketList 내의 스토어로만 이후 결제 플로우를 진행하세요.

ResultAPI가 실패를 반환한 경우(전체 실패)에는 앱 클라이언트에서 성공 콜백을 받을 때까지 재시도 하거나 에러 상황(스토어 사용 불가)을 팝업으로 사용자에게 노출하는 등을 자체적으로 구현하여 대응해야 합니다.

IAP v4 Result API 가이드에서 관련 Result API 코드를 확인하세요.

초기화 시 참고 사항

Hive SDK v4 Unity Windows 25.8.0부터 Google Play용 Windows 앱을 지원하며, GOOGLE_PLAYSTORE 스토어를 사용할 수 있습니다. 이 경우, 개발 시 아래 사항을 참고하세요.

Hive SDK v4 iOS 26.3.2 이후 버전부터 PG(HIVESTORE)를 사용할 수 있습니다.