결제 UI 열기 설정
프로젝트 인증 설정에 따라 결제 UI를 열기 위해 다음 중 하나를 사용할 수 있습니다.
- 서버 측 토큰 생성 API 호출을 사용하는 경우:- 애플리케이션에서 자체 인증 시스템을 사용합니다.
- 정기 결제 플랜이 프로젝트에서 첫 번째 결제와 연결된 정기 결제 요금으로 설정됩니다.
 
- 프로젝트에서 엑솔라 로그인을 사용하는 경우 결제 UI를 열기 위한 링크 가져오기용 클라이언트 측 메서드를 통해.
토큰 생성 서버 API 호출을 통해
- 토큰 가져오기를 구현하여 결제 UI를 여는 방법:
- 결제 UI가 열리는 방식 구현하기:
결제 방법 선택 페이지 표시 사용
결제 UI를 열었을 때 결제 방법 선택 페이지가 표시되도록 설정하려면 선택한 플랜의 ID와 함께 purchase.subscription.plan_id 매개 변수를 토큰 생성 API 호출로 전달합니다. 필요한 경우 추가 사용자 정의 매개 변수를 전달합니다.
- 정기 결제 플랜의 가격과 purchase.checkout.amount
- 통화 가치와 purchase.checkout.currency
- curl
 1curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
 2-X POST \
 3-u your_merchant_id:merchant_api_key \
 4-H 'Content-Type:application/json' \
 5-H 'Accept: application/json' \
 6-d '
 7{
 8  "user":{
 9    "id":{
10      "value": "1234567",
11      "hidden": true
12    },
13    "email": {
14      "value": "user1234@game1234.com"
15    },
16    "name": {
17      "value": "UserName",
18      "hidden": false
19    }
20  },
21  "settings": {
22    "project_id": 12345,
23    "currency": "USD"
24  },
25  "purchase": {
26    "subscription": {
27      "plan_id": "54321"
28    }
29  }
30}'
결제 방식 선택 페이지의 예시:
결제 데이터 입력 페이지 표시 사용
결제 UI가 열릴 때 결제 데이터 입력 페이지를 표시하도록 설정하려면 토큰 생성 API 호출에서 다음 매개 변수를 전달합니다.
- 선택한 플랜의 ID와 purchase.subscription.plan_id.
- 결제 방식 ID가 있는 settings.payment_method입니다. 관리자 페이지의 프로젝트에서 식별자 목록을 확인하려면 결제 > 결제 방식 섹션으로 이동하거나 고객 성공 관리자에게 요청합니다.
- 정기 결제 플랜의 가격과 purchase.checkout.amount
- 통화 가치와 purchase.checkout.currency
- curl
 1curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
 2-X POST \
 3-u your_merchant_id:merchant_api_key \
 4-H 'Content-Type:application/json' \
 5-H 'Accept: application/json' \
 6-d '
 7{
 8  "user":{
 9    "id":{
10      "value": "1234567",
11      "hidden": true
12    },
13    "email": {
14      "value": "user1234@game1234.com"
15    },
16    "name": {
17      "value": "UserName",
18      "hidden": false
19    }
20  },
21  "settings": {
22    "project_id": 12345,
23    "payment_method": 1380,
24    "currency": "USD"
25  },
26  "purchase": {
27    "subscription": {
28      "plan_id": "54321"
29    }
30  }
31}'
결제 데이터 입력 페이지의 예시:
클라이언트 API 메서드를 통해
- 클라이언트 API 메서드를 사용하여 결제 UI를 열기 위한 링크 가져오기를 구현합니다.
- 결제 UI 열기를 구현하는 방법:
결제 UI를 열기 위한 링크 가져오기용 클라이언트 메서드
애플리케이션의 클라이언트 측에서 HTTP POST 요청을 사용하여 결제 UI 열기를 구현: https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/buy
요청에 Authorization: Bearer <client_user_jwt> 헤더를 포함해야 합니다. 여기에서 <client_user_jwt>는 사용자의 JSON 웹 토큰(JWT)으로 Base64 표준에 따라 인코딩한 고유한 토큰입니다. 토큰을 받는 방법:
- 애플리케이션에서 로그인과 암호 인증을 사용하는 경우 Register new user 와Auth by username 을 사용합니다.
- 애플리케이션에서 소셜 네트워크를 통한 인증을 사용하는 경우 - Auth via social network API 호출을 사용합니다.
projectId 경로 매개 변수로 지정합니다. 이 매개 변수는 관리자 페이지의 프로젝트 이름 옆에서 찾을 수 있습니다.country를 쿼리 매개 변수로 지정합니다. ISO 3166-1 alpha-2에 따라 사용자의 국가를 두 글자 코드로 지정합니다. 이러한 설정은 로케일과 통화 선택에 영향을 줍니다. 이 매개 변수를 전달하지 않으면 사용자의 IP 주소로 국가를 결정합니다.
요청에서 전달해야 하는 매개 변수:
- plan_external_id는 결제 방식 선택 페이지에서 결제 인터페이스를 엽니다.
- plan_external_id와- settings.payment_method는 결제 데이터 입력 페이지에서 결제 인터페이스를 엽니다.
요청 본문 매개 변수:
| 매개 변수 | 유형 | 설명 | 
|---|---|---|
| 
 | string | 필수입니다. 정기 결제 요금제의 외부 ID입니다. [관리자 페이지 > 아이템 카탈로그 > 정기 결제 > 정기 결제 요금제 섹션에서 확인할 수 있습니다. | 
| 
 | object | 사용자 지정 프로젝트 설정와 관련된 개체입니다. | 
| 
 | object | 인터페이스 설정입니다(개체). | 
| 
 | string | 결제 UI 테마. default,default_dark또는 사용자 정의 테마 ID일 수 있습니다. | 
| 
 | string | 장치 유형입니다. desktop(기본값) 또는mobile이 가능합니다. | 
| 
 | object | 데스크톱 버전의 인터페이스 설정입니다(개체). | 
| 
 | object | 헤더 설정 데이터와 관련된 값입니다. | 
| 
 | boolean | 페이 스테이션 데스크톱에 닫기 버튼을 표시할지를 설정합니다. 이 버튼은 페이 스테이션을 종료하고 settings.return_url매개 변수에 지정된 URL로 사용자를 리디렉션합니다. 기본값은false입니다. | 
| 
 | boolean | 결제 UI에 헤더가 표시되는지 여부를 나타냅니다. | 
| 
 | string | 헤더의 외관입니다. compact(이 경우 게임 이름과 사용자 ID는 헤더에 표시되지 않음) 혹은normal일 수 있습니다. | 
| 
 | boolean | true일 경우, 로고가 헤더에 표시됩니다(먼저 고객 성공 매니저에게 이미지 파일을 제공하세요). | 
| 
 | boolean | 프로젝트 이름이 헤더에 표시되는지 여부를 나타냅니다. | 
| 
 | string | 헤더를 표시하는 설정 방식입니다. compact(프로젝트 이름 및 사용자 ID 표지 안 함) 또는normal(기본값)을 설정할 수 있습니다. | 
| 
 | boolean | 페이 스테이션 모바일에 닫기 버튼을 표시할지를 설정합니다. 이 버튼은 페이 스테이션을 종료하고 settings.return_url매개 변수에 지정된 URL로 사용자를 리디렉션합니다. 기본값은false입니다. | 
| 
 | string | 페이 스테이션의 인터페이스 모드. user_account만 가능합니다. 헤더는 계정 탐색 메뉴만 포함할 수 있으며 사용자는 제품을 선택하거나 결제를 할 수 없습니다. 이 모드는 데스크톱에서만 사용 가능합니다. | 
| 
 | string | 선호하는 결제 통화입니다. 3자리 ISO 4217 통화 코드입니다. | 
| 
 | string | 게임의 트랜잭션 ID 입니다. 각 사용자 결제별로 고유해야 합니다. | 
| 
 | integer | 결제 방식 ID입니다. 결제 방식 ID 목록은 관리자 페이지에서 가져올 수 있습니다. | 
| 
 | string | 결제 후 사용자를 리디렉션하는 페이지입니다. 매개 변수 user_id,foreigninvoice,invoice_id,status가 링크에 자동으로 추가됩니다. | 
| 
 | object | 리디렉션 정책 설정입니다(개체). | 
| 
 | string | 결제 후 사용자를 반환 URL로 리디렉션하는 결제 상태입니다. none,successful,successful_or_canceled혹은any일 수 있습니다. | 
| settings.redirect_policy.delay | integer | 사용자가 복귀 URL로 자동 재지정된 이후 지연 시간(초). | 
| 
 | string | 결제 후 사용자를 반환 URL로 리디렉션하는 결제 상태입니다. none,successful,successful_or_canceled혹은any일 수 있습니다. | 
| 
 | string | 수동 리디렉션 버튼 텍스트입니다. | 
- curl
 1curl -X 'POST' \
 2'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/buy?country=RU  ' \
 3  -H 'accept: application/json' \
 4  -H 'Authorization: Bearer client_user_jwt'
 5
 6  {
 7    "plan_external_id": "PlanExternalId",
 8    "settings": {
 9      "ui": {
10        "size": "large",
11        "theme": "string",
12        "version": "desktop",
13        "desktop": {
14          "header": {
15            "is_visible": true,
16            "visible_logo": true,
17            "visible_name": true,
18            "type": "compact",
19            "close_button": true
20          }
21        },
22        "mobile": {
23          "mode": "saved_accounts",
24          "footer": {
25            "is_visible": true
26          },
27          "header": {
28            "close_button": true
29          }
30        },
31        "mode": "user_account"
32        }
33      },
34      "currency": "string",
35      "locale": "string",
36      "external_id": "string",
37      "payment_method": 1,
38      "return_url": "string",
39      "redirect_policy": {
40        "redirect_conditions": "none",
41        "delay": 0,
42        "status_for_manual_redirection": "none",
43        "redirect_button_caption": "string"
44      }
45    }
- json
1{
2  "link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
3}
결제 UI를 여는 방법
페이 스테이션 임베드 사용
웹 사이트 페이지에 스크립트를 추가하여 결제 UI 위젯을 엽니다. 스크립트에 대한 전체 설명은 GitHub 리포지토리에서 확인할 수 있습니다.
예시: 동기화 스크립트 로딩
- html
 1<script>
 2   var options = {
 3       access_token: 'ACCESS_TOKEN', //TODO use access token, received on previous step
 4       sandbox: true //TODO please do not forget to remove this setting when going live
 5   };
 6   var s = document.createElement('script');
 7   s.type = "text/javascript";
 8   s.async = true;
 9   s.src = "https://cdn.xsolla.net/payments-bucket-prod/embed/1.5.0/widget.min.js";
10   s.addEventListener('load', function (e) {
11       XPayStationWidget.init(options);
12   }, false);
13   var head = document.getElementsByTagName('head')[0];
14   head.appendChild(s);
15</script>
16
17<button data-xpaystation-widget-open>Buy Credits</button>
페이 스테이션 임베드는 postMessage를 통해 결제 UI에서 이벤트를 받도록 해줍니다. 이러한 이벤트를 분석 시스템으로 보낼 수 있습니다. 분석 시스템에 이벤트 처리 기능을 설정하려면 고객 성공 매니저에게 연락하거나 csm@xsolla.com으로 이메일을 보내주세요.
스크립트 초기화 매개 변수 목록:
| 매개 변수 | 유형 | 설명 | 
|---|---|---|
| access_token | string | 토큰 생성 서버 API 호출을 통해 수신하거나 클라이언트 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입니다. | 
https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN을 사용합니다. 여기에서 ACCESS_TOKEN은 토큰 생성하기 메서드로 얻은 토큰입니다. 결제 인터페이스를 여는 클라이언트 메서드를 구현할 때 이미 만들어진 링크를 가져올 수도 있습니다.https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN URL을 사용하세요.Iframe에서
직접 다음 메커니즘을 구현해야 합니다.
- 장치 유형(데스크톱 또는 모바일)을 확인하고 장치 유형을 토큰의 settings.ui.version 매개 변수 내에서 전송합니다.
- postMessage를 통해 결제 UI로부터 이벤트를 수신합니다. 이러한 이벤트를 분석 시스템으로 전송할 수 있습니다. 분석 시스템에서 이벤트 처리를 설정하려면 고객 성공 매니저에게 문의하거나 csm@xsolla.com으로 이메일을 보내 주세요.
Iframe으로 결제 UI를 열려면 링크 https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN을 사용합니다. 여기에서 ACCESS_TOKEN은 토큰 생성하기 메서드로 얻은 토큰입니다. 결제 인터페이스를 여는 클라이언트 메서드를 구현할 때 이미 만들어진 링크를 가져올 수도 있습니다.
테스트 목적을 달성하려면 이 URL https://sandbox-secure.xsolla.com/paystation4/?token=ACCESS_TOKEN을 사용합니다.
새 창에서
새 창으로 결제 UI를 열려면 링크 https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN을 사용합니다. 여기에서 ACCESS_TOKEN은 토큰 생성하기 메서드로 얻은 토큰입니다. 결제 인터페이스를 여는 클라이언트 메서드를 구현할 때 이미 만들어진 링크를 가져올 수도 있습니다.
테스트 목적을 달성하려면 이 URL https://sandbox-secure.xsolla.com/paystation4/?token=ACCESS_TOKEN을 사용합니다.
오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.