아이템 구매 설정하기
프로젝트에 가장 적합한 방법을 선택하여 엑솔라 데이터에 액세스합니다.
애플리케이션의 클라이언트 측에서 주문 생성
엑솔라 측에서 사용자 및 아이템 데이터로 주문을 생성하려면 지정된 아이템으로 주문 생성 API 호출을 사용합니다. 이 방법을 사용하면 결제 토큰이 반환됩니다. 이 과정에서 결제 UI를 열어 결제를 진행해야 합니다. 샌드박스 모드를 사용하려면 토큰을 요청하기 위한 본문에 “sandbox”: true
매개 변수를 전달해야 합니다.
결제 UI 열기
새 창에서 결제 UI를 열려면 https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN
URL을 사용합니다. 여기서 TOKEN
는 수령한 토큰입니다.
다른 옵션을 사용하여 결제 UI를 열 수도 있습니다.
- 스테이션 임베드 사용. 제한 사항: 인게임 브라우저(WebView)에서 여는 경우 문제가 발생할 수 있습니다.
- iFrame 사용. 제한 사항: 인게임 브라우저(WebView)와 애플리케이션의 모바일 버전에서 여는 경우 문제가 발생할 수 있습니다.
- html
<script>
var options = {
access_token: 'ACCESS_TOKEN', //TODO use access token, received on previous step
sandbox: true //TODO please do not forget to remove this setting when going live
};
var s = document.createElement('script');
s.type = "text/javascript";
s.async = true;
s.src = "https://static.xsolla.com/embed/paystation/1.0.7/widget.min.js";
s.addEventListener('load', function (e) {
XPayStationWidget.init(options);
}, false);
var head = document.getElementsByTagName('head')[0];
head.appendChild(s);
</script>
<button data-xpaystation-widget-open>Buy Credits</button>
페이 스테이션 임베드는 postMessage
를 통해 결제 UI에서 이벤트를 받도록 해줍니다. 이러한 이벤트를 분석 시스템으로 보낼 수 있습니다. 분석 시스템에 이벤트 처리 기능을 설정하려면, 고객 성공 매니저에게 연락하거나 csm@xsolla.com으로 이메일을 보내주세요.
엑솔라 팀에서 웹사이트와의 결제 UI 통합을 간소화하는 위젯을 만들었습니다. 위젯 스크립트는 GitHub 리포지토리에서 사용할 수 있습니다.
스크립트 초기화 매개 변수 목록:
매개 변수 | 유형 | 설명 |
---|---|---|
access_token | string | 토큰. API에 의해 수신됩니다. 필수. |
sandbox | boolean | true 를 설정하여 결제 프로세스를 테스트합니다. sandbox-secure.xsolla.com 이 secure.xsolla.com 대신 사용됩니다. |
lightbox | object | 옵션 목록 관련 객체로서, Lightbox 열기에 사용할 수 있습니다(PC 버전). |
payment_widget_ui.lightbox.width | string | Lightbox 프레임 높이입니다. null 인 경우, 페이 스테이션 높이에 따라 달라집니다. 기본값은 null 입니다. |
payment_widget_ui.lightbox.height | string | Lightbox 프레임 높이입니다.null 인 경우, 페이 스테이션 높이에 따라 달라집니다. 기본값은 100% 입니다. |
payment_widget_ui.lightbox.zIndex | integer | 속성에 의해 수직 스태킹 순서가 제어됩니다. 기본값은 1000 입니다. |
payment_widget_ui.lightbox.overlayOpacity | integer | 위젯 배경의 불투명도입니다(0 - 완전히 투명함, 1 - 완전히 불투명함). 기본값은 60%입니다(.6 ). |
payment_widget_ui.lightbox.overlayBackground | string | 오버레이의 배경입니다. 기본 값은 #000000 입니다. |
payment_widget_ui.lightbox.modal | boolean | true 인 경우 Lightbox 프레임을 닫을 수 없습니다. 기본값은 false 입니다. |
lightbox.closeByClick | boolean | true 인 경우 오버레이를 클릭하면 Lightbox가 닫힙니다. 기본값은 true 입니다. |
lightbox.closeByKeyboard | boolean | true 인 경우 ESC 키를 누르면 Lightbox가 닫힙니다. 기본값은 true 입니다. |
payment_widget_ui.lightbox.contentBackground | string | 프레임 배경 색상. 기본값은 #ffffff 입니다. 이러한 색상 변경은 이를 포함하는 라이트박스 설정에만 영향을 미치며 페이 스테이션 iframe 자체에는 영향을 미치지 않음에 유의하시기 바랍니다. |
payment_widget_ui.lightbox.contentMargin | string | 프레임 여백입니다. 기본값은 10px 입니다. |
payment_widget_ui.lightbox.spinner | string | 애니메이션 로딩 표시기의 유형입니다. xsolla 또는 round 일 수 있습니다. 기본값은 xsolla 입니다. |
payment_widget_ui.lightbox.spinnerColor | string | 회전자의 색상입니다. 기본값에 의해 설정되지 않습니다. |
childWindow | object | 페이 스테이션 UI에 포함된 하위 창에 대한 옵션입니다. 모바일 버전에 적합합니다. |
childWindow.target | string | 페이 스테이션을 열 위치를 지정합니다. _blank , _self , _parent 일 수 있습니다. 기본값은 _blank 입니다. |
결제 인터페이스 관련하여 발생하는 이벤트는 스크립트를 통해 추적할 수 있습니다. 인터페이스 이벤트 유형에 따라 다양한 작업을 웹 페이지에서 수행할 수 있습니다.
이벤트 목록:
매개 변수 | 설명 |
---|---|
init | 위젯 초기화 이벤트입니다. |
open | 위젯 개시 이벤트입니다. |
load | 결제 인터페이스(페이 스테이션)가 로딩된 후 이벤트입니다. |
close | 결제 인터페이스(페이 스테이션)가 닫힌 후 이벤트입니다. |
status | 게임유저가 상태 페이지에서 이동한 경우의 이벤트입니다. |
status-invoice | 게임유저가 상태 페이지에서 이동했지만 결제가 완료되지 않은 경우의 이벤트입니다. |
status-delivering | 게임유저가 상태 페이지에서 이동했고, 결제가 완료되었으며, 결제 알림을 보내는 중인 경우의 이벤트입니다. |
status-done | 게임유저가 상태 페이지에서 이동했고 결제가 성공적으로 완료된 경우의 이벤트입니다. |
status-troubled | 게임유저가 상태 페이지에서 이동했지만 결제에 실패한 경우의 이벤트입니다. |
https://secure.xsolla.com/paystation4/?token=TOKEN
링크를 사용하세요.https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN
URL을 사용하세요.access_token
매개변수에 비공개 사용자 데이터가 포함되어 있습니다. 이 매개변수를 가져오는 경우 서버 간 통신을 사용해야 합니다.Iframe에서 결제 UI를 여는 방법:
- 결제 UI에서 이벤트를 수신하는
postMessage
메커니즘을 구현합니다. https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN
링크로 결제 UI를 엽니다. 여기서TOKEN
는 수신한 토큰입니다.
잠재적 문제: 일부 결제 시스템에서 요구하는 결제 확인 코드 복사 버튼이 iframe에서 결제 UI를 열 때 표시되지 않는 경우 iframe에 allow=“clipboard-read; clipboard-write; payment”
특성을 전달하세요.
예:
- html
<iframe
src="https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN"
width="800"
height="700"
allow="clipboard-read; clipboard-write; payment"
></iframe>
테스트 결제하기
결제 프로세스를 테스트하려면 샌드박스 모드를 사용할 수 있습니다. 샌드박스 모드는 실제 결제 및 거부된 결제를 제외한 라이브 환경의 모든 기능을 지원하는 독립 실행형 환경입니다. “sandbox”: true
를 전송(주문 생성 시)하여 샌드박스 모드에 액세스할 수 있습니다.
엑솔라와 계약을 체결하기 전에는 샌드박스 모드에서만 결제 프로세스를 테스트할 수 있습니다.
테스트 과정에서 실제 은행 계좌에서 돈을 인출할 필요는 없습니다.
- 샌드박스 모드로 결제 UI를 엽니다.
- 은행 카드 결제 방식을 선택합니다.
- 은행 카드 세부 정보를 입력합니다. 다른 필드(예: 이름 또는 주소)에는 아무 데이터나 입력할 수 있습니다. 오류가 생성되는지 확인하기 위해 잘못된 세부 정보(카드 번호 또는 만료일)를 입력할 수도 있습니다.
- 지불을 클릭합니다.
카드 세부 정보 외에도 다음 조건 중 하나라도 충족하는 경우 우편번호를 지정해야 합니다.
- 사용자의 국가가 미국 또는 캐나다입니다.
- 은행 식별 번호(BIN)가 카드가 미국에서 발급되었음을 나타냅니다.
유효한 우편번호(예: 12345)를 지정할 수 있습니다. 이는 판매 세율을 결정하며 결제 테스트 진행에 영향을 주지 않습니다.
샌드박스 은행 카드 결제를 진행할 수 있는 통화: USD, EUR, RUB, GBP, AED, ALL, AMD, ARS, AUD, AZN, BGN, BRL, BYN, CAD, CHF, CLP, CNY, COP, CZK, DKK, DZD, EGP, GEL, HKD, HRK, HUF, IDR, ILS, INR, ISK, JPY, KES, KGS, KRW, KZT, MAD, MDL, MKD, MNT, MXN, MYR, NGN, PEN, PHP, PKR, PLN, RON, RSD, SAR, SEK, SGD, THB, TRY, TWD, UAH, UYU, UZS, VEF, VND, ZAR.
샌드박스 모드로 진행한 거래에 대한 수수료를 포함한 세부 정보 확인하기:
- 관리자 페이지를 엽니다.
- 계정 > 거래 레지스트리로 이동합니다.
- 테스트 거래 보기 상자를 확인합니다.
또한 관리자 페이지에서 지원 > 거래 검색 섹션의 거래 세부 정보를 확인하고 환불을 요청할 수 있습니다.
주문 생성 및 결제 UI 열기
엑솔라 측에서 사용자 및 제품 데이터로 주문을 생성하려면, XsollaCatalog.Purchase
SDK 메서드를 호출하여 다음 매개 변수를 전달합니다.
itemSku
— 사용자가 구매하려는 아이템의 SKU.onSuccess
— 주문이done
상태로 전환될 때 트리거되는 성공적인 구매 콜백.onError
— 요청 오류 콜백.onBrowseClosed
— 브라우저 닫기 콜백(선택 사항). 이벤트는 내장 브라우저에서 사용자 결제 인터페이스를 열 때만 추적됩니다. 외부 브라우저 이벤트는 추적되지 않습니다.purchaseParams
— 로케일 및 통화와 같은 구매 매개 변수 및 사용자 결제 UI 설정(선택 사항).customHeaders
— 사용자 지정 웹 요청 헤더(선택 사항).
XsollaCatalog.Purchase
메서드는 주문 생성, 사용자 결제 UI 열기, 주문 상태 추적 등 지정된 아이템에 대한 구매 프로세스를 시작합니다. 주문이 done
상태로 전환될 때 호출되는 함수를 onSuccess 매개 변수에 전달합니다.
주문을 생성하면 엑솔라는 결제 인터페이스를 열고 결제하는 데 필요한 결제 토큰을 생성합니다.
기본적으로 토큰의 수명은 24시간입니다. 이 값을 변경하려면 계정 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 보내주세요. 새 값은 관리자 페이지에서 생성한 회사의 모든 프로젝트에서 활성화됩니다.
테스트 결제하기
결제 프로세스를 테스트하려면 샌드박스 모드를 사용할 수 있습니다. 샌드박스 모드는 실제 결제와 거절된 결제를 제외한 라이브 환경의 모든 기능을 지원하는 독립형 환경입니다. 샌드박스 모드에 액세스하려면
엑솔라와 계약을 체결하기 전에는 샌드박스 모드에서만 결제 프로세스를 테스트할 수 있습니다.
테스트 과정에서 실제 은행 계좌에서 돈을 인출할 필요는 없습니다.
- Unity Editor에서 애플리케이션 또는 장면을 실행합니다.
- 은행 카드 결제 수단을 선택합니다.
- 은행 카드 세부 정보를 입력합니다. 다른 필드(예: 이름 또는 주소)에는 아무 데이터나 입력할 수 있습니다. 오류가 생성되는지 확인하기 위해 잘못된 세부 정보(카드 번호 또는 만료일)를 입력할 수도 있습니다.
- 지불을 클릭합니다.
카드 세부 정보 외에도 다음 조건 중 하나라도 충족하는 경우 우편번호를 지정해야 합니다.
- 사용자의 국가가 미국 또는 캐나다입니다.
- 은행 식별 번호(BIN)가 카드가 미국에서 발급되었음을 나타냅니다.
유효한 우편번호(예: 12345)를 지정할 수 있습니다. 이는 판매 세율을 결정하며 결제 테스트 진행에 영향을 주지 않습니다.
샌드박스 은행 카드 결제를 진행할 수 있는 통화: USD, EUR, RUB, GBP, AED, ALL, AMD, ARS, AUD, AZN, BGN, BRL, BYN, CAD, CHF, CLP, CNY, COP, CZK, DKK, DZD, EGP, GEL, HKD, HRK, HUF, IDR, ILS, INR, ISK, JPY, KES, KGS, KRW, KZT, MAD, MDL, MKD, MNT, MXN, MYR, NGN, PEN, PHP, PKR, PLN, RON, RSD, SAR, SEK, SGD, THB, TRY, TWD, UAH, UYU, UZS, VEF, VND, ZAR.
샌드박스 모드로 진행한 거래에 대한 수수료를 포함한 세부 정보 확인하기:
- 관리자 페이지를 엽니다.
- 계정 > 거래 레지스트리로 이동합니다.
- 테스트 거래 보기 상자를 확인합니다.
또한 관리자 페이지에서 지원 > 거래 검색 섹션의 거래 세부 정보를 확인하고 환불을 요청할 수 있습니다.
주문 생성 및 결제 UI 열기
- 엑솔라 측에서 사용자 및 품목 데이터로 주문을 생성하려면 스토어 라이브러리에서
createOrderByItemSku
메서드를 호출하여 다음 매개 변수를 전달합니다.
callback
— 성공적인 주문 생성 콜백. 결제 UI를 열고 결제하는 데 필요한 결제 토큰을 수신합니다.
itemSku
— 사용자가 구매하려는 아이템의 SKU.
options
— 결제 매개 변수(선택 사항).
quantity
— 사용자가 구매하려는 아이템 수(선택 사항). 수량을 지정하지 않으면 기본값은1
로 설정됩니다.
- 결제 UI 열기 로직을 구현:
- kotlin
val intent = XPayments.createIntentBuilder(activity)
.accessToken(AccessToken(<payment token>))
.isSandbox(<isSandbox>)
.build()
startActivityForResult(intent, RC_PAYSTATION)
- 결제 결과 처리 구현:
- kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_PAYSTATION) {
val (status, _) = XPayments.Result.fromResultIntent(data)
when (status) {
XPayments.Status.COMPLETED -> Log.d("MainActivity", "Payment completed")
XPayments.Status.CANCELLED -> Log.d("MainActivity", "Payment cancelled")
XPayments.Status.UNKNOWN -> Log.d("MainActivity", "Status unknown")
}
}
}
테스트 결제하기
결제 프로세스를 테스트하려면 샌드박스 모드를 사용할 수 있습니다. 샌드박스 모드는 실제 결제와 거절된 결제를 제외한 라이브 환경의 모든 기능을 지원하는 독립형 환경입니다. 샌드박스 모드에 액세스하려면 IntentBuilder
객체 생성 시 isSandbox
메서드를 호출하고 true
를 인수로 전달해야 합니다.
엑솔라와 계약을 체결하기 전에는 샌드박스 모드에서만 결제 프로세스를 테스트할 수 있습니다.
테스트 과정에서 실제 은행 계좌에서 돈을 인출할 필요는 없습니다.
- 애플리케이션을 실행합니다.
- 은행 카드 결제 수단을 선택합니다.
- 은행 카드 세부 정보를 입력합니다. 다른 필드(예: 이름 또는 주소)에는 아무 데이터나 입력할 수 있습니다. 오류가 생성되는지 확인하기 위해 잘못된 세부 정보(카드 번호 또는 만료일)를 입력할 수도 있습니다.
- 지불을 클릭합니다.
카드 세부 정보 외에도 다음 조건 중 하나라도 충족하는 경우 우편번호를 지정해야 합니다.
- 사용자의 국가가 미국 또는 캐나다입니다.
- 은행 식별 번호(BIN)가 카드가 미국에서 발급되었음을 나타냅니다.
유효한 우편번호(예: 12345)를 지정할 수 있습니다. 이는 판매 세율을 결정하며 결제 테스트 진행에 영향을 주지 않습니다.
샌드박스 은행 카드 결제를 진행할 수 있는 통화: USD, EUR, RUB, GBP, AED, ALL, AMD, ARS, AUD, AZN, BGN, BRL, BYN, CAD, CHF, CLP, CNY, COP, CZK, DKK, DZD, EGP, GEL, HKD, HRK, HUF, IDR, ILS, INR, ISK, JPY, KES, KGS, KRW, KZT, MAD, MDL, MKD, MNT, MXN, MYR, NGN, PEN, PHP, PKR, PLN, RON, RSD, SAR, SEK, SGD, THB, TRY, TWD, UAH, UYU, UZS, VEF, VND, ZAR.
샌드박스 모드로 진행한 거래에 대한 수수료를 포함한 세부 정보 확인하기:
- 관리자 페이지를 엽니다.
- 계정 > 거래 레지스트리로 이동합니다.
- 테스트 거래 보기 상자를 확인합니다.
또한 관리자 페이지에서 지원 > 거래 검색 섹션의 거래 세부 정보를 확인하고 환불을 요청할 수 있습니다.
주문 생성 및 결제 UI 열기
- 엑솔라 측에서 사용자 및 아이템 데이터로 주문을 생성하려면
FetchPaymentToken
SDK 메서드를 호출하여 다음 매개 변수를 전달합니다.
AuthToken
— 엑솔라 로그인을 사용하여 인증하는 동안 획득한 사용자 인증 토큰.
ItemSKU
— 사용자가 구매하려는 아이템의 SKU.
SuccessCallback
- 결제 토큰을 성공적으로 수신했을 때 트리거되는 콜백.
ErrorCallback
— 요청 오류 콜백.
PurchaseParams
— 로케일 및 통화와 같은 구매 및 사용자 결제 인터페이스 매개 변수(선택 사항).
- 결제 인터페이스를 엽니다. 이렇게 하려면
LaunchPaymentConsole
SDK 메서드를 호출하여 다음 매개 변수를 전달합니다.
WorldContextObject
— 월드 컨텍스트 객체(C++ 호출용).
OrderId
— 주문 ID.
AccessToken
— 결제 토큰.
SuccessCallback
— 결제 토큰을 성공적으로 수신했을 때 트리거되는 콜백.
ErrorCallback
— 요청 오류 콜백.
BrowserClosedCallback
— 브라우저 닫기 콜백. 이벤트는 내장 브라우저에서 사용자 결제 인터페이스를 열 때만 추적됩니다. 외부 브라우저 이벤트는 추적되지 않습니다.
PayStationVersion
— Pay Station 버전을 선택합니다. 기본적으로 버전 4가 사용됩니다.
테스트 결제하기
결제 프로세스를 테스트하려면 샌드박스 모드를 사용할 수 있습니다. 샌드박스 모드는 실제 결제와 거절된 결제를 제외한 라이브 환경의 모든 기능을 지원하는 독립형 환경입니다. 샌드박스 모드에 액세스하려면 Unreal Editor의
엑솔라와 계약을 체결하기 전에는 샌드박스 모드에서만 결제 프로세스를 테스트할 수 있습니다.
테스트 과정에서 실제 은행 계좌에서 돈을 인출할 필요는 없습니다.
- Unreal Editor에서 애플리케이션 또는 맵을 실행합니다.
- 은행 카드 결제 수단을 선택합니다.
- 은행 카드 세부 정보를 입력합니다. 다른 필드(예: 이름 또는 주소)에는 아무 데이터나 입력할 수 있습니다. 오류가 생성되는지 확인하기 위해 잘못된 세부 정보(카드 번호 또는 만료일)를 입력할 수도 있습니다.
- 지불을 클릭합니다.
카드 세부 정보 외에도 다음 조건 중 하나라도 충족하는 경우 우편번호를 지정해야 합니다.
- 사용자의 국가가 미국 또는 캐나다입니다.
- 은행 식별 번호(BIN)가 카드가 미국에서 발급되었음을 나타냅니다.
유효한 우편번호(예: 12345)를 지정할 수 있습니다. 이는 판매 세율을 결정하며 결제 테스트 진행에 영향을 주지 않습니다.
샌드박스 은행 카드 결제를 진행할 수 있는 통화: USD, EUR, RUB, GBP, AED, ALL, AMD, ARS, AUD, AZN, BGN, BRL, BYN, CAD, CHF, CLP, CNY, COP, CZK, DKK, DZD, EGP, GEL, HKD, HRK, HUF, IDR, ILS, INR, ISK, JPY, KES, KGS, KRW, KZT, MAD, MDL, MKD, MNT, MXN, MYR, NGN, PEN, PHP, PKR, PLN, RON, RSD, SAR, SEK, SGD, THB, TRY, TWD, UAH, UYU, UZS, VEF, VND, ZAR.
샌드박스 모드로 진행한 거래에 대한 수수료를 포함한 세부 정보 확인하기:
- 관리자 페이지를 엽니다.
- 계정 > 거래 레지스트리로 이동합니다.
- 테스트 거래 보기 상자를 확인합니다.
또한 관리자 페이지에서 지원 > 거래 검색 섹션의 거래 세부 정보를 확인하고 환불을 요청할 수 있습니다.
오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.