Hive SDK v1.19.1부터 IAP v1과 IAP v2의 지원을 종료합니다. Hive SDK v1.19.1 이상의 환경에서는 Hive IAP v4를 적용하시기 바랍니다.

목적

본 가이드는 개별 게임과 Hive 아이템 간의 원활한 연동을 위하여 작성되었다.
향후 게임 내의 재화/아이템 관리 부분은 모두 Hive 아이템에 적용될 것이기에 게임 서버 개발자와 시스템 개발자 간의 공통된 API를 마련하여 빠른 개발을 도모하려는 목적이다.

HTTP 통신

기본 사항
  • HTTP 프로토콜을 이용한 JSON 데이터 통신
  • Hive 아이템에서 게임 서버로 JSON데이터를 POST 로 전송하여 요청
  • 게임 서버에서 Hive 아이템으로 JSON Data 결과 반환
  • 결과 값은 결과 코드, 실패시 실패 목록과 사유 포함
  • 서비스 오픈 이전 테스트 서버로 연동 테스트, 서비스 오픈 시 실 서버 전송
  • 서비스 중인 경우에도 테스트 서버 연동 필수
  • 접근 허용 포트는 80 또는 20080 Port
요청 명세(Hive 아이템 -> 게임서버)
  • 처리 프로세스
    Hive 아이템에서 요청 권한을 가진 관리자가 재화 요청(지급/회수)을 하면 처리 권한을 가진 관리자가 완료 또는 반려로 요청을 처리할 수 있으며 관리자가 완료 처리 시에 게임 서버로 재화를 요청하는 방식
  • HTTP Header: 해시 (데이터 유효성 검증위해 사용가능)
    http header 중에 HTTP_APIHASH 키값으로 데이터 검증을 위한 해시값이 전달되며, 해당 값은 “!@#COM2US!@#” 과 JSON Data를 조합하여 생성한 sha1의 해시값(사용 예시 참조)
필드명 설명
request_id string 각 요청을 구별하기 위한 식별자 (쿠폰은 중복 가능)
id_category string *아이디 구분 (‘vid’ / ‘hubuid’ / ‘hubid’ 등)
id_list array 아이디 목록
type string 요청항목 (‘1234’ / ‘asset_gold’ 등 통신용 항목코드)
amount string 요청 수량 (양의 정수로 된 문자열)
category1 string *지급수단 (‘p’ / ‘d’ 하단 설명 참조)
category2 string *지급구분 (‘pa’ / ‘pi’ 하단 설명 참조)
reason string *요청사유 (하단 설명 참조)
req_comment string 요청 코멘트 (UTF8 인코딩된 최대 500 자의 문자열)
req_admin string 요청자 (UTF8 인코딩된 최대 60 자의 문자열)
user_msg string 사용자에게 보여질 메세지

(* 표식이 앞에 붙어있는 항목은 하단 설명 참조)

* id_category 필드 코드 설명
“vid” : Hive 통합모듈 연동 게임의 경우
“hubuid” : 허브 연동 게임의 경우
“hubid” : 허브 연동 게임의 경우 (과거 재화 시스템 API 와의 호환성을 위해 유지)
“appcenterid” : 카카오톡 연동 게임의 경우
“momoid” : 중국 플랫폼 모모 연동 게임의 경우

* category1 필드 코드 설명
“p” : 지급의 경우 사용하며 우편함 (Postbox)
“d” : 회수의 경우 사용하며 데이터처리 (Dataprocessing)

* category2 필드 코드 설명
“pa” : 재화지급 (Present Asset)
“pi” : 아이템지급 (Present Item)
“ra” : 재화회수 (Retrieve Asset)
“ri” : 아이템회수 (Retrieve Item)

* reason 필드 코드 설명 (추후 추가/변경될 가능성 존재)
“pe” : “과금오류” (Payment Error)
“rge” : “보상(게임오류)” (Reward Game Error)
“rcd” : “보상(고객불만)” (Reward Consumer Dissatisfaction)
“rce” : “보상(쿠폰오류)” (Reward Coupon Error)
“ro” : “보상(해외)” (Reward Overseas)
“ae” : “재화변경지급” (Asset Exchange)
“e” : “이벤트” (Event)
“ea” : “이벤트(자동)” (Event Automatic)
“mc” : “대량쿠폰” (Massive Coupon)
“uc” : “고유쿠폰” (Unique Coupon)
“b” : “인게임 빌링” (Billing – Hive IAP 2.0)
“lb” : “러비웹샵 빌링” (Lebi Billing)
“co” : “오퍼월” (Cpi Offerwall)
“ini” : “CPI 뉴스배너 자사” (cpI Newsbanner Inside)
“ino” : “CPI 뉴스배너 타사” (cpI Newsbanner Outside)
“ioi” : “CPI 오퍼월 자사” (cpI Offerwal Inside)
“ioo” : “CPI 오퍼월 타사” (cpI Offerwal Outside)
“ani” : “CPA 뉴스배너 자사” (cpA Newsbanner Inside)
“ano” : “CPA 뉴스배너 타사” (cpA Newsbanner Outside)
“aoi” : “CPA 오퍼월 자사” (cpA Offerwal Inside)
“aoo” : “CPA 오퍼월 타사” (cpA Offerwal Outside)
“tcs” : “테스트(CS)” (Test CS)
“tgm” : “테스트(GM)” (Test GM)
“tpm” : “테스트(PM)” (Test PM)
“tqa” : “테스트(QA)” (Test QA)
“td” : “테스트(개발)” (Test Developer)
“tg” : “테스트(외부지급)” (Test Guest)
“tmb” : “테스트(홍보/사업)” (Test Market , Business)
“to” : “테스트(해외)” (Test Overseas)
“re” : “회수(기타)” (Retrieve Etc)
“rr” : “회수(환불)” (Retrieve Refund)
“mr” : “대량요청” (Massive Request)
“etc” : “기타” (Etc)

요청 예시(Hive 아이템 개발자용, PHP)

 

응답(게임서버 -> Hive 아이템)
  • Hive 아이템으로부터 재화 처리 요청을 받은 게임 서버에서는 해당 데이터를 처리 후에 결과를 응답
  • 값의 경우 string 은 문자열, array 는 배열, 숫자도 문자열로 표기
  • 실패 이유의 순서와 실패 아이디 목록은 동일한 순서로 구성
필드 설명
result_code ‘100’ 전부 성공
‘200’ 일부 실패
‘300’ 전부 실패 (아이디 한 개 일 경우의 실패)
failure_id_list array 지급에 실패한 아이디 목록
failure_reason_list array 지급에 실패한 이유 목록

 

응답 예시(서버 개발자용, PHP)

 

소켓통신

기본 사항
  • TCP/IP 프로토콜을 이용한 패킷 데이터 통신으로 포트는 20080
  • 기본적으로 데이터는 HTTP 통신 때와 동일한 JSON 형식
  • Byte Order 는 Network Byte Order (Big Endian)
  • 서비스 오픈 이전 테스트 서버로 연동 테스트, 서비스 오픈 시 실 서버 전송
  • 서비스 중인 경우에도 테스트 서버 연동 필수
요청 명세(Hive 아이템 -> 게임서버)
  • 요청 패킷 명세
사이즈 4 byte 4 byte 가변 4 byte 가변
내용 전체 길이 Header 길이 Header Body 길이 Body
  • 첫 4byte 의 경우 해당 4byte 를 포함한 패킷 전체의 길이를 명시
    (header 가 46byte, body가 100byte라면 4 + 4 + 46 + 4 + 100 = 158byte)
  • 그 다음 4bype의 경우 바로 뒤에 이어질 Header의 길이를 표기
  • Header 는 HTTP 통신에서의 해쉬값과 동일한 JSON 문자열
    예.{“apihash”:”912ec803b2ce49e4a541068d495ab570″}
  • 그 다음 4byte 의 경우 바로 뒤에 이어질 Body 의 길이를 명시
  • Body 의 경우에는 HTTP 통신에서의 요청값과 동일한 JSON 문자열
    예. {request_id”:”12321″,”id_category”… …”user_msg”: “선물이도착했습니다!”}
  • JSON 문자열의 경우 기본적으로 UTF8 을 기준으로 인코딩
응답 명세(게임서버 -> Hive 아이템)
  • 응답 패킷 명세
사이즈 4 byte 가변
내용 전체 길이 Body
  • 첫 4byte 의 경우 해당 4byte 를 포함한 패킷 전체의 길이를 명시
  • Body의 경우 HTTP 통신에서의 응답값과 동일한 JSON 문자열

 

서버 개발자 준비 사항

Hive 아이템과 연동을 위해 아래 사항을 작성하여 담당자에게 전달
[요청 서식 다운로드]

  • Hive 아이템에서 호출된 URL (테스트 & 상용)
  • 해당 게임의 아이디 구분 (vid or hubuid or etc…)
  • 연동할 재화/아이템의 한글, 영문 이름전송코드, 지급, 회수 가능 여부 명시
  • 유저에게 메세지 전송이 가능한 경우, 메세지 길이(UTF8 인코딩기준)와 기본메세지
  • 명칭, 영문명, type은 각각 게임 내에서 유일한 값이어야함 (중복 불가능)
  • 서버가 여러개일 경우 *서버 지역 코드 사용 (additionalinfo 의 server 값)
    *서버 지역 코드의 경우 “Hive 로케일 식별자 정책” 문서 참조 [다운로드]