Result API code – IAPV4
Bookmark
| marketConnect | getProductInfo | purchase | restore | transactionFinish | 
|---|---|---|---|---|
| transactionMultiFinish | checkPromotePurchase | showMarketSelection | getBalanceInfo | showCharge | 
IAPV4.marketConnect¶
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 부터 추가되었습니다. | 
IAPV4.getProductInfo¶
Similar type : IAPV4.getSubscriptionProductInfo
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 부터 추가되었습니다. | 
IAPV4.purchase¶
Similar type : hive.IAPV4.purchaseSubscription
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 보기 | 
IAPV4.restore¶
Similar type : IAPV4.restoreSubscription
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 | 구매 복구 처리가 필요한 아이템이 존재하지 않습니다. | 구매 복구 처리가 필요한 아이템이 존재하지 않습니다. | 
IAPV4.transactionFinish¶
Similar type : IAPV4.transactionMultiFinish
IAPV4.transactionMultiFinish¶
Similar type : IAPV4.transactionFinish
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에 문의하세요. | 
IAPV4.checkPromotePurchase¶
| 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값을 입력해주세요. | 
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 보기 | 
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를 호출하세요. | 
IAPV4.showCharge¶
(Android Only)
| 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를 호출하세요. |