게임에 스토어를 통합

게시자 계정에서 상품(가상 아이템, 인게임 재화, 번들, 키)을 생성하고 구성한 후 게임에 인게임 스토어를 추가하기:

  1. 아이템 카탈로그 표시를 구현합니다.
  2. 아이템 판매 로직을 구현합니다.

아이템 카탈로그 표시

알림
엑솔라 API를 호출하기 위해 게임 엔진 및 플랫폼에 이미 만들어진 SDK 메소드를 사용할 수 있습니다.

인게임 스토어 및 구매 버튼 API 호출을 통해 아이템 카탈로그 표시 구현:

작업API
스토어에 추가된 가상 아이템의 전체 목록 표시Get virtual items list
클라이언트 측에서 판매 가능한 가상 아이템 그룹 목록 표시Get item groups list
클라이언트 측 스토어에서 판매 가능한 인게임 재화 목록 가져오기Get virtual currency list
클라이언트 측 스토어에 추가된 인게임 재화 패키지의 전체 목록 표시Get virtual currency package list
스토어에 추가된 인게임 재화 번들의 전체 목록 표시Get list of bundles

아이템 판매

다음과 같은 방법으로 아이템을 판매할 수 있음:

  1. 하나의 아이템 빠른 구매. 이 경우, 수량에 관계 없이 하나의 SKU를 판매할 수 있습니다. 예: 100개의 동일한 물약.
  2. 장바구니 구매. 이 경우, 플레이어는 장바구니를 미리 채운 다음 아이템을 추가하거나 제거하거나 수량을 변경할 수 있습니다.

빠른 구매

  1. Create order with specified item API를 호출합니다. 결제 UI를 열기 위한 토큰이 응답으로 전달됩니다.
  2. 수신한 결제 토큰을 사용하여 결제 UI를 엽니다.

알림
할인 정보(개인 설정 또는 구매 관련)는 결재 UI에서만 사용자에게 제공됩니다. 프로모션 코드 사용은 제공되지 않습니다.
알림
엑솔라 API를 호출하기 위해 게임 엔진 및 플랫폼에 이미 만들어진 SDK 메소드를 사용할 수 있습니다.

장바구니 구매

로직 구현:

  1. 장바구니 설정 및 토큰 받기:
  2. 결제 UI를 엽니다.

클라이언트에서 장바구니 및 구매 설정

아이템을 추가하고 제거하는 논리를 직접 구현합니다. 또한, 장바구니 설정을 위해 API를 호출하기 전에 구매에 적용할 프로모션에 대한 정보가 없다는 점을 고려해야 합니다. 이는 추가된 보너스 아이템의 총 비용 및 세부 정보를 알 수 없음을 의미합니다.

  1. 플레이어가 장바구니를 채운 후 아이템 API로 Fill cart with items를 호출합니다. 선택한 아이템에 대한 현재 정보(할인 전후 가격, 보너스 아이템)가 응답으로 전달됩니다.
  2. Create order with all items from current cart API를 호출합니다. 주문 ID와 결제 토큰이 응답으로 전달됩니다. 생성된 주문이 새 주문 상태를 수신합니다.
  3. 결제 UI를 엽니다.

알림
엑솔라 API를 호출하기 위해 게임 엔진 및 플랫폼에 이미 만들어진 SDK 메소드를 사용할 수 있습니다.

서버에서 장바구니 및 구매 설정

이 변형은 장바구니에 대한 각 변경에 API 호출이 수반되어야 하기 때문에 장바구니 설정에 시간이 더 오래 걸릴 수 있습니다.

다음 단계 완료 필요.

  1. 장바구니 변경:

알림
장바구니의 현재 상태를 가져오려면 Get current user’s cart API를 호출하세요.

  1. Create order with all items from the current cart API를 호출합니다. 주문 ID 및 결제 토큰이 응답으로 전달됩니다. 생성된 주문은 주문 상태를 수신합니다.
  2. 결제 UI를 엽니다.

결제 인터페이스 열기

아이템 지불을 위해 결제 UI를 엽니다. 결제 UI를 열기 위한 토큰이 Create order with all items from current cart API에 대한 응답으로 전달됩니다.

다음 방법 중 하나로 결제 UI 열기를 구현합니다.

  • 새 창에서: 새 브라우저 창에서 결제 UI를 열려면 링크 https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN를 사용합니다. 여기서 ACCESS_TOKEN는 주문이 생성되었을 때 수신한 토큰입니다.
  • 위젯을 통해: 엑솔라 결제 스테이션 위젯 스크립트를 사용합니다(README 파일에 지침이 포함되어 있음).

결제 처리 테스트

샌드박스 모드에서 결제 흐름을 테스트할 수 있습니다. 테스트 은행 카드와 모든 계좌를 사용할 수 있습니다.

알림

실제 첫 지불 이후, 엄격한 샌드박스 지불 정책이 적용됩니다. 샌드박스 모드에서의 지불은 게시자 계정 > 회사 설정 > 사용자에서 지정된 사용자에 한해서만 가능합니다.

다이렉트 링크를 통해 실제 통화로 인게임 재화와 아이템을 구매하는 기능은 엑솔라와 라이선스 계약을 체결한 후에만 가능합니다. 이렇게 하려면 게시자 계정에서 계약 및 세금 > 계약 섹션으로 이동하여 계약 양식을 작성한 후 확인을 기다립니다. 계약을 검토하는 데에는 영업일 기준 최대 3일이 소요될 수 있습니다.

샌드박스 모드를 활성화/비활성화하려면 빠른 구매장바구니 구매 요청에서 sandbox 매개변수의 값을 변경해야 합니다. 샌드박스 모드는 기본값으로 꺼져 있습니다.

사용자 주문 상태 가져오기

사용자 주문 상태를 가져오는 방법:

  1. 웹훅을 통해 서버 측에서.
  2. WebSocket API 또는 IGS&BB API를 통해 클라이언트 측에서.

웹훅을 통해 서버 측에서 사용자 주문 상태 가져오기

서버에서 웹훅을 구성한 후 이를 사용하여 주문 세부 정보 및 상태를 가져올 수 있습니다.

WebSocket API 또는 IGS&BB API를 통해 클라이언트 측에서 사용자 주문 상태 가져오기

서버가 없거나 클라이언트 측에서 구매 처리 로직을 구현하는 경우 사용할 수 있는 방법:

  1. WebSocket API.
  2. Short-polling.

WebSocket API

이 메소드는 웹 소켓을 사용하여 주문 자체에 대한 세부 정보를 수신하지 않고 주문 상태를 가져오는 것과 관련됩니다. 이 메소드는 엑솔라 클라이언트와 서버 간에 하나의 연결만 설정되어 클라이언트나 서버에 추가 로드가 없기 때문에 선호됩니다.

다음 단계를 완료해야 합니다.

  1. WebSocket 서버와 클라이언트가 주문 상태가 있는 메시지를 식별하도록 하려면 Channel_id: order_id=$orderId&project_id=$projectId와 같이 채널 식별자를 생성합니다(매개변수의 순서가 중요함).
  2. 채널을 구독하려면 WebSocket 프로토콜을 통해 URL wss://store-ws.xsolla.com/sub/order/status?order_id=$orderId&project_id=$projectId과 연결합니다. 메시지 본문에 주문 ID와 주문 상태가 포함됩니다.

Copy
Full screen
Small screen

{
"order_id": int,
"status": string
}

다음 주문 상태를 사용할 수 있습니다.

  • New — 주문이 생성되었지만 지불되지 않음
  • Paid — 주문 지불 완료
  • Done — 주문 전달이 완료됨(모든 영수증 전송 완료, 엑솔라 및 외부 플랫폼 등에서 전달됨)
  • Canceled — 주문이 취소되었으며 사용자에게 환불이 완료됨

웹 소켓을 통한 응답에 필요한 시간은 5분입니다. 이후에 또는 웹 소켓에 문제가 있는 경우 쇼트 폴링을 사용하는 것이 좋습니다.

쇼트 폴링

상태로 전환한 후 주문 아이템에 대한 자세한 정보를 가져오려면 주문 가져오기 API를 호출하세요.

알림
정기 주문 상태 폴(주문 상태 및 주문 정보를 수신하는 간단한 HTTP 요청)을 사용합니다. 요청 사이에 권장되는 지연 시간은 3초입니다.
진행률
의견을 보내 주셔서 감사드립니다!
마지막 업데이트: 2023년 3월 20일

오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.

문제 보고
콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
후속 조치를 위해 이메일을 제공해 주세요
의견을 보내 주셔서 감사드립니다!