콘텐츠로 이동

Result API code – IAPV4

Bookmark

marketConnect getProductInfo purchase restore transactionFinish
transactionMultiFinish checkPromotePurchase showMarketSelection getBalanceInfo showCharge

hive.IAPV4.marketConnect (onIAPV4MarketInfo listener)

IAPV4.marketConnect((ResultAPI result, List<IAPV4.IAPV4Type> iapV4TypeList) => {
    switch(result.code) {
        case ResultAPI.Code.IAPV4NetworkError:
        // 기기의 네트워크 연결 상태를 확인하세요.
        // 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4ResponseError:
        // 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4ServerResponseError:
        // 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4RequestMarketJsonException:
        // 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4AppStoreError:
        // 해당 기기에서 AppStore 연동이 가능한 상태인지 확인하세요.
        // 해당 문제가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4FailMarketConnect:
        // 해당 기기에서 선택한 Market에 연동이 가능한 상태인지 확인하세요.
        // 해당 문제가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        ...
    }
});
IAPV4::marketConnect([](ResultAPI const & result,std::vector<IAPV4Type> const & marketIDs){
    switch(result.code) {
        case ResultAPI::Code::IAPV4NetworkError:
            // 기기의 네트워크 연결 상태를 확인하세요.
            // 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4ResponseError:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4ServerResponseError:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4RequestMarketJsonException:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4AppStoreError:
            // 해당 기기에서 AppStore 연동이 가능한 상태인지 확인하세요.
            // 해당 문제가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4FailMarketConnect:
            // 해당 기기에서 선택한 Market에 연동이 가능한 상태인지 확인하세요.
            // 해당 문제가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
            ...
    }
});
IAPV4.marketConnect(new IAPV4.IAPV4MarketInfoListener() {
    @Override
    public void onIAPV4MarketInfo(ResultAPI result, List<IAPV4.IAPV4Type> iapV4TypeList) {
        switch(result.code) {
            case IAPV4NetworkError:
                // 기기의 네트워크 연결 상태를 확인하세요.
                // 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
                break;
            case IAPV4ResponseError:
                // 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4ServerResponseError:
                // 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4RequestMarketJsonException:
                // 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4AppStoreError:
                // 해당 기기에서 AppStore 연동이 가능한 상태인지 확인하세요.
                // 해당 문제가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4FailMarketConnect:
                // 해당 기기에서 선택한 Market에 연동이 가능한 상태인지 확인하세요.
                // 해당 문제가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            ...
        }
    }
});
[HIVEIAPV4 marketConnect:^(HIVEResultAPI *result, NSArray<NSNumber *> *marketIDs) {
    switch(result.code) {
        case kIAPV4NetworkError:
            // 기기의 네트워크 연결 상태를 확인하세요.
            // 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
            break;
        case kIAPV4ResponseError:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4ServerResponseError:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4RequestMarketJsonException:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4AppStoreError:
            // 해당 기기에서 AppStore 연동이 가능한 상태인지 확인하세요.
            // 해당 문제가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4FailMarketConnect:
            // 해당 기기에서 선택한 Market에 연동이 가능한 상태인지 확인하세요.
            // 해당 문제가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
            //...
    }
}];
Code Message How to solve
(필수 구현) IAPV4NetworkError HIVE 서버 통신에 실패하였습니다. 기기의 네트워크 연결 상태를 확인하세요. 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
(필수 구현) IAPV4ResponseError HIVE서버 통신 응답값이 정상이 아닙니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4ServerResponseError HIVE 서버 통신 응답값이 정상이 아닙니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4RequestMarketJsonException [Android] /api/call market 서버 통신을 위한 json 데이터 생성 중 에러가 발생하는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4NetworkError HIVE 서버 통신에 실패하였습니다. 기기의 네트워크 연결 상태를 확인하세요.
(필수 구현) IAPV4ResponseError HIVE 서버 통신 응답값이 정상이 아닙니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4ServerResponseError 서버 통신 응답값이 정상이 아닙니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4RequestMarketJsonException [Android] /api/call market 서버 통신을 위한 json 데이터 생성 중 에러가 발생하는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4AppStoreError [Apple Market] AppStore 연동 시도 중 에러가 발생하였습니다. 해당 기기에서 AppStore 연동이 가능한 상태인지 확인하세요. AppStore 에러 보기
(필수 구현) IAPV4FailMarketConnect [Google Market] Google Market 연동 시도 중 에러가 발생하였습니다. [Lebi Market] Lebi Market 연동 시도 중 에러가 발생하였습니다. [OneStore Market] OneStore Market 연동 시도 중 에러가 발생하였습니다. 해당 기기에서 선택한 Market에 연동이 가능한 상태인지 확인하세요.
IAPV4NotInitialize HIVE SDK 초기화가 되어있지 않습니다. AuthV4.setup API를 호출하여 HIVE SDK 초기화를 수행하세요. API 보기
IAPV4InProgressMarketConnect Market Connect가 이미 진행중입니다. IAPV4.marketConnect API가 이미 수행중인 경우 중복으로 API 호출이 불가능합니다.
IAPV4EmptyMarketList 서버 통신 응답 데이터의 마켓 리스트가 비정상입니다. 등록된 마켓 정보를 확인하세요.
IAPV4NotSupportedMarket 현재 버전의 HIVE SDK에서 사용 불가능한 마켓입니다. 등록된 마켓 정보를 확인하세요.
IAPV4MarketPidListEmptyInIAPServer 서버에 등록된 마켓이 없거나 지원하지 않는 마켓입니다. 등록된 마켓 정보를 확인하세요.
IAPV4FailToConvertNSSet [Apple Market] 서버에 등록된 Apple 마켓의 아이템 리스트가 유효하지 않습니다. 등록된 Apple 마켓의 아이템 정보를 확인하세요.
IAPV4InProgressConnectAppStore [Apple Market] 이미 AppStore에 연결을 시도중입니다. 이미 IAPV4.marketCoonect API를 통해 시도중인 AppStore 연결이 종료될 때 까지 기다려주세요.
IAPV4AppStoreResponseEmpty [Apple Market] AppStore에 등록된 아이템 정보가 없거나, AppStore 연동이 정상적으로 진행되지 않았습니다. AppStore에 상품이 등록되어 있지 않거나, 상품이 비활성화 되어 있는지 확인하세요. 순간적인 인터넷 단절 등의 상황으로 통신이 이루어지지 못하였는지 확인하세요.
IAPV4PlayStoreQueryInventoryFail [Google Market] Google Market 연동이 정상적으로 진행되지 않았거나 상품 정보 조회가 정상적으로 진행되지 않았습니다. 해당 기기에서 Google Market 연동이 가능한 상태인지 확인하세요. 해당 문제가 지속되는 경우 전달받은 메시지와 함께 Hive에 문의하세요. 4.16.0, 1.20.0 부터 추가되었습니다.

hive.IAPV4.getProductInfo (onIAPV4ProductInfo listener)

IAPV4.getProductInfo((ResultAPI result, List<IAPV4.IAPV4Product> iapV4ProductList, int balance) => {
    switch(result.code) {
        case ResultAPI.Code.IAPV4ProductInfoJsonException:
        // 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4RequestProductJsonException:
        // 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4ResponseError:
        // 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        /***** 구매 진행할 마켓 선택이 필요한 경우 *****/
        case ResultAPI.Code.IAPV4EmptyMarketURL:
        // 구매 진행할 Market 선택 리스트가 없습니다.
        break;
        case ResultAPI.Code.IAPV4CancelMarketSelect:
        // 구매 진행할 Market 선택을 취소하거나, 선택 처리중 에러가 발생하였습니다.
        // Market 선택이 진행되지 않으면 구매가 진행 될 수 없으므로 해당 API를 재시도하세요.
        // 해당 에러가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4NetworkError:
        // 기기의 네트워크 연결 상태를 확인하세요.
        // 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4ServerResponseError:
        // 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        ...
    }
});
IAPV4::getProductInfo([](ResultAPI const & result,std::vector<IAPV4Product> const & productInfoList,unsigned int balance){
    switch(result.code) {
        case ResultAPI::Code::IAPV4ProductInfoJsonException:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4RequestProductJsonException:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4ResponseError:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
            /***** 구매 진행할 마켓 선택이 필요한 경우 *****/
        case ResultAPI::Code::IAPV4EmptyMarketURL:
            // 구매 진행할 Market 선택 리스트가 없습니다.
            break;
        case ResultAPI::Code::IAPV4CancelMarketSelect:
            // 구매 진행할 Market 선택을 취소하거나, 선택 처리중 에러가 발생하였습니다.
            // Market 선택이 진행되지 않으면 구매가 진행 될 수 없으므로 해당 API를 재시도하세요.
            // 해당 에러가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4NetworkError:
            // 기기의 네트워크 연결 상태를 확인하세요.
            // 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4ServerResponseError:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
            ...
    }
});
IAPV4.getProductInfo(new IAPV4.IAPV4ProductInfoListener() {
    @Override
    public void onIAPV4ProductInfo(ResultAPI result, final List<IAPV4.IAPV4Product> iapV4ProductList, final int balance) {
        switch(result.code) {
            case IAPV4ProductInfoJsonException:
                // 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4RequestProductJsonException:
                // 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4ResponseError:
                // 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            /***** 구매 진행할 마켓 선택이 필요한 경우 *****/
            case IAPV4EmptyMarketURL:
                // 구매 진행할 Market 선택 리스트가 없습니다.
                break;
            case IAPV4CancelMarketSelect:
                // 구매 진행할 Market 선택을 취소하거나, 선택 처리중 에러가 발생하였습니다.
                // Market 선택이 진행되지 않으면 구매가 진행 될 수 없으므로 해당 API를 재시도하세요.
                // 해당 에러가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4NetworkError:
                // 기기의 네트워크 연결 상태를 확인하세요.
                // 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
                break;
            case IAPV4ServerResponseError:
                // 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            ...
        }
    }
});
[HIVEIAPV4 getProductInfo:^(HIVEResultAPI *result, NSArray<HIVEIAPV4Product *> *productInfoList, NSUInteger balance) {
    switch (result.code) {
        case kIAPV4ProductInfoJsonException:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4RequestProductJsonException:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4ResponseError:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
            /***** 구매 진행할 마켓 선택이 필요한 경우 *****/
        case kIAPV4EmptyMarketURL:
            // 구매 진행할 Market 선택 리스트가 없습니다.
            break;
        case kIAPV4CancelMarketSelect:
            // 구매 진행할 Market 선택을 취소하거나, 선택 처리중 에러가 발생하였습니다.
            // Market 선택이 진행되지 않으면 구매가 진행 될 수 없으므로 해당 API를 재시도하세요.
            // 해당 에러가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4NetworkError:
            // 기기의 네트워크 연결 상태를 확인하세요.
            // 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
            break;
        case kIAPV4ServerResponseError:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
            //...
    }
}];
Code Message How to solve
(필수 구현) IAPV4ProductInfoJsonException HIVE 서버 통신에 필요한 정보가 누락되었습니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4RequestProductJsonException HIVE 서버 통신에 필요한 정보가 누락되었습니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4ResponseError HIVE 서버 통신 응답값이 정상이 아닙니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4ResponseError HIVE 서버 통신 응답값이 정상이 아닙니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4EmptyMarketURL 선택 할 수 있는 Market이 없습니다. 구매 진행할 Market 선택 리스트가 없습니다.
(필수 구현) IAPV4CancelMarketSelect 구매 진행할 Market 선택에 에러가 발생하였습니다. 구매 진행할 Market 선택을 취소하거나, 선택 처리중 에러가 발생하였습니다. Market 선택이 진행되지 않으면 구매가 진행 될 수 없으므로 해당 API를 재시도하세요. 해당 에러가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4NetworkError 서버 통신에 실패하였습니다. 기기의 네트워크 연결 상태를 확인하세요. 기기의 네트워크 연결 상태가 정상임에도 해당 에러가 발생하는 경우 에러 메시지와 함께 HIVE 에 문의주세요.
(필수 구현) IAPV4ServerResponseError 서버 통신 응답값이 정상이 아닙니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
IAPV4NotInitialize HIVE SDK 초기화가 되어있지 않습니다. AuthV4.setup API를 호출하여 HIVE SDK 초기화를 수행하세요. API 보기
IAPV4NeedMarketConnect 마켓 연동이 되어있지 않습니다. IAPV4.MarketConnect API를 호출하여 IAPV4 Market 연동를 수행하세요.
IAPV4NeedSignIn 로그인이 되어있지 않습니다. AuthV4.helper.signIn API를 호출하여 로그인을 수행하세요. API 보기
IAPV4EmptyProductList 구매 가능한 아이템이 존재하지 않습니다. 구매할 아이템 정보를 등록하세요.
IAPV4InProgressMarketSelect 구매 진행할 Market 선택이 이미 진행중입니다. 구매 진행할 Market 선택 이후 다시 수행하세요.
IAPV4NeedSignIn [Lebi Market] 로그인이 되어있지 않아 Lebi Market 이용이 불가능합니다. AuthV4.helper.connect API를 providerType 을 HIVE로 설정하여 HIVE 연동을 수행하도록 안내하세요. API 보기
IAPV4NeedSignIn 로그인이 되어있지 않습니다. AuthV4.helper.signIn API를 호출하여 로그인을 수행하세요. API 보기
IAPV4EmptyProductList 구매 가능한 아이템이 존재하지 않습니다. 구매할 아이템 정보를 등록하세요.
IAPV4InProgressMarketSelect 구매 진행할 Market 선택이 이미 진행중입니다. 구매 진행할 Market 선택 이후 다시 수행하세요.
IAPV4NeedSignIn [Lebi Market] 로그인이 되어있지 않아 Lebi Market 이용이 불가능합니다. AuthV4.helper.connect API를 providerType 을 HIVE로 설정하여 HIVE 연동을 수행하도록 안내하세요. API 보기
IAPV4NotSupportedMarket 현재 기기의 OS에서 지원할 수 없는 Market을 선택하였습니다. Market 선택 팝업에서 지원할 수 없는 Market이 노출되지 않도록 하세요.
IAPV4PlayStoreQueryInventoryFail [Google Market] Google Market 연동이 정상적으로 진행되지 않았거나 상품 정보 조회가 정상적으로 진행되지 않았습니다. 해당 기기에서 Google Market 연동이 가능한 상태인지 확인하세요. 해당 문제가 지속되는 경우 전달받은 메시지와 함께 Hive에 문의하세요. 4.16.0, 1.20.0 부터 추가되었습니다.

hive.IAPV4.purchase (String marketPid, String additionalInfo, onIAPV4Purchase listener)

IAPV4.purchase ("com.gcp.product1", "{\"characterName\":\"GCP\"}", (ResultAPI result, IAPV4.IAPV4Receipt iapV4Receipt) => {
    switch(result.code) {
        case ResultAPI.Code.IAPV4RestrictPayments:
        // 기기내 구매 차단 여부를 확인하세요.
        break;
        case ResultAPI.Code.IAPV4NeedRestore:
        // IAPV4.restore API를 통해 구매복구를 진행하세요.
        break;
        case ResultAPI.Code.IAPV4PurchaseParamJsonException:
        // 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4CancelPayment:
        // 구매를 취소하였음을 알려주세요.
        break;
        /**** Apple 상점 이용 *****/
        case ResultAPI.Code.IAPV4AppStoreError:
        // 구매를 취소하였음을 알려주세요.
        break;
        /***** Google 상점 이용 *****/
        case ResultAPI.Code.IAPV4FailPayment:
        // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
        //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPPlayStoreLaunchPurchaseFlowException:
        // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
        //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
        break;
        /***** Lebi 상점 이용 *****/
        case ResultAPI.Code.IAPV4LebiCancel:
        // 유저가 Lebi 잔액 충전을 취소하였습니다. 잔액이 부족하여 구매를 진행 할 수 없음을 안내하세요.
        break;
        case ResultAPI.Code.IAPV4LebiPurchaseNetworkError:
        // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
        //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4LebiPurchaseJsonException:
        // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
        //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4LebiInternalRequestException:
        // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
        //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.CommonUnknown:
        // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
        //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4PlayStorePending:
        // 오프라인 구매 등의 이유로 구매가 대기 중인 거래 처리되었습니다.
        //이후 UE의 IAP_UPDATED 신호에서 Restore 시 구매 완료된 영수증을 받을 수 있습니다.
        break;
        ...
    }
});
string marketPid = "com.gcp.product1";
string additionalInfo = "{\"characterName\":\"GCP\"}";
IAPV4::purchase(pidList[index], getEditboxValue(EDITBOX_ADDITIONAL_INFO), [](ResultAPI const & result,IAPV4Receipt const & receipt){
    switch(result.code) {
        case ResultAPI::Code::IAPV4RestrictPayments:
            // 기기내 구매 차단 여부를 확인하세요.
            break;
        case ResultAPI::Code::IAPV4NeedRestore:
            // IAPV4.restore API를 통해 구매복구를 진행하세요.
            break;
        case ResultAPI::Code::IAPV4PurchaseParamJsonException:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4CancelPayment:
            // 구매를 취소하였음을 알려주세요.
            break;
            / Apple 상점 이용 *****/
        case ResultAPI::Code::IAPV4AppStoreError:
            // 구매를 취소하였음을 알려주세요.
            break;
            /***** Google 상점 이용 *****/
        case ResultAPI::Code::IAPV4FailPayment:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPPlayStoreLaunchPurchaseFlowException:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
            /***** Lebi 상점 이용 *****/
        case ResultAPI::Code::IAPV4LebiCancel:
            // 유저가 Lebi 잔액 충전을 취소하였습니다. 잔액이 부족하여 구매를 진행 할 수 없음을 안내하세요.
            break;
        case ResultAPI::Code::IAPV4LebiPurchaseNetworkError:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4LebiPurchaseJsonException:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4LebiInternalRequestException:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::CommonUnknown:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4PlayStorePending:
            // 오프라인 구매 등의 이유로 구매가 대기 중인 거래 처리되었습니다.
            //이후 UE의 IAP_UPDATED 신호에서 Restore 시 구매 완료된 영수증을 받을 수 있습니다.
            break;
            ...
    }
});
IAPV4.purchase("com.gcp.product1", "{\"characterName\":\"GCP\"}", new IAPV4.IAPV4PurchaseListener() {
    @Override
    public void onIAPV4Purchase(ResultAPI result, final IAPV4.IAPV4Receipt iapV4Receipt) {
        switch(result.code) {
            case IAPV4RestrictPayments:
                // 기기내 구매 차단 여부를 확인하세요.
                break;
            case IAPV4NeedRestore:
                // IAPV4.restore API를 통해 구매복구를 진행하세요.
                break;
            case IAPV4PurchaseParamJsonException:
                // 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4CancelPayment:
                // 구매를 취소하였음을 알려주세요.
                break;
            / Apple 상점 이용 *****/
            case IAPV4AppStoreError:
                // 구매를 취소하였음을 알려주세요.
                break;
            /***** Google 상점 이용 *****/
            case IAPV4FailPayment:
                // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
                //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
                break;
            case IAPPlayStoreLaunchPurchaseFlowException:
                // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
                //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
                break;
            /***** Lebi 상점 이용 *****/
            case IAPV4LebiCancel:
                // 유저가 Lebi 잔액 충전을 취소하였습니다. 잔액이 부족하여 구매를 진행 할 수 없음을 안내하세요.
                break;
            case IAPV4LebiPurchaseNetworkError:
                // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
                //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4LebiPurchaseJsonException:
                // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
                //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4LebiInternalRequestException:
                // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
                //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
                break;
            case CommonUnknown:
                // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
                //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4PlayStorePending:
                // 오프라인 구매 등의 이유로 구매가 대기 중인 거래 처리되었습니다.
                //이후 UE의 IAP_UPDATED 신호에서 Restore 시 구매 완료된 영수증을 받을 수 있습니다.
                break;
            ...
        }
    }
});
[HIVEIAPV4 purchase:@"com.gcp.product1" additionalInfo:@"{\"characterName\":\"GCP\"}" handler:^(HIVEResultAPI *result, HIVEIAPV4Receipt *receipt) {
    switch (result.code) {
        case kIAPV4RestrictPayments:
            // 기기내 구매 차단 여부를 확인하세요.
            break;
        case kIAPV4NeedRestore:
            // IAPV4.restore API를 통해 구매복구를 진행하세요.
            break;
        case kIAPV4PurchaseParamJsonException:
            // 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4CancelPayment:
            // 구매를 취소하였음을 알려주세요.
            break;
            /**** Apple 상점 이용 *****/
        case kIAPV4AppStoreError:
            // 구매를 취소하였음을 알려주세요.
            break;
            /***** Google 상점 이용 *****/
        case kIAPV4FailPayment:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
        case kIAPPlayStoreLaunchPurchaseFlowException:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
            /***** Lebi 상점 이용 *****/
        case kIAPV4LebiCancel:
            // 유저가 Lebi 잔액 충전을 취소하였습니다. 잔액이 부족하여 구매를 진행 할 수 없음을 안내하세요.
            break;
        case kIAPV4LebiPurchaseNetworkError:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4LebiPurchaseJsonException:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
        case kIAPV4LebiInternalRequestException:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
        case kCommonUnknown:
            // 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요.
            //해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
            //...
    }
}];
Code Message How to solve
(필수 구현) IAPV4RestrictPayments Apple App Store 구매 권한이 없습니다. 기기내 구매 차단 여부를 확인하세요.
(필수 구현) IAPV4NeedRestore 해당 아이템이 restore 상태인 경우restore할 아이템이 존재하는 경우 IAPV4.restore API를 통해 구매복구를 진행하세요.
(필수 구현) IAPV4PurchaseParamJsonException HIVE 서버 통신에 필요한 정보가 누락되었습니다. 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4CancelPayment 유저가 아이템 구매를 취소하였습니다. [Google Market] 유저가 아이템 구매를 취소하였습니다. 구매를 취소하였음을 알려주세요.
(필수 구현) IAPV4AppStoreError 유저가 아이템 구매를 취소하였습니다. [Google Market] 유저가 아이템 구매를 취소하였습니다. 구매를 취소하였음을 알려주세요.
(필수 구현) IAPV4AppStoreError [Apple Market] AppStore Market에 구매 처리 중 문제가 발생하였습니다. 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요. 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4FailPayment [Google Market] Google Market에 구매 처리 중 문제가 발생하였습니다. 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요. 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
(필수 구현) IAPPlayStoreLaunchPurchaseFlowException [Google Market] Google Market에서 전달받은 구매 완료 정보 처리 중 문제가 발생하였습니다. 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요. 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4LebiCancel [Lebi Market] Lebi 잔액 충전을 취소하였습니다. 잔액이 부족하여 구매가 취소됩니다. 유저가 Lebi 잔액 충전을 취소하였습니다. 잔액이 부족하여 구매를 진행 할 수 없음을 안내하세요.
(필수 구현) IAPV4LebiPurchaseNetworkError [Lebi Market] Lebi Market에 구매 처리 중 문제가 발생하였습니다. 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요. 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4LebiPurchaseJsonException [Lebi Market] Lebi Market에서 전달받은 구매 완료 정보 처리 중 문제가 발생하였습니다. 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요. 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4LebiInternalRequestException [Lebi Market] Lebi Market에서 전달받은 구매 완료 정보 처리 중 문제가 발생하였습니다. 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요. 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4LebiInternalRequestException [Lebi Market] Lebi Market에서 전달받은 구매 완료 정보 처리 중 문제가 발생하였습니다. 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요. 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
(필수 구현) CommonUnknown [Lebi Market] Lebi Market에서 전달받은 구매 완료 정보 처리 중 문제가 발생하였습니다. 문제 발생에 대한 안내 후 다시 구매를 시도하도록 안내하세요. 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
IAPV4NotInitialize HIVE SDK 초기화가 되어있지 않습니다. AuthV4.setup API를 호출하여 HIVE SDK 초기화를 수행하세요. API 보기
IAPV4NotInitialize HIVE SDK 초기화가 되어있지 않습니다. AuthV4.setup API를 호출하여 HIVE SDK 초기화를 수행하세요. API 보기
IAPV4NeedMarketConnect 마켓 연동이 되어있지 않습니다. IAPV4.MarketConnect API를 호출하여 IAPV4 Market 연동를 수행하세요.
IAPV4NeedSignIn 로그인이 되어있지 않습니다. AuthV4.helper.signIn API를 호출하여 로그인을 수행하세요. API 보기
IAPV4EmptyParamMarketPID API 호출시 전달한 marketPid값이 유효하지 않습니다. 구매 가능한 marketPid값을 입력해주세요.
IAPV4EmptyProductList HIVE에 등록된 구매 가능한 아이템이 존재하지 않습니다. HIVE에 구매할 아이템 정보를 등록하세요.
IAPV4ProductNotExistInIAPServer 구매하려는 아이템이 HIVE 에 등록된 아이템이 아닙니다. HIVE에 구매할 아이템 정보를 등록하세요.
IAPV4ProductNotExist 구매하려는 아이템이 해당하는 Market에 등록된 아이템이 아닙니다. 해당하는 Market에 아이템 정보를 등록하세요.
IAPV4ProductNotExsitInAppStore 구매하려는 아이템이 AppStore Market 에 등록된 아이템이 아닙니다. AppStore Market에 아이템 정보를 등록하세요.
IAPV4InProgressPurchasing 구매가 이미 진행중 입니다. IAPV4.purchase API를 통해 구매가 이미 진행 중 입니다.
IAPV4InProgressRestoring 구매복구가 이미 진행 중 입니다. IAPV4.restore API를 통해 구매복구가 이미 진행 중 입니다.
IAPV4FailCreateSKPayment 구매 요청 정보 처리 중 에러가 발생하였습니다. 구매 정보 처리 중 에러가 발생하였습니다. 전달받은 메세지와 함께 HIVE에 문의주세요.
IAPV4NeedsHiveSyncing [Lebi Market] HIVE 로그인이 되어있지 않아 Lebi Market 이용이 불가능합니다. AuthV4.helper.connect API를 providerType 을 HIVE로 설정하여 HIVE 연동을 수행하도록 안내하세요. API 보기

hive.IAPV4.restore (onIAPV4Restore listener)

IAPV4.restore ((ResultAPI result, List<IAPV4.IAPV4Receipt> iapV4ReceiptList) => {
    switch(result.code) {
        case ResultAPI.Code.IAPV4RestrictPayments:
        // 기기내 구매 차단 여부를 확인하세요.
        break;
        case ResultAPI.Code.IAPV4FailToRestore:
        // 문제 발생에 대한 안내 후 다시 구매 복구를 시도하도록 안내하세요.
        // 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
        break;
        ...
    }
});
IAPV4::restore([](ResultAPI const & result,std::vector<std::reference_wrapper<IAPV4Receipt>> receiptList) {
    switch(result.code) {
        case ResultAPI::Code::IAPV4RestrictPayments:
            // 기기내 구매 차단 여부를 확인하세요.
            break;
        case ResultAPI::Code::IAPV4FailToRestore:
            // 문제 발생에 대한 안내 후 다시 구매 복구를 시도하도록 안내하세요.
            // 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
            ...
    }
});
IAPV4.restore(new IAPV4.IAPV4RestoreListener() {
    @Override
    public void onIAPV4Restore(ResultAPI result, List<IAPV4.IAPV4Receipt> iapv4ReceiptList) {
        switch(result.code) {
            case IAPV4RestrictPayments:
                // 기기내 구매 차단 여부를 확인하세요.
                break;
            case IAPV4FailToRestore:
                // 문제 발생에 대한 안내 후 다시 구매 복구를 시도하도록 안내하세요.
                // 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
                break;
            ...
        }
    }
});
[HIVEIAPV4 restore:^(HIVEResultAPI *result, NSArray<HIVEIAPV4Receipt *> *receiptList) {
    switch (result.code) {
        case kIAPV4RestrictPayments:
            // 기기내 구매 차단 여부를 확인하세요.
            break;
        case kIAPV4FailToRestore:
            // 문제 발생에 대한 안내 후 다시 구매 복구를 시도하도록 안내하세요.
            // 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
            break;
            //...
    }
}];
Code Message How to solve
(필수 구현) IAPV4RestrictPayments Apple App Store 구매 권한이 없습니다. 기기내 구매 차단 여부를 확인하세요.
(필수 구현) Google : IAPV4FailToRestore [Google Market] Google Market에서 구매 복구 처리 중 문제가 발생하였습니다. 문제 발생에 대한 안내 후 다시 구매 복구를 시도하도록 안내하세요. 해당 문제가 지속되는 경우 전달받은 메세지와 함께 HIVE에 문의주세요.
IAPV4NotInitialize HIVE SDK 초기화가 되어있지 않습니다. AuthV4.setup API를 호출하여 HIVE SDK 초기화를 수행하세요. API 보기
IAPV4NeedMarketConnect 마켓 연동이 되어있지 않습니다. IAPV4.MarketConnect API를 호출하여 IAPV4 Market 연동를 수행하세요.
IAPV4NeedSignIn 로그인이 되어있지 않습니다. AuthV4.helper.signIn API를 호출하여 로그인을 수행하세요. API 보기
IAPV4NotSupportedMarket 현재 기기의 OS에서 지원할 수 없는 Market을 선택하였습니다. Market 선택 팝업에서 지원할 수 없는 Market이 노출되지 않도록 하세요.
IAPV4EmptyProductList HIVE에 등록된 구매 가능한 아이템이 존재하지 않습니다. HIVE에 구매할 아이템 정보를 등록하세요.
IAPV4InProgressPurchasing 구매가 이미 진행중 입니다. IAPV4.purchase API를 통해 구매가 이미 진행 중 입니다.
IAPV4InProgressRestoring 구매복구가 이미 진행 중 입니다. IAPV4.restore API를 통해 구매복구가 이미 진행 중 입니다.
IAPV4InProgressCheckPromote Promote 인앱 구매 정보 호출 기능을 사용중입니다. IAPV4.checkPromotePurchase API를 통해 Promote 구매 정보 요청이 이미 진행 중 입니다.
IAPV4NothingToRestore 구매 복구 처리가 필요한 아이템이 존재하지 않습니다. 구매 복구 처리가 필요한 아이템이 존재하지 않습니다.

hive.IAPV4.transactionFinish (String marketPid, onIAPV4TransacionFinish listener)

IAPV4.transactionFinish ("com.gcp.product1", (ResultAPI result, String finishMarketPid) => {
    switch(result.code) {
        ...
        // 추가로 IAPV4.transactionFinish와 동일한 ResultAPI 코드가 전달됩니다.
    }
});
string marketPid = "com.gcp.product1";
IAPV4::transactionFinish(marketPid,[](ResultAPI const & result,std::string marketPid){
    switch(result.code) {
            ...
            // 추가로 IAPV4.transactionFinish와 동일한 ResultAPI 코드가 전달됩니다.
    }
});
IAPV4.transactionFinish("com.gcp.product1", new IAPV4.IAPV4TransactionFinishListener() {
    @Override
    public void onIAPV4TransacionFinish(ResultAPI result, String marketPid) {
        switch(result.code) {
            ...
            // 추가로 IAPV4.transactionFinish와 동일한 ResultAPI 코드가 전달됩니다.
        }
    }
});
[HIVEIAPV4 transactionFinish:@"com.gcp.product1" handler:^(HIVEResultAPI *result, NSString *marketPid) {
    switch (result.code) {
            //...
            // 추가로 IAPV4.transactionFinish와 동일한 ResultAPI 코드가 전달됩니다.
    }
}];

hive.IAPV4.transactionMultiFinish (List< String > marketPidList, onIAPV4TransacionMultiFinish listener)

List<String> marketPidList = new List<String>();
marketPidList.Add(iapV4Receipt.product.marketPid);
IAPV4.transactionMultiFinish (marketPidList, (List<ResultAPI> resultList, List<String> marketPidList) => {
        foreach(ResultAPI result in resultList) {
        switch(result.code) {
            case ResultAPI.Code.IAPV4RestrictPayments:
            // 기기내 구매 차단 여부를 확인하세요.
            break;
            case ResultAPI.Code.IAPV4PlayStoreFinishFail:
            // 구매 완료 처리할 아이템이 비정상적인 경로로 구매 된 아이템인지 확인하세요.
            // 정상적인 경로로 구매 된 아이템 종료 처리시 지속적으로 해당 에러가 발생하는 경우 HIVE에 문의하세요.
            break;
            ...
        }
    }
});
IAPV4::transactionMultiFinish(multiPid, [](std::vector<ResultAPI> const & resultList,std::vector<std::string> const & marketPidList){
    for(int i=0;i<resultList.size();++i){
        ResultAPI result = resultList[i];
        switch(result.code) {
            case ResultAPI::Code::IAPV4RestrictPayments:
                // 기기내 구매 차단 여부를 확인하세요.
                break;
            case ResultAPI::Code::IAPV4PlayStoreFinishFail:
                // 구매 완료 처리할 아이템이 비정상적인 경로로 구매 된 아이템인지 확인하세요.
                // 정상적인 경로로 구매 된 아이템 종료 처리시 지속적으로 해당 에러가 발생하는 경우 HIVE에 문의하세요.
                break;
                ...
        }
    }
});
ArrayList<String> marketPidList = new ArrayList<String>();
marketPidList.add(iapV4Receipt.product.marketPid);

IAPV4.transactionMultiFinish(marketPidList, new IAPV4.IAPV4TransactionMultiFinishListener() {
    @Override
    public void onIAPV4TransacionMultiFinish(List<ResultAPI> resultList, List<String> marketPidList) {
        for (ResultAPI result : resultList) {
            switch(result.code) {
                case IAPV4RestrictPayments:
                    // 기기내 구매 차단 여부를 확인하세요.
                    break;
                case IAPV4PlayStoreFinishFail:
                    // 구매 완료 처리할 아이템이 비정상적인 경로로 구매 된 아이템인지 확인하세요.
                    // 정상적인 경로로 구매 된 아이템 종료 처리시 지속적으로 해당 에러가 발생하는 경우 HIVE에 문의하세요.
                    break;
                ...
            }
        }
    }
});
NSMutableArray<NSString*> *marketPidList = [NSMutableArray array];
[marketPidList addObject:iapV4Receipt.product.marketPid];

[HIVEIAPV4 transactionMultiFinish:marketPidList handler:^(NSArray<HIVEResultAPI *> *resultList, NSArray<NSString *> *marketPidList) {
    for(HIVEResultAPI *result in resultList) {
        switch (result.code) {
            case kIAPV4RestrictPayments:
                // 기기내 구매 차단 여부를 확인하세요.
                break;
            case kIAPV4PlayStoreFinishFail:
                // 구매 완료 처리할 아이템이 비정상적인 경로로 구매 된 아이템인지 확인하세요.
                // 정상적인 경로로 구매 된 아이템 종료 처리시 지속적으로 해당 에러가 발생하는 경우 HIVE에 문의하세요.
                break;
                //...
        }
    }
}];
Code Message How to solve
(필수 구현) IAPV4RestrictPayments Apple App Store 구매 권한이 없습니다. 기기내 구매 차단 여부를 확인하세요.
(필수 구현) IAPV4PlayStoreFinishFail [Google Market] Google Market에 구매 동기화 중 에러가 발생하였습니다. 구매 완료 처리할 아이템이 비정상적인 경로로 구매 된 아이템인지 확인하세요. 정상적인 경로로 구매 된 아이템 종료 처리시 지속적으로 해당 에러가 발생하는 경우 HIVE에 문의하세요.
IAPV4NotInitialize HIVE SDK 초기화가 되어있지 않습니다. AuthV4.setup API를 호출하여 HIVE SDK 초기화를 수행하세요. API 보기
IAPV4NeedMarketConnect 마켓 연동이 되어있지 않습니다. IAPV4.MarketConnect API를 호출하여 IAPV4 Market 연동를 수행하세요.
IAPV4NeedSignIn 로그인이 되어있지 않습니다. AuthV4.helper.signIn API를 호출하여 로그인을 수행하세요. API 보기
IAPV4NotSupportedMarket 현재 기기의 OS에서 지원할 수 없는 Market을 선택하였습니다. Market 선택 팝업에서 지원할 수 없는 Market이 노출되지 않도록 하세요.
IAPV4FinishMarketPidEmpty API 호출시 전달한 marketPidList값이 유효하지 않습니다. 구매 가능한 marketPid값을 입력해주세요.
IAPV4LebiFinishFail [Lebi Market] Lebi 서버에 해당 아이템 구매 정보가 존재하지 않습니다. 구매 완료 처리할 아이템이 비정상적인 경로로 구매 된 아이템인지 확인하세요. 정상적인 경로로 구매 된 아이템 종료 처리시 지속적으로 해당 에러가 발생하는 경우 HIVE에 문의하세요.

hive.IAPV4.checkPromotePurchase

IAPV4.checkPromotePurchase ((ResultAPI result, String marketPid) => {
    switch(result.code) {
        case ResultAPI.Code.IAPV4RestrictPayments:
        // 기기내 구매 차단 여부를 확인하세요.
        break;
        ...
    }
});
IAPV4::checkPromotePurchase([](ResultAPI const & result,std::string marketPid) {
    switch(result.code) {
        case ResultAPI::Code::IAPV4RestrictPayments:
            // 기기내 구매 차단 여부를 확인하세요.
            break;
            ...
    }
});
IAPV4.checkPromotePurchase(new IAPV4.IAPV4CheckPromotePurchaseListener() {
    @Override
    public void onIAPV4CheckPromotePurchase(ResultAPI result, String marketPid) {
        switch(result.code) {
            case IAPV4RestrictPayments:
                // 기기내 구매 차단 여부를 확인하세요.
                break;
            ...
        }
    }
});
[HIVEIAPV4 checkPromotePurchase:^(HIVEResultAPI *result, NSString *marketPid) {
    switch (result.code) {
        case kIAPV4RestrictPayments:
            // 기기내 구매 차단 여부를 확인하세요.
            break;
            //...
    }
}];
Code Message How to solve
(필수 구현) IAPV4RestrictPayments Apple App Store 구매 권한이 없습니다. 기기내 구매 차단 여부를 확인하세요.
IAPV4NotInitialize HIVE SDK 초기화가 되어있지 않습니다. AuthV4.setup API를 호출하여 HIVE SDK 초기화를 수행하세요. API 보기
IAPV4NeedMarketConnect 마켓 연동이 되어있지 않습니다. IAPV4.MarketConnect API를 호출하여 IAPV4 Market 연동를 수행하세요.
IAPV4NeedSignIn 로그인이 되어있지 않습니다. AuthV4.helper.signIn API를 호출하여 로그인을 수행하세요. API 보기
IAPV4NotSupportedMarket 현재 기기의 OS에서 지원할 수 없는 Market을 선택하였습니다. Market 선택 팝업에서 지원할 수 없는 Market이 노출되지 않도록 하세요.
IAPV4EmptyProductList HIVE에 등록된 구매 가능한 아이템이 존재하지 않습니다. HIVE에 구매할 아이템 정보를 등록하세요.
IAPV4InProgressPurchasing 구매가 이미 진행중 입니다. IAPV4.purchase API를 통해 구매가 이미 진행 중 입니다.
IAPV4InProgressRestoring 구매복구가 이미 진행 중 입니다. IAPV4.restore API를 통해 구매복구가 이미 진행 중 입니다.
IAPV4InProgressCheckPromote Promote 인앱 구매 정보 호출 기능을 사용중입니다. IAPV4.checkPromotePurchase API를 통해 Promote 구매 정보 요청이 이미 진행 중 입니다.
IAPV4PromoteMarketPidEmpty API 호출시 전달한 marketPidList값이 유효하지 않습니다. 구매 가능한 marketPid값을 입력해주세요.

hive.IAPV4.showMarketSelection

IAPV4.showMarketSelection ((ResultAPI result, List<IAPV4.IAPV4Type> iapV4TypeList) => {
    switch(result.code) {
        case ResultAPI.Code.IAPV4CancelMarketSelect:
        // 구매 진행할 Market 선택을 취소하거나, 선택 처리중 에러가 발생하였습니다.
        // Market 선택이 진행되지 않으면 구매가 진행 될 수 없으므로 해당 API를 재시도하세요.
        // 해당 에러가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        ...
    }
});
IAPV4::showMarketSelection([](ResultAPI const & result,std::vector<IAPV4Type> const & marketIDs) {
    switch(result.code) {
        case ResultAPI::Code::IAPV4CancelMarketSelect:
            // 구매 진행할 Market 선택을 취소하거나, 선택 처리중 에러가 발생하였습니다.
            // Market 선택이 진행되지 않으면 구매가 진행 될 수 없으므로 해당 API를 재시도하세요.
            // 해당 에러가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
            ...
    }
});
IAPV4.showMarketSelection(new IAPV4.IAPV4MarketInfoListener() {
    @Override
    public void onIAPV4MarketInfo(ResultAPI result, List<IAPV4Type> iapV4TypeList) {
        switch(result.code) {
            case IAPV4CancelMarketSelect:
                // 구매 진행할 Market 선택을 취소하거나, 선택 처리중 에러가 발생하였습니다.
                // Market 선택이 진행되지 않으면 구매가 진행 될 수 없으므로 해당 API를 재시도하세요.
                // 해당 에러가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            ...
        }
    }
});
//지원하지 않음
Code Message How to solve
(필수 구현) IAPV4CancelMarketSelect 구매 진행할 Market 선택에 에러가 발생하였습니다. 구매 진행할 Market 선택을 취소하거나, 선택 처리중 에러가 발생하였습니다. Market 선택이 진행되지 않으면 구매가 진행 될 수 없으므로 해당 API를 재시도하세요. 해당 에러가 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
IAPV4NeedMarketConnect 마켓 초기화가 되어있지 않습니다. IAPV4.MarketConnect API를 호출하여 IAPV4 Market 초기화를 수행하세요.
IAPV4NeedSignIn 로그인이 되어있지 않습니다. AuthV4.helper.signIn API를 호출하여 로그인을 수행하세요. API 보기

hive.IAPV4.getBalanceInfo (Android only)

IAPV4.getBalanceInfo ((ResultAPI result, int balance) => {
    switch(result.code) {
        /***** Lebi 마켓 이용 *****/
        case ResultAPI.Code.IAPV4LebiInternalRequestException:
        // 일시적으로 해당 현상이 발생 할 수 있습니다.
        // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.CommonUnknown:
        // 일시적으로 해당 현상이 발생 할 수 있습니다.
        // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4LebiBalanceParamJsonException:
        // 일시적으로 해당 현상이 발생 할 수 있습니다.
        // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4LebiBalanceNetworkError:
        // 일시적으로 해당 현상이 발생 할 수 있습니다.
        // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        case ResultAPI.Code.IAPV4LebiPostException:
        // 일시적으로 해당 현상이 발생 할 수 있습니다.
        // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
        break;
        ...
    }
});
IAPV4::getBalanceInfo([](ResultAPI const & result, int balance) {
    switch(result.code) {
            /***** Lebi 마켓 이용 *****/
        case ResultAPI::Code::IAPV4LebiInternalRequestException:
            // 일시적으로 해당 현상이 발생 할 수 있습니다.
            // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::CommonUnknown:
            // 일시적으로 해당 현상이 발생 할 수 있습니다.
            // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4LebiBalanceParamJsonException:
            // 일시적으로 해당 현상이 발생 할 수 있습니다.
            // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4LebiBalanceNetworkError:
            // 일시적으로 해당 현상이 발생 할 수 있습니다.
            // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
        case ResultAPI::Code::IAPV4LebiPostException:
            // 일시적으로 해당 현상이 발생 할 수 있습니다.
            // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
            break;
            ...
    }
});
IAPV4.getBalanceInfo(new IAPV4.IAPV4BalanceInfoListener() {
    @Override
    public void onIAPV4Balance(ResultAPI result, int balance) {
        switch(result.code) {
            /***** Lebi 마켓 이용 *****/
            case IAPV4LebiInternalRequestException:
                // 일시적으로 해당 현상이 발생 할 수 있습니다.
                // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case CommonUnknown:
                // 일시적으로 해당 현상이 발생 할 수 있습니다.
                // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4LebiBalanceParamJsonException:
                // 일시적으로 해당 현상이 발생 할 수 있습니다.
                // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4LebiBalanceNetworkError:
                // 일시적으로 해당 현상이 발생 할 수 있습니다.
                // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            case IAPV4LebiPostException:
                // 일시적으로 해당 현상이 발생 할 수 있습니다.
                // 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
                break;
            ...
        }
    }
});
//지원하지 않음
Code Message How to solve
(필수 구현) IAPV4LebiInternalRequestException [Lebi Market] Lebi Market 서버 통신 응답 데이터가 비정상입니다. 일시적으로 해당 현상이 발생 할 수 있습니다. 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) CommonUnknown [Lebi Market] Lebi Market 서버 통신 응답 데이터 처리 중 알 수 없는 에러가 발생하였습니다. 일시적으로 해당 현상이 발생 할 수 있습니다. 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4LebiBalanceParamJsonException [Lebi Market] Lebi Market 서버 통신 응답 데이터 포맷이 처리 할 수 없는 형태입니다. 일시적으로 해당 현상이 발생 할 수 있습니다. 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4LebiBalanceNetworkError [Lebi Market] Lebi Market 서버 통신 응답값이 정상이 아닙니다. 일시적으로 해당 현상이 발생 할 수 있습니다. 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
(필수 구현) IAPV4LebiPostException [Lebi Market] Lebi Market 서버 통신 요청 데이터가 비정상입니다. 일시적으로 해당 현상이 발생 할 수 있습니다. 해당 현상이 지속되는 경우 전달받은 메시지와 함께 HIVE에 문의주세요.
IAPV4NotInitialize HIVE SDK 초기화가 되어있지 않습니다. AuthV4.setup API를 호출하여 HIVE SDK 초기화를 수행하세요. API 보기
IAPV4NeedMarketConnect 마켓 연동이 되어있지 않습니다. IAPV4.MarketConnect API를 호출하여 IAPV4 Market 연동를 수행하세요.
IAPV4NeedSignIn 로그인이 되어있지 않습니다. AuthV4.helper.signIn API를 호출하여 로그인을 수행하세요. API 보기
IAPV4MarketNotSupportedAPI [Google Market] 현재 선택된 Market에서 해당 API를 지원하지 않습니다. 지원 가능한 Market에서 해당 API를 호출하세요.
IAPV4MarketNotSupportedAPI [OneStore Market] 현재 선택된 Market에서 해당 API를 지원하지 않습니다. 지원 가능한 Market에서 해당 API를 호출하세요.

hive.IAPV4.showCharge (Android Only)

IAPV4.showCharge ((ResultAPI result, int balance) => {
    switch(result.code) {
        ...
        // 추가로 IAPV4.getBalanceInfo와 동일한 ResultAPI 코드가 전달됩니다.
    }
});
IAPV4::showCharge([](ResultAPI const & result, int balance) {
    switch(result.code) {
            ...
            // 추가로 IAPV4.getBalanceInfo와 동일한 ResultAPI 코드가 전달됩니다.
    }
});
IAPV4.showCharge(new IAPV4.IAPV4BalanceInfoListener() {
    @Override
    public void onIAPV4Balance(ResultAPI result, int balance) {
        switch(result.code) {
            ...
            // 추가로 IAPV4.getBalanceInfo와 동일한 ResultAPI 코드가 전달됩니다.
        }
    }
});
//지원하지 않음
Code Message How to solve
IAPV4NotInitialize HIVE SDK 초기화가 되어있지 않습니다. AuthV4.setup API를 호출하여 HIVE SDK 초기화를 수행하세요. API 보기
IAPV4NeedMarketConnect 마켓 연동이 되어있지 않습니다. IAPV4.MarketConnect API를 호출하여 IAPV4 Market 연동를 수행하세요.
IAPV4NeedSignIn 로그인이 되어있지 않습니다. AuthV4.helper.signIn API를 호출하여 로그인을 수행하세요. API 보기
IAPV4MarketNotSupportedAPI [Google Market] 현재 선택된 Market에서 해당 API를 지원하지 않습니다. 지원 가능한 Market에서 해당 API를 호출하세요.
IAPV4MarketNotSupportedAPI [OneStore Market] 현재 선택된 Market에서 해당 API를 지원하지 않습니다. 지원 가능한 Market에서 해당 API를 호출하세요.