콘텐츠로 이동

지급 대상 정보 조회 API

지급 대상 정보 조회 API는 웹 상점에 접속한 사용자의 앱 서버, 채널, 캐릭터 정보를 불러오기 위한 API입니다. 하이브 서버에서 앱으로 지급 대상 정보 조회 API를 요청하면, 앱에서 하이브 서버로 응답 값을 반환합니다.

개요

웹 상점을 이용할 때, 웹 상점에서 구매하기 UI를 구현하려면 아래와 같이 접속한 사용자의 앱 서버, 채널, 캐릭터 정보가 필요합니다.


이 API 사용을 포함한 전체 과정을 요약하면 아래와 같습니다.

  1. 앱: API 엔드포인트를 구성해 앱 서버 URL을 준비
  2. 앱: 하이브 콘솔 하이브 콘솔 > 커뮤니티 & 웹 상점 > 웹 상점 > 웹 상점 설정 > 지급 대상 정보에서 하이브 서버에 전달할 지급 대상 정보 API URL을 등록
  3. 하이브 서버: 앱에서 등록한 지급 대상 정보 API URL로 POST API 요청, 응답 값으로 데이터 수령
  4. 하이브 서버: 수령한 앱 서버, 채널, 캐릭터 정보를 프론트엔드로 전송
  5. 웹 상점 프론트엔드: 웹 상점 구매하기 UI에서 드롭다운 메뉴를 노출

API 엔드포인트 구성(앱 서버 URL)

하이브 콘솔 > 커뮤니티 & 웹 상점 > 웹 상점 > 웹 상점 설정 > 지급 대상 정보에 API 엔드포인트를 등록합니다.


API 엔드포인트는 요청을 받을 때 요청 매개변수에 있는 사용자 정보(cs_code)를 받고, 응답으로 앱 서버, 채널, 캐릭터 정보를 전달해야 합니다. API 엔드포인트는 하이브 콘솔(상용, 샌드박스)에 대응해 아래 예시와 같이 구성합니다.

콘솔 환경 API 엔드포인트
상용 https://{URL}/webstore-profile
샌드박스 https://{URL}/webstore-profile

API 요청(하이브 서버 → 앱 서버) 구성

하이브 서버에서 앱 서버로 보내는 POST 요청 정보입니다. 앱 서버 리스트, 서버에 포함된 채널, 그리고 캐릭터 목록을 응답으로 받습니다.

API 정보 설명
Method POST
Response Format JSON
Content-type application/json


다음은 Request Body 정보입니다.

명칭 타입 필수 여부 (필수: O, 옵션: X) 설명
cs_code Integer O 사용자 고유 식별자(Player ID)


다음은 Request Body 예시입니다.

{
  "cs_code": 100001234 
}

API 응답(앱 서버 → 하이브 서버) 구성

응답 성공 시, 앱 서버에서 하이브 서버로 전달해야 하는 응답 값 정보입니다. 상품별로 캐릭터 레벨에 따른 구매 제한 기능을 위해, 하이브 콘솔 인앱 정보에서 캐릭터를 선택하지 않았더라도 캐릭터 레벨 정보를 전달해야 합니다. 캐릭터를 선택하지 않은 경우, 배열(data.channels.characters)에 캐릭터가 여러 개 있다면 배열 첫 번째 원소에 해당하는 캐릭터의 레벨을 사용합니다.

명칭 타입 필수 여부(필수: O, 옵션: X) 설명
result_code Integer O 결과 코드
result_message String O 결과 메시지
cs_code Integer O 사용자 고유 식별자(Player ID)
data Array O 서버 리스트(사용자 정보 없을 경우 응답 값: "[ ]")
data.server_id String O 서버 고유 식별자
data.server_name String O 서버의 이름
data.channels Array O 서버에 포함된 채널 리스트
data.channels.channel_id String O 채널 고유 식별자(채널 미사용 시 응답 값: "0")
data.channels.channel_name String O 채널의 이름(채널 미사용 시 응답 값: "-")
data.channels.characters Array O 채널에 포함된 캐릭터 리스트
data.channels.characters.character_id String O 캐릭터 고유 식별자(캐릭터 미사용 시 응답 값: "-")
data.channels.characters.character_name String O 캐릭터의 이름(캐릭터 미사용 시 응답 값: "-")
data.channels.characters.character_level String O 캐릭터의 레벨(캐릭터 레벨이 없는 경우 응답 값: "0")


다음은 응답 성공 시 응답 값 예시입니다.

// 1. 하이브 콘솔에서 서버, 채널, 캐릭터 선택 시
{
  "result_code": 200,
  "result_message": "success",
  "cs_code": 100001234,
  "data": [
    {
      "server_id": "1",
      "server_name": "Server 1",
      "channels": [{
        "channel_id": "1",
        "channel_name": "Channel 1",
        "characters": [{
            "character_id": "A",
            "character_name": "Character A",
            "character_level": "99"
          },
          {
            "character_id": "B",
            "character_name": "Character B",
            "character_level": "10"
          }
        ]
      }]
    }
  ]
}


// 2. 하이브 콘솔에서 서버, 캐릭터 선택 시
{
  "result_code": 200,
  "result_message": "success",
  "cs_code": 100001234,
  "data": [
    {
      "server_id": "2",
      "server_name": "Server 2",
      "channels": [{
        "channel_id": "0",
        "channel_name": "-",
        "characters": [{
            "character_id": "C",
            "character_name": "Character C",
            "character_level": "11"
          },
          {
            "character_id": "D",
            "character_name": "Character E",
            "character_level": "12"
          }
        ]
      }]
    }
  ]
}


 // 3. 하이브 콘솔에서 서버, 채널 선택 시
{
  "result_code": 200,
  "result_message": "success",
  "cs_code": 100001234,
  "data": [
    {
      "server_id": "3",
      "server_name": "Server 3",
      "channels": [{
        "channel_id": "2",
        "channel_name": "Channel 2",
        "characters": [{
          "character_id": "-",
          "character_name": "-",
          "character_level": "99"
        }]
      }]
    }
  ]
}


// 4. 하이브 콘솔에서 서버만 선택 시
{
  "result_code": 200,
  "result_message": "success",
  "cs_code": 100001234,
  "data": [
    {
      "server_id": "4",
      "server_name": "Server 4",
      "channels": [{
        "channel_id": "0",
        "channel_name": "-",
        "characters": [{
          "character_id": "-",
          "character_name": "-",
          "character_level": "99"
        }]
      }]
    }
  ]
}


// 5. 하이브 콘솔에서 서버, 채널, 캐릭터 선택 시 - 채널이 여러 개인 경우
{
    "result_code": 200,
    "result_message": "success",
    "cs_code": 100001234,
    "data": [
        {
            "server_id": "1",
            "server_name": "Server 1",
            "channels": [
                {
                    "channel_id": "1",
                    "channel_name": "Channel 1",
                    "characters": [
                        {
                            "character_id": "A",
                            "character_name": "Character A",
                            "character_level": "99"
                        }, {
                            "character_id": "B",
                            "character_name": "Character B",
                            "character_level": "10"
                        }
                    ]
                }, {
                    "channel_id": "2",
                    "channel_name": "Channel 2",
                    "characters": [
                        {
                            "character_id": "A2",
                            "character_name": "Character A2",
                            "character_level": "99"
                        }, {
                            "character_id": "B2",
                            "character_name": "Character B2",
                            "character_level": "10"
                        }
                    ]
                }
            ]
        }
    ]
}


다음은 응답 코드(result_code) 정의입니다.

코드 설명
200 성공
204 사용자에 대한 정보 없음
500 서버 에러