IM Assemble 기술 가이드
  • 플랫폼 연동 Checklist
    • 멤버십 계정 구조
    • 회원가입/로그인
    • 서비스 이용 동의/철회/철회 복구
    • 탈퇴/탈퇴 복구
    • Guest 계정
    • 블록(제재) 연동
    • 게임 내 계정 설정 화면
    • 빌링 정책 연동
  • SDK 클라이언트 연동 가이드
    • Unreal Engine 연동 가이드
      • Unreal Engine 멤버십
      • Unreal Engine 빌링
    • Unity 연동 가이드
      • Unity 멤버십
      • Unity 빌링
    • 환경 설정
  • API 연동 가이드
    • 멤버십 API 정의서
    • 빌링 API 정의서
      • 용어 정리
      • 빌링 API 사용 시작하기
        • 상품ID 생성 규칙 가이드
        • 빌링API 코드 정의
        • 빌링 API 에러 코드 목록
      • 빌링 구매 리스트 조회
      • 빌링 시스템에 등록된 판매 가능 상품 리스트 조회(STEAM, PG)
      • Google 모바일 소모성 상품 구매
        • Google Play 구매 예약(소모성)
        • Google Play 유저의 구매 완료 요청에 대한 검증
        • Google Play 검증 성공한 구매에 대해서 소모(Consume) 및 완료처리 요청
        • Google Play 미 완료 및 소모(Consume) 처리 누락된 리스트 조회
        • 게임쪽에서 결제를 직접 구현한 경우
          • Google Play 유저의 구매 완료 데이터를 빌링에 저장 요청 - 게임에서 결제 기능을 직접 구현한 경우
      • Google PC 소모성 상품 구매
        • Google Play PC 구매 예약(소모성)
        • Google Play PC 유저의 구매 완료 요청에 대한 검증
        • Google Play PC 검증 성공한 구매에 대해서 소모(Consume) 및 완료처리 요청
        • Google Play PC 미 완료 및 소모(Consume) 처리 누락된 리스트 조회
      • Apple 소모성 상품 구매
        • Apple 구매 예약(소모성)
        • Apple 유저의 구매 완료 요청에 대한 검증
        • Apple 검증 성공한 구매에 대해서 완료처리 요청
        • Apple 미 완료 상태인 재 처리 리스트 조회
        • 게임쪽에서 결제를 직접 구현한 경우
          • Apple 유저의 구매 완료 데이터를 빌링에 저장 요청 - 게임에서 결제 기능을 직접 구현한 경우
      • Steam 소액 결제(게임 내 구매)
        • Steam 소액 결제 - 빌링 시스템에 구매 예약
        • Steam 소액결제 - InitTxn
        • Steam 소액결제 - FinalizeTxn
        • Steam 소액결제 - QueryTxn
        • Steam 소액결제 - 빌링 완료 처리
        • Steam 소액결제 - 미 완료 상태인 재 처리 리스트 조회
        • SDK API - 상품 상세 조회
        • 참고- 스팀 소액 결제를 사용할 때 사기 방지 조치에 대한 가이드
      • PG(Payment Gateway)를 이용한 인게임 결제
        • 빌링에 구매 예약을 진행하며, 유저가 결제를 진행할 수 있는 PG 결제 URL을 요청
      • Galaxy Store IAP 구매
        • Galaxy Store - 게임쪽에서 결제를 직접 구현한 경우
          • Galaxy Store 유저의 구매 완료 데이터를 빌링에 저장 요청 - 게임에서 결제 기능을 직접 구현한 경우
      • 빌링 API 참고 자료
        • Google Play 소모성 상품에 대해서, 가장 최근 예약된 구매건인데 소모처리 안되었다면 조회(모바일/PC 공용)
        • Google Play Developer API의 purchases.products.get(모바일/PC 공용) - GM툴 전용
    • 인벤토리 API 정의서
      • 인벤토리 아이템 조회
      • 인벤토리 아이템 예약하기
      • 인벤토리 아이템 사용 확인
      • 인벤토리 아이템 사용 취소
      • 인벤토리 아이템 사용 취소 및 영구 제외
      • 운영 목적의 예약상태 아이템 조회
      • 인벤토리 시스템에서 게임 서버에 알림 전송(webhook)
    • 게임 개발팀 제작 요청사항
      • 유저 제재 정보 갱신 API 제작 가이드
      • 유저 탈퇴 갱신 API 제작 가이드
      • 특정 유저 킥 API 제작 가이드
      • 빌링 상품 지급 API 제작 가이드
      • 빌링 상품 회수 API 제작 가이드
      • 무료 아이템 지급 API 제작 가이드 (Deprecated)
    • 부가기능 API 정의서
      • 클라이언트 접속 국가 정보 조회
      • 유저의 vipscore 조회
  • 기능별 가이드
    • 유저 제재
    • 유저 행동 로그 수집
      • 서버사이드
      • 클라이언트 SDK
      • RESTful API
    • 재화(코인)에 대한 기술 가이드
    • In Game Web 딥링크 구현 규약
    • In Game Web URI 규약
    • Firebase 테스트 가이드
  • 업무 협업
    • 빌드 업로드
      • 게임 런처용 PC 클라이언트 빌드 업로드
    • 보관
      • Unity 멤버십
      • Unreal Engine 빌링
      • Unreal Engine 멤버십
  • 참고자료
    • 게임 빌드 버전 관리 정책 제안
Powered by GitBook
On this page
  • 개요
  • 기본 정보
  • 공통 데이터 포맷
  • 지원하는 알림 종류
  • Request
  • HTTP Request end point에 대한 가이드
  • 알림 종류별 상세 정보(payload 필드) 파라미터
  • Response
  • Response property
  1. API 연동 가이드
  2. 인벤토리 API 정의서

인벤토리 시스템에서 게임 서버에 알림 전송(webhook)

개요

인벤토리 시스템에서 특정 서버에 알림을 전송하는 기능에 대한 가이드로 사전에 협의된 URL을 호출합니다.

  • 개발사에서는 API를 수신하여 비즈니스 로직에 활용하시면 됩니다.

    • 필수 연동 사항은 아니므로 지원하는 알림 종류를 확인 후 필요 시 연동하시면 됩니다.

    • 연동을 희망하시는 경우 상세 가이드를 참고하여 API 개발 후 URL과 함께 기술 PM 등에게 요청하시면 됩니다.

  • 사용 예) 유저가 유효한 쿠폰 사용 → 인벤토리 시스템은 쿠폰 사용 신규 아이템 수신 → 등록된 URL로 알림 전송 → 인벤토리 조회 API 호출하여 지급 아이템 확인 후 유저에게 뱃지 등으로 표현 가능

기본 정보

  • 알림 시스템의 기본 데이터 포맷은 모든 알림에 공통으로 사용되며, 상세 필드(payload)에 알림의 세부 정보가 포함되는 형태입니다.

    • 즉, 하나의 API로 여러 알림을 통합해서 받으실 수 있습니다. (물론, 알림 종류별로 API를 다르게 구성해도 됩니다.)

  • 인증방식은 기본 사설 도메인으로 연동하여 보안처리되지만, 필요 시 인증 헤더를 정의해서 제공해주셔도 됩니다.

  • Content-Type은 application/json 으로 요청됩니다.

공통 데이터 포맷

  • 모든 알림은 아래의 형식에 맞춰 요청합니다.

key
data type
required
description
example

notificationUuid

String

Y

알림마다 생성한 고유 아이디

21f4465a-12f6-45c0-b647-85ea942d8006

notificationType

String(50)

Y

알림 구분 코드

USER_COUPON_REDEEM_SUCCESS

payload

JsonObject

Y

알림 구분 코드에 해당하는 상세 정보

지원하는 알림 종류 별 payload example 참고

지원하는 알림 종류

notificationType
description
payload example

USER_COUPON_REDEEM_SUCCESS

쿠폰 시스템으로부터 쿠폰 아이템이 추가된 경우 알림 타입

  • 유저가 유효한 쿠폰 사용 → 인벤토리 시스템은 쿠폰 사용 신규 아이템 수신 → 등록된 URL로 알림 전송 → 인벤토리 조회 API 호출하여 지급 아이템 확인 후 유저에게 뱃지 등으로 표현 가능

{ "rewardId": "a3546e4a-a4ef-4745-a994-c07cb2753aec", "userType": "GAME_CHARACTER_ID", "userValue": "98HUE3C2JVE4XGK6Q3SN" }

Request

HTTP Request end point에 대한 가이드

  • /api/inventory/notification/ac6fmc4a 형태의 API URL을 정의

    • 특정 고정된 랜덤 스트링은 혹시 모르는 보안 사고를 막기 위해서 임의로 정해서 사용 추천

    • 해당 url 포맷은 예제이고 자유롭게 정의하셔도 좋습니다.

POST https://각 환경별 게임서버 도메인/api/inventory/notification/{특정한 고정된 랜덤 스트링}

알림 종류별 상세 정보(payload 필드) 파라미터

유저가 쿠폰 사용을 성공할 경우 알림

  • 해당 알림의 notificationType은 USER_COUPON_REDEEM_SUCCESS입니다.

HTTP Request Parameter

key(1 depth)
key(2 depth)
type
required
description
example

payload

JsonObject

Y

알림의 상세정보

rewardId

String(36)

Y

보상 아이템 고유 아이디

a3546e4a-a4ef-4745-a994-c07cb2753aec

userType

String(20)

Y

userValue에 해당하는 ID 종류

  • IMID: HYBE IM의 id로 플랫폼 로그인 후 얻게되는 id, 정책상 기본적으로 인게임에서 유저가 보게되는 id value의 종류

  • GAME_UID: 게임쪽에서 자체 정의한 유저ID

  • GAME_CHARACTER_ID: 게임쪽에서 자체 정의한 케릭터ID

기술PM 등과 사전에 협의된 값

IMID

userValue

String(50)

Y

보상 아이템을 지급받은 userType에 해당하는 아이디

98HUE3C2JVE4XGK6Q3SN

요청 샘플 JSON (공통 데이터 포맷 포함)

{
  "notificationUuid": "21f4465a-12f6-45c0-b647-85ea942d8006",
  "notificationType": "USER_COUPON_REDEEM_SUCCESS",
  "payload": {
    "rewardId": "a3546e4a-a4ef-4745-a994-c07cb2753aec",
    "userType": "IMID",
    "userValue": "98HUE3C2JVE4XGK6Q3SN"
  }
}

Response

응답은 JSON형태로 전달됩니다.

Response property

Success Sample

  • 수신 성공일 때는 resultCode에 SUCCESS로 입력 후 200 응답해주세요.

application/json;charset=UTF-8
{
    "resultCode": "SUCCESS",
    "resultMessage": "request success"
}

Error Sample

  • 수신 후 처리 실패인 경우 HTTP 상태 코드는 200이지만 resultCode에 정의된 에러코드와 함께 참고할 수 있는 메시지를 resultMessage로 응답해주시면 됩니다.

  • 게임쪽에서는 HTTP 상태 코드 관리에 어려운 경우가 많으셔서 상태 코드는 200으로 처리해주시면 됩니다.

{
    "resultCode": "INVALID_PARAMETER",
    "resultMessage": "not allow notificationType."
}

Error인 경우의 에러 코드 정의

  • 아래의 에러 코드는 필수로 생각되어 미리 정의한 에러 코드입니다. 상황에 맞게 응답 해주시면 됩니다.

  • 추가가 필요하면 코드 생성 후 공유주시면 추가 가능합니다.

에러 코드
비고

INVALID_PARAMETER

잘못된 파라미터로 알림 시스템에서의 요청 파라미터가 잘못된 경우

INTERNAL_SERVER_ERROR

게임서버 내부 정의되지 않은 오류(ex. 예외 발생 오류)

NOT_ALLOW_AUTH

API 사용 권한이 없는 경우

  • 인증 정보가 잘못된 등 API 사용할 수 없는 요청인 경우

Previous운영 목적의 예약상태 아이템 조회Next게임 개발팀 제작 요청사항

Last updated 1 day ago