개요
디지털 배포 솔루션는 게임, 가상 아이템, 인게임 재화, 번들 등의 배포를 위해 자체 플랫폼 또는 생태계를 보유한 여러 배포 파트너와 게임 개발자를 연결해주는 솔루션입니다.
배포 파트너 — 게임과 인게임 아이템을 배포할 수 있는 디지털 플랫폼 또는 생태계. 자체적인 엑솔라 배포 파트너의 예시:
- 다수의 서비스를 포함한 슈퍼 앱
- 뱅킹 애플리케이션
- 전기 통신 및 인터넷 서비스 제공자
- 현금 키오스크
- 캐시백 및 보상 프로그램 제공자
- 전자 상거래 시장
게임 개발자를 위한 혜택:
- 빠르게 성장하는 배포 파트너와 직접 연결되어 게임 잠재 고객 확보 가능.
- 게임을 고유한 사용자 베이스를 지닌 새로운 배포 채널에 추가하여 수입을 증가.
- 광고와 배너를 통해 서드 파티 플랫폼에서의 유기적인 검색 가능성 향상.
배포 파트너를 위한 혜택:
- 게임 콘텐츠 접속을 확장하여 사용자의 충성도 증가. 사용자는 앱 또는 서비스에서 게임 키, 가상 아이템, 인게임 재화 및 번들을 직접 구매할 수 있습니다.
- 게이밍 산업의 증가하는 인기 덕분에 현재 사용자 유지 및 새로운 사용자 유치 가능.
- 게이밍 산업의 대규모 게시자로부터 게임 키, 가상 아이템, 인게임 재화 판매 수수료로 인한 수입 증가.
작동 방식
게임 키 구매 시 사용자 흐름
가상 아이템 및 인게임 재화 구매 시 사용자 흐름
상호작용 절차
- 게임 개발자는 관리자 페이지에서 프로젝트를 생성하고 게임 키, 가상 아이템, 인게임 재화 및 번들을 업로드합니다.
- 배포 파트너가 사용자 데이터를 요청하는 경우:
- 게임 판매 시 키와 영수증을 전송할 사용자의 이메일 주소
- 인게임 아이템 판매 시 아이템을 추가할 사용자의 인게임 ID와 영수증을 전송할 사용자의 이메일 주소
- 사용자는 배포 파트너 인터페이스에 다음 데이터를 입력합니다:
- 게임 구매 시 키와 영수증을 받을 이메일 주소
- 인게임 아이템 구매 시 인벤토리에 아이템을 추가하기 위한 인게임 ID와 영수증을 받을 이메일 주소
- 배포 파트너는 사용자 토큰 생성 메서드를 호출하고 이메일 주소(필수)와 사용자 ID(가상 아이템, 인게임 재화, 번들 판매 시 필수)를 매개 변수로 전달합니다.
- 엑솔라는 게임 개발자가 웹훅을 설정한 경우 사용자가 게임 내에 존재하는지 확인합니다. 가상 아이템 및 인게임 재화를 판매하기 위해서는 웹훅을 설정해야 하지만 게임 키의 경우 선택 사항입니다.
- 엑솔라는 사용자 데이터로 토큰을 생성하고 배포 파트너에게 토큰을 전송합니다.
- 배포 파트너가 게임 카탈로그 또는 인게임 아이템 카탈로그를 요청합니다.
- 엑솔라는 이에 대한 응답으로 요청한 카탈로그를 반환합니다.
- 배포 파트너는 카탈로그를 수신하여 사용자에게 표시해줍니다.
- 사용자가 상품을 구매하면 배포 파트너가 장바구니를 생성합니다.
- 배포 파트너가 사용자의 장바구니를 전송하여 주문을 생성합니다.
- 엑솔라는 주문 ID와 할인율 및 세금을 포함한 장바구니 가격을 반환합니다.
- 배포 파트너는 사용자에게 장바구니의 총 비용을 표시해줍니다.
- 사용자가 결제를 계속 진행하면 배포 파트너가 사용자의 자금을 인출하고 결제 상태 페이지를 표시합니다.
- 배포 파트너는 엑솔라에 주문이 결제되었음을 알리고 결제 정보를 전송합니다.
- 엑솔라는 게임 개발자에게 구매 사실을 알립니다.
- 게임을 구매한 사용자는 구매 세부 정보가 포함된 이메일을 받고 게임 키를 활성화할 수 있습니다. 사용자가 가상 아이템이나 인게임 재화를 구매한 경우 인벤토리에 추가됩니다.
게임 개발자 측 통합
디지털 배포 솔루션 연결 방법
배포 채널을 통해 게임 프로모션을 진행하는 방법:
- 관리자 페이지에서 스토어를 연결한 후 다음을 다운로드합니다.
- 웹훅을 설정합니다.
- 프로젝트에서 디지털 배포 솔루션를 활성화하려면 고객 성공 매니저에게 문의하거나 csm@xsolla.com으로 이메일을 보내어 문의해 주세요.
웹훅 설정 방법
웹훅 설정이 필요한 경우:
- 사용자 유효성 검사 및 게임 사용자 ID별로 카테고리를 맞춤 설정
- 사용자 유효성 검사 및 구매한 인게임 아이템을 인벤토리에 추가
- 엑솔라 측 트랜잭션 ID를 게임 개발자 시스템의 트랜잭션 ID와 연동
- 주문서에 추가 사용자 매개 변수 전달
- 구매 알림 수신
웹훅 설정 방법:
- 관리자 페이지에서 프로젝트를 엽니다.
- 사이드 메뉴에서 프로젝트 설정을 클릭하고 웹훅으로 이동합니다.
- 웹훅 토글을 켜짐으로 설정합니다.
- 웹훅 URL을 지정합니다.
- 프로젝트 웹훅에 서명하기 위한 비밀 키가 기본적으로 생성됩니다. 새 비밀 키를 생성하려면 새로 고침 아이콘을 클릭합니다.
- 설정 저장을 클릭합니다.
사용자 유효성 검사
엑솔라가 사용자가 게임에 존재하는지 확인하기 위해 사용자 확인 웹훅을 전송합니다. 사용자 확인을 통해 수행 가능한 작업:
- 응답으로 사용자 특성을 전달하는 경우 사용자 맞춤형 카탈로그 표시
- 구매 후 사용자의 인벤토리에 아이템 추가
웹훅 수신 확인을 위해 서버에서 반환해야 하는 항목:
- 메시지 본문이 없는 HTTP 코드 204. 사용자가 게임에 존재하는 경우
- 문제를 설명하는 HTTP 코드 400. 특정 사용자를 찾을 수 없거나 잘못된 서명이 전달된 경우
전체 웹훅 목록과 메커니즘(예시 포함)에 대한 자세한 설명은 API 참조에서 확인할 수 있습니다 .
응답으로, custom_parameters
개체에서 추가 거래 매개변수를 전달할 수 있습니다.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"user_attributes": {
"type": "object",
"required": false,
"minProperties": 1,
"maxProperties": 100,
"patternProperties": {
"^[\\w-_.]{1,255}$": {
"oneOf": [
{
"type": "integer"
},
{
"type": "string",
"minLength": 1,
"maxLength": 255
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 255
},
"minItems": 1,
"maxItems": 1000
}
]
}
},
"additionalProperties": false
}
}
}
응답 예시:
- http
{
"user_attributes": {
"age": 18,
"level": 1,
"game": "WoW",
"is_baned": false,
"registration_date": "2022-01-01"
}
}
트랜잭션 ID 연결 중
외부 ID(시스템의 트랜잭션 ID)를 사용 중이고 엑솔라 측의 트랜잭션 ID와 연결하거나 사용자 유효성 검사 시 추가 매개변수를 전달하려면 다음 웹훅 처리를 구현해야 합니다.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"notification_type": {
"type": "string"
},
"order_id": {
"type": "integer"
},
"project_id": {
"type": "integer"
},
"user": {
"type": "object",
"properties": {
"external_id": {
"type": "string"
},
"email": {
"type": "string"
}
}
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"item_id": {
"type": "integer"
},
"sku": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"type": {
"type": "string"
}
}
}
}
}
}
요청 예시:
- http
{
"notification_type": "create_external_transaction",
"order_id": 1,
"project_id": 51336,
"user": {
"external_id": "user_id",
"email": "public_email@test.com"
},
"items": [
{
"item_id": 101,
"sku": "mithril_dagger",
"quantity": 2,
"type": "virtual_good"
}
]
}
응답으로, custom_parameters
개체에서 추가 거래 매개변수를 전달할 수 있습니다.
예상 응답:
{
"id": "validation_transaction_info_response.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "DDH Project Transaction Info Response",
"type": "object",
"additionalProperties": true,
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"custom_parameters": {
"type": "object",
"additionalProperties": true,
"minProperties": 1,
"maxProperties": 200
}
}
}
응답 예시:
- http
{
"id":"123"
}
거래 ID 연결용 웹훅 매개변수 목록:
매개 변수 | 유형 | 설명 |
---|---|---|
notification_type | string | 알림 유형입니다. |
order_id | integer | 주문 ID. |
project_id | integer | 게임 키 또는 게임 키가 포함된 번들, 인게임 아이템, 인게임 아이템이 포함된 번들이 로드되는 프로젝트의 ID. |
user.external_id | string | 게임 개발자측 사용자 ID. |
items | string | 사용자가 구매한 아이템 목록. |
items.sku | array | 아이템 고유 ID. game_key 유형 아이템은 sku_drm 형식 값을 사용합니다. |
items.type | array | 아이템 유형. 다음 값들을 가질 수 있습니다: virtual_good , virtual_currency , game_key , physical_good . |
items.quantity | integer | 아이템 수량. |
구매 알림
사용자가 구매 비용을 지불할 경우 받게 되는 항목:
- 결제 정보가 담긴 결제 웹훅.
- 인벤토리에 추가되는 아이템에 대한 정보가 담긴 장바구니 콘텐츠 웹훅.
배포 파트너 측의 통합
디지털 배포 솔루션 통합에 관심이 있는 경우 psbusiness@xsolla.com으로 통합 관리자에게 이메일을 보내거나 다음과 같이 디지털 배포 솔루션 API와 함께 작동하는 필수 매개변수를 가져옵니다.
앱이나 서비스에 게임을 배포하려면 다음과 같은 게임 구매 로직을 구현하세요:
- 다음을 입력하기 위한 양식 표시:
- 게임 판매 시 사용자의 이메일 주소
- 인게임 아이템 판매 시 사용자의 이메일 주소 및 인게임 ID
- 사용자 ID는 가상 아이템, 인게임 재화, 아이템과 재화가 포함된 번들을 판매하는 프로젝트에 사용됩니다. 이 경우 사용자가 게임 등록 시 받은 아이디를 입력할 수 있도록 힌트를 표시하는 것도 필요합니다.
- 예시:

- 수신한 사용자 데이터 전달:
- 사용자 이메일 주소. 항상 필요.
- 사용자 인게임 ID. 인게임 아이템 판매 시 필요.
- 이 데이터는 게임에서 사용자의 존재를 확인하고 인증 토큰을 받는 데 사용됩니다.
- 사용자 토큰 생성 메서드를 사용합니다. 요청 시 다음 매개 변수 전달:
매개 변수 | 유형 | 설명 |
---|---|---|
project_id | integer | 게임 키 또는 게임 키가 포함된 번들, 인게임 아이템, 인게임 아이템이 포함된 번들이 로드되는 프로젝트의 ID. |
user.email | string | 사용자 이메일 주소. |
user.id | string or null | 게임 내 고유한 사용자 ID. |
- 사용자 데이터가 포함된 권한 부여 토큰이 응답으로 반환됩니다.
- 가져오기:
- 게임 카탈로그. 게임 목록 가져오기 메소드 사용.
- 가상 아이템 카탈로그. 가상 아이템 가져오기 목록 메소드 사용.
- 인게임 재화 카탈로그. 인게임 재화 목록 가져오기 메소드 사용.
- 게임 혹은 인게임 아이템이 있는 번들의 카탈로그. 번들 목록 가져오기 메소드 사용.
- 요청에서, 2단계에서 받은 토큰과 다음 매개변수를 전달합니다.
매개 변수 | 유형 | 설명 |
---|---|---|
project_id | integer | 게임 키 또는 게임 키가 포함된 번들, 인게임 아이템, 인게임 아이템이 포함된 번들이 로드되는 프로젝트의 ID. |
- 스토어프론트에 게임 및 인게임 아이템 카탈로그 표시. 인터페이스에서 다음을 선택하는 기능을 구현합니다.
- 게임 키의 수 및 게임 퍼블리싱 플랫폼
- 가상 아이템의 수
- 고정 금액의 재화가 들어있는 인게임 재화 또는 인게임 재화 패키지의 수
- 번들 수
- 장바구니를 사용하는 경우 사용자의 장바구니에 담는 아이템의 수량을 지정할 수 있습니다. 장바구니를 사용하지 않는 경우 카탈로그에서 아이템 수량을 선택할 수 있습니다.
- 장바구니에 담는 아이템 수량을 지정하는 예시:

- 카탈로그에 담는 아이템 수량을 지정하는 예시:

- 장바구니를 사용하지 않는 경우 6단계로 이동하여 특정 아이템으로 주문 생성하기 메소드를 사용합니다.
- 장바구니를 채우려면 장바구니에 아이템 채우기 메소드를 사용합니다.
- 사용자는 주문 내에서 아이템을 추가 및 제거할 수 있고, 수량을 변경할 수 있습니다. 귀하는 다음을 장바구니에 업데이트해야 합니다:
- 장바구니에 아이템 채우기 장바구니의 콘텐츠를 사용자가 변경할 때 메소드
- 장바구니를 업데이트하거나 아이템을 삭제할 때 메소드:
- 이 경우, 현재 사용자의 장바구니 가져오기를 하기 전에 장바구니를 업데이트합니다.
- 장바구니 채우기 및 업데이트 메소드에 대한 요청에서 다음 매개변수를 전달합니다.
매개 변수 | 유형 | 설명 |
---|---|---|
project_id | integer | 게임 키 또는 게임 키가 포함된 번들, 인게임 아이템, 인게임 아이템이 포함된 번들이 로드되는 프로젝트의 ID. |
items.sku | string | 아이템 고유 ID. game_key 유형 아이템은 sku_drm 형식 값을 사용합니다. |
items.quantity | integer | 아이템 수량. |
- 장바구니에 아이템 채우기 또는 현재 사용자의 장바구니 가져오기를 요청한 뒤 응답이 선택된 제품의 업데이트된 정보를 반환합니다 —할인 전후 가격, 보너스 제품.
- 장바구니에서 주문을 생성하고 아이템 값을 지불하기 위해, 현재 장바구니의 모든 아이템으로 주문 생성하기 메소드를 사용합니다. 다음 매개 변수를 요청 시 전달합니다:
매개 변수 | 유형 | 설명 |
---|---|---|
project_id | integer | 게임 키 또는 게임 키가 포함된 번들, 인게임 아이템, 인게임 아이템이 포함된 번들이 로드되는 프로젝트의 ID. |
| number | 엑솔라 측 배포 파트너 ID. |
| string | 주문 통화. 인게임 재화는 SKU를 사용하며 실질 통화는 세 자리 ISO 4217코드를 사용합니다. |
- 응답으로 주문 ID와 세금이 포함된 장바구니 가격을 반환합니다.
- 사용자에게 총 장바구니 가격을 게시합니다.
- 사용자의 자금을 귀하의 플랫폼에서 인출합니다. 지불 상태를 사용자에게 게시합니다.
- 지불 안내를 보내고 다음 매개 변수를 전달합니다:
매개 변수 | 유형 | 설명 |
---|---|---|
project_id | integer | 게임 키 또는 게임 키가 포함된 번들, 인게임 아이템, 인게임 아이템이 포함된 번들이 로드되는 프로젝트의 ID. |
payment.amount | integer | 결제 금액. |
order_id | integer | 주문 ID. |
ps_transaction_id | string | 배포 파트너측 거래 ID. |
이 기사가 도움이 되었나요?
이 페이지 평가
답하기 원하지 않습니다
의견을 보내 주셔서 감사드립니다!
오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.