아이템 구매 설정하기
프로젝트에 가장 적합한 방법을 선택하여 엑솔라 데이터에 액세스합니다.
애플리케이션의 클라이언트 측에서 주문 생성
수량에 관계없이 하나의 SKU가 있는 아이템을 판매하거나 사용자가 미리 입력한 SKU가 서로 다른장바구니 아이템을 모두 판매할 수 있습니다. 엑솔라 측에서 사용자와 아이템에 대한 데이터를 사용하여 주문을 생성하려면 다음 API 호출 중 하나를 사용하십시오:
사용된 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 열기
수량에 관계없이 하나의 SKU가 있는 아이템을 판매하거나 사용자가 미리 입력한 다른 SKU가 있는 장바구니 아이템을 판매할 수 있습니다.
엑솔라 측에서 사용자와 하나의 SKU가 있는 아이템에 대한 데이터를 사용하여 주문을 생성하려면, 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 열기
수량에 관계없이 하나의 SKU가 있는 아이템을 판매하거나 사용자가 미리 입력한 다른 SKU가 있는 장바구니 아이템을 판매할 수 있습니다.
- 엑솔라 측에서 사용자와 하나의 SKU가 있는 아이템에 대한 데이터를 사용하여 주문을 생성하려면 스토어 라이브러리에서
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 열기
수량에 관계없이 하나의 SKU가 있는 아이템을 판매하거나 사용자가 미리 입력한 다른 SKU가 있는 장바구니 아이템을 판매할 수 있습니다.
- 엑솔라 측에 사용자와 하나의 SKU가 있는 아이템에 대한 데이터르르 사용하여 주문을 생성하려면
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.
샌드박스 모드로 진행한 거래에 대한 수수료를 포함한 세부 정보 확인하기:
- 관리자 페이지를 엽니다.
- 계정 > 거래 레지스트리로 이동합니다.
- 테스트 거래 보기 상자를 확인합니다.
또한 관리자 페이지에서 지원 > 거래 검색 섹션의 거래 세부 정보를 확인하고 환불을 요청할 수 있습니다.
오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.