Unreal Engine 빌링
Unreal Engine에서 Hybe Game Platform Service(이하, Platform) 결제 서비스 연동을 위한 SDK 사용법에 대해서 설명합니다.
Last updated
Unreal Engine에서 Hybe Game Platform Service(이하, Platform) 결제 서비스 연동을 위한 SDK 사용법에 대해서 설명합니다.
Last updated
빌링 플랫폼 SDK를 사용하기 위한 요구 사항은 다음과 같습니다.
OS : Windows
Enreal Engine : 5.2.1
Visual Studio 2019 이상
언리얼 엔진에서 Platform SDK를 사용하기 위해서는 배포된 플러그인을 프로젝트의 Plugins 복사합니다.
를 참고하세요.
플랫폼에 제공하는 별도의 설정은 필요하지 않습니다. 스팀앱에 로그인 상태이어야 합니다.
스팀에서 게임을 실행하거나, 언리얼 에디터에서 실행하는 경우 스팀 오버레이 결제 팝업을 통해서 결제를 진행합니다.
스팀 결제는 게임 클라이언트에서 스팀 서버에 결제를 요청하지 않고 게임 서버를 통해 서버 to 서버로 구매를 요청해야 합니다.
HybeBillingAgent 상속 클래스 작성
HybeBillingPlatform에 1)에 추가한 인스턴스 등록
빌링 플랫폼 연결
게임 서버에 구매할 상품 조회
상점 UI 구성
게임 서버에 상품 구매 요청
상품 예약 후 결제 팝업
상품 구매 이벤트 핸들러
OnContinueSteamPurchase 작성
게임 서버에 상품 구매 완료 요청
HybeBillingPlatform
SDK
빌링 플랫폼 결제 기능을 제공하는 메인 클래스
HybeBillingAgent
SDK
결제 과정에서 발생하는 이벤트를 정의한 인터페이스
HybeProductManager
SDK
상품 상세정보 관리 기능 제공
ProductDetail
SDK
상품 상세 정보 (상품명, 가격, 통화 등)
StarterBillingAgent
개발사
게임 클라이언트에서 결제 이벤트 수신을 위해 구현해야 하는 클래스.
빌링 플랫폼 결제 기능을 제공하는 메인 클래스.
빌링 플랫폼 연결, 상품 조회 및 구매 기능을 제공한다.
빌링 플랫폼 초기화 . 플랫폼 결제 환경에 연결합니다.
접속한 Player ID 정보를 알 수 있는 시점에 호출해야 합니다. 주로 게임 서버 접속 후 호출합니다
결과는 Billing Agent의 OnPrepared() 이벤트로 전달됩니다.
파라미터
imid Player ID (IMID)
빌링 플랫폼에 판매할 상품 정보를 요청합니다.
수신된 상품 정보는 HybeProductManager를 통해 조회할 수 있습니다.
파라미터
products 조회할 상품 ID 배열
callback 결과를 수신할 콜백
빌링 플랫폼에 스팀 결제 프로세스 모니터링을 요청합니다.
파라미터
boid 상품 예약 ID
빌링 플랫폼 연동 상태를 조회합니다.
파라미터
없음
리턴
PreInit() 호출 후 빌링 플랫폼을 사용할 수 있는 경우 true, 빌링 플랫폼 연동이 실패한 경우 false
상품이 구매 가능한지 조회합니다.
파라미터
없음
리턴
상품 결제가 가능하면 true, 그렇지 않으면 false
연동된 결제 스토어 종류를 조회합니다.
파라미터
없음
리턴
연동된 결제 스토어 종류 StoreType
연동된 결제 스토어 종류 StoreType 문자열
연동된 결제 수단 종류를 조회합니다.
파라미터
없음
리턴
연동된 결제 수단 종류 PaymentType
연동된 결제 수단 종류 문자열
실행 중인 OS 이름을 조회합니다.
파라미터
없음
리턴
실행 중인 OS 명
HybeBillingAgent는 결제 프로세스에서 발생하는 이벤트를 정의한 인터페이스입니다. 게임 클라이언트는 HybeBillingAgent 를 구현한 클래스를 제공 해야 한다.
결제 환경이 준비된 후 호출되는 이벤트.
파라미터
result 결과 코드(BillingResultCode)
스팀 결제 창이 닫힌 후 호출되는 이벤트.
이벤트를 수신한 게임 클라이언트는 게임 서버에게 구매 완료를 요청해야 합니다.
결제 상태(완료/취소)는 클라이언트로 전달되지 않기 때문에 서버에 완료 처리를 요청합니다.
파라미터
boid 예약 ID
결제 완료 시 호출되는 이벤트 핸들러
게임 클라이언트에서 결제를 진행하는 스토어인 경우 호출됩니다.
ex) PlayStore, AppStore에서 결제 완료 후
파라미터
boid 상품 예약 ID, 상품 구매 전 게임 서버에 상품 예약 요청으로 수신 한 예약 ID
resultJson 구매 영수증 JSON
결제 취소 시 호출되는 이벤트 핸들러
게임 클라이언트에서 결제를 진행 도중 사용자가 취소를 하는 경우에 호출됩니다.
스팀 결제 창에서 취소를 선택하는 경우에는 호출되지 않습니다.
파라미터
없음
클라이언트에서 결제 진행 과정에서 오류가 발생한 경우에 호출됩니다.
파라미터
code 에러 코드
message 에러 메시지 (개발 전용)
소비 처리되지 않은 구매 건 발생 시 호출되는 이벤트 핸들러
파라미터
code 상품 예약 시 리턴 받은 boid 값
resultJson 구매 영수증 JSON
판매할 상품의 상세 정보(sku)를 관리하는 기능을 제공합니다.
파라미터
productId 상품 ID
리턴
상품 상세 정보
상품 상세 정보
productId
스토어에 등록된 아이템 ID(문자열)
item.bag.blue
productIdNo
등록 아이템 번호
스팀 전용
inappType
상품 종류
inapp
name
스토어에 등록한 상품명
가방(블루)
description
스토어에 등록한 상품 설명
파란색 가방
priceAmountMicros
micro 상품 가격
1200000000
priceCurrencyCode
통화
KRW
formattedPrice
스토어에 출력될 가격 표기 문구
₩1,200
skuDetailsToken
안드로이드 sku details (서버 로그용)
HybeBillingAgent 인터페이스를 상속받은 Billing Agent 클래스를 구현합니다.
BillingAgent 를 빌링 플랫폼에 등록합니다.
빌링 플랫폼 연동(HybeBillingPlatform::PreInit) 전에 등록되어야 합니다.
게임 서버 연동 후에 빌링 플랫폼에 연동합니다.
게임서버로 부터 수신한 플레이어 정보(imid)를 빌링 플랫폼에 전달합니다.
스토어에 등록된 상품의 상품명, 가격 정보 등 세부 정보를 조회합니다.
조회된 상품은 ProductManager에 캐싱됩니다. QueryProductDetails() 으로 빌링 플랫폼에 요청하기 전에 ProductManager에 조회한 후 상품 정보가 없는 경우 사용하면 서버 요청을 줄 일 수 있습니다.
상품을 구매하기 전에 게임 서버를 통해 구매할 상품 예약을 요청합니다. 게임 서버는 플랫폼빌링 서버에 구매할 상품을 예약한 후 예약ID (boid)를 클라이언트에 전달합니다.
게임 클라이언트는 수신한 boid를 사용해서 이후 진행되는 결제 프로세스에 사용합니다.
예약한 상품의 구매를 게임 서버에게 요청합니다. 스팀 결제는 서버 요청으로 시작됩니다.
게임 서버에서 제공하는 결제 요청 기능을 사용하세요.
게임 서버에 상품 구매를 요청하면 게임 클라이언트에 스팀 결제 오버레이 창이 팝업 됩니다.
스팀 결제 오버레이 창에서 결제를 취소하거나 완료한 경우 게임 클라이언트가 전달됩니다.
7)에서 게임 서버에 상품 구매 요청이 성공한 경우에 이벤트를 수신하도록 호출합니다.
게임 서버에 결제 요청을 전달 후에 스팀이 띄워주는 결제 창에서 결제 완료 상태를 수신하기 위해서 호출합니다. 결과는 BillingAgent의 ()으로 이벤트가 전달됩니다.
스팀의 경우 결제 창이 닫히면 가 호출 됩니다.
을 사용하여 스토어에 상품을 조회하면 ProductManager에 조회한 상품 정보가 등록됩니다.
스팀 결제 창이 닫힌 후 BillginAgent로 이벤트가 전달됩니다.
스팀 결제 창이 닫힌 후 호출되는 이벤트는 결제 정보를 가지고 있지 않습니다. 결제를 완료 또는 취소 여부를 클라이언트에서는 알 수 없기 때문에 게임 서버에 구매 완료를 요청해야 합니다.