콘텐츠로 이동

Hive IAP v4 초기화

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

마켓 정보

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

필드명 설명
APPLE_APPSTORE Apple App Store
GOOGLE_PLAYSTORE Google Play Store
HIVE_LEBI Hive 러비 상점
ONESTORE 원스토어
AMAZON_APPSTORE Amazon App Store (SDK v4 KS 전용)
SAMSUNG_GALAXYSTORE Samsung Galaxy Store
HUAWEI_APPGALLERY Huawei App Gallery
HIVESTORE PG 결제 (Windows용, Unity만 지원)
  • HIVESTORE (PG결제)는 상품 목록 조회와 구매까지만 지원하며, 클라이언트 기반의 영수증 검증은 과정에서 제외됩니다.

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

Hive IAPv4 초기화

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

다음은 Hive 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    
         }    
}];
Warning

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

- 단말에 계정 로그인이 비정상 처리된 경우 - Google Play Store, Apple App Store 등의 마켓 플랫폼 앱에 로그인이 비정상 처리된 경우 - Hive 콘솔에서 앱아이디에 따른 마켓 설정이 비정상 처리된 경우

실패 Result API 코드를 받았다면 게임 클라이언트에서 성공 콜백을 받을 때까지 재시도하거나 에러 상황(마켓 사용 불가)을 팝업으로 사용자에게 노출하는 등을 자체적으로 구현하여 대응해야 합니다.

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

초기화 시 참고 사항

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

  • 초기화(IAPV4.marketConnect)는 AuthV4 IdP 로그인 이후에 실행해야 합니다.
  • IAPV4.marketConnect가 처음으로 호출될 때, 마켓에서 상품을 결제할 Google 계정을 선택하는 상품 결제용 Google 계정 로그인 화면이 앱 사용자에게 나타납니다. 이 로그인 과정은 앱 개발사가 구현하는 기능이 아니며, Hive SDK에서 자동으로 수행합니다.
  • 상품 결제용 Google 계정 로그인은 Hive SDK 인증 모듈(AuthV4)에서 제공하는 Google IdP 로그인과는 다릅니다. Google IdP를 포함해 어떤 IdP(AuthV4) 사용자가 로그아웃하면 상품 결제용 Google 계정도 자동으로 로그아웃됩니다.