Pay Station API v2.0

개요

본 섹션은 페이 스테이션을 사용하여 작업하는 방법을 설명합니다. API 방식을 가져오려면 기본 인증을 사용하십시오. 결제 UI를 열고 안전한 결제를 활성화하려면 토큰을 가져와야 합니다.

Endpoint 경로: https://api.xsolla.com.

페이 스테이션 열기

엑솔라 팀은 개발자 웹 사이트와 결제 인터페이스의 연동을 단순화하기 위한 스크립트를 제공합니다. 스크립트는 저희 CDN에 위치해 있으며 이곳 에서 구할 수 있습니다. 스크립트를 개발자 웹 사이트와 연동하려면 이 URL을 사용하십시오. 자세한 내용을 알아보려면 Github 저장소 를 확인해 보십시오.

스크립트 초기화 파라미터 목록:

파라미터유형설명
access_token
string토큰. API에 의해 수신됩니다. 필수.
sandbox
booleanTrue로 설정하여 결제 프로세스를 테스트합니다. sandbox-secure.xsolla.comsecure.xsolla.com 대신 사용됩니다.
lightbox
object옵션 목록 관련 객체로서, Lightbox 열기에 사용할 수 있습니다(PC 버전)
lightbox.width
stringLightbox 프레임의 너비입니다. null인 경우, 페이 스테이션 너비에 따라 달라집니다. 기본값은 null입니다.
lightbox.height
stringLightbox 프레임 높이입니다. null인 경우, 페이 스테이션 높이에 따라 달라집니다. 기본값은 100%입니다.
lightbox.zIndex
integer속성에 의해 수직 스태킹 순서가 제어됩니다. 기본값은 1000입니다.
lightbox.overlayOpacity
integer오버레이의 불투명도(0~1)입니다. 기본값은 .6입니다.
lightbox.overlayBackground
string오버레이의 배경입니다. 기본 값은 #000000입니다.
lightbox.modal
booleantrue인 경우 Lightbox 프레임을 닫을 수 없습니다. 기본값은 false입니다.
lightbox.closeByClick
booleantrue인 경우 오버레이를 클릭하면 Lightbox가 닫힙니다. 기본값은 true입니다.
lightbox.closeByKeyboard
booleantrue인 경우 ESC 키를 누르면 Lightbox가 닫힙니다. 기본값은 true입니다.
lightbox.contentBackground
string프레임 배경 색상. 기본값은 #ffffff입니다. 이러한 색상 변경은 이를 포함하는 라이트박스 설정에만 영향을 미치며 페이 스테이션 iframe 자체에는 영향을 미치지 않음에 유의하시기 바랍니다.
lightbox.contentMargin
string프레임 여백입니다. 기본값은 10px입니다.
lightbox.spinner
string애니메이션 로딩 표시기의 유형입니다. xsolla 또는 round일 수 있습니다. 기본값은 xsolla입니다.
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게임유저가 상태 페이지에서 이동했지만 결제에 실패한 경우의 이벤트입니다.

결제 UI 열기를 직접 초기화하려면 https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN 링크를 이용하십시오.

Note: 지불 UI를 여는 경우에만 https:// 형식의 링크를 사용해야 합니다.

테스트 목적을 위해 다음 URL을 사용하십시오 https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN.

Notice: access_token 매개 변수에 비공개 사용자 데이터가 포함되어 있습니다. 이 매개 변수를 가져오는 경우 서버 간 통신을 사용해야 합니다.

토큰

보다 안전한 결제를 위해 엑솔라 API는 결제 페이지에서 직접 HTTP GET 요청을 통해 데이터를 수신하는 대신 결제 파라미터 목록과 토큰을 사용합니다. 결제 페이지를 호출하기 전에 새 토큰을 가져와야 합니다. 토큰의 유효기간은 24시간.

토큰 가져오기

엑솔라는 어떠한 게임유저 파라미터로도 토큰을 생성할 수 있게 제공합니다. 개발자가 이 파라미터를 전송하면 결제 후 파라미터가 수신됩니다. 토큰에는 모든 게임유저 파라미터가 포함되어 있습니다.

Notice: 이 API 메소드는 부하가 높을 때 사용할 수 없습니다. 요청의 수가 많은 경우 속도 제한이 적용될 수 있습니다. 이 API 메소드의 속도 제한을 알고 싶은 경우 계정 관리자에게 문의하세요.

HTTP 요청

Copy
Full screen
Small screen
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token

파라미터유형설명
user
object사용자에 대한 데이터가 포함된 개체입니다.
user.id
object게임유저 ID 데이터와 관련된 값입니다. 필수.
user.id.value
string사용자 ID.
user.name
object게임유저 닉네임 데이터와 관련된 값입니다.
user.name.value
string게임유저 닉네임입니다.
user.age
integer사용자 나이.
user.email
object사용자 이메일(오브젝트). user.email 오브젝트는 부정 결제 방지 모델 및 결제 처리 구축에 잇어 없어서는 안 될 중요한 부분입니다. 이는 엑솔라와 결제 시스템 요구 사항 모두에 해당합니다. 이 매개변수를 누락하면 승인률이 낮아질 수 있습니다. 필수.
user.email.value
string사용자 이메일. RFC 822 프로토콜에 따라 유효해야 합니다. 필수.
user.phone
object사용자 전화번호(오브젝트).
user.phone.value
string전화번호.
user.country
object게임유저 국가 데이터와 관련된 값입니다.
user.country.value
stringISO 3166-1 alpha-2 standard에 따른 2자로 된 국가 코드를 사용합니다.
user.country.allow_modify
boolean결제 UI에서 사용자가 국가를 변경할 수 있는지를 설정합니다. 기본값은 false 입니다.
user.attributes
object게임유저 특성 데이터와 관련된 객체로서 아이템 목록을 필터링하는데 사용됩니다. 키값 쌍을 가진 올바른 JSON 해시여야 합니다.
user.steam_id
object게임유저 Steam ID 데이터와 관련된 값입니다.
user.steam_id.value
stringSteam ID입니다.
user.tracking_id
object사용자 추적 ID에 대한 데이터가 포함된 값입니다.
user.tracking_id.value
string고유한 추적 ID(마케팅 캠페인에 사용됨)입니다.
user.public_id.value
string사용자를 고유하게 식별할 수 있고 사용자 ID(이메일, 애칭 등)와 달리 사용자에 대해 알려진 매개 변수입니다. 이 매개 변수는 게임 스토어 외부(예: 캐시 키오스크의 게임 버튼)에서 구매할 수 있을 때 사용됩니다.
user.utm
object트래픽 성향을 나타내는 데이터를 포함한 오브젝트.
user.utm.utm_source
string트래픽 소스.
user.utm.utm_medium
string트래픽 채널(맥락 이해 광고, 언론 광고, 이메일 목록 메시지).
user.utm.utm_campaign
string캠페인 제목. 이 항목은 음차한 캠페인 제목이나 영어로 번역한 캠페인 제목을 포함해야 합니다.
user.utm.utm_term
string캠페인 키워드. 설정된 경우 통계는 특정 검색 쿼리 대신에 광고 타기팅용으로 사용된 키워드에 기반하게 됩니다. Google Analytics에서 지정된 utm_term은 일반 검색어 보고서의 일부입니다.
user.utm.utm_content
string캠페인 구성 요소.
boolean게임유저가 법인인지 여부를 나타냅니다.
object법인 세부 정보가 있는 오브젝트. user.is_legal가 true인 경우 오브젝트와 이에 해당하는 모든 매개변수는 필수입니다.
string법인 전체 이름.
string법인 전체 주소.
string개별 납세자 식별자.
string기업이 속한 국가. ISO 3166-1 alpha-2 standard에 따른 2자로 된 대문자 국가 코드를 사용합니다.
settings
object사용자 지정 프로젝트 설정와 관련된 객체입니다.
settings.external_id
string트랜잭션 외부 ID.
settings.project_id
integer엑솔라 시스템 내의 게임 식별자입니다. 판매자 계정 에서 확인할 수 있습니다. 필수.
settings.language
string인터페이스 언어입니다. 2자리 소문자 언어 코드입니다.
settings.return_url
string결제 후 사용자를 리디렉션할 페이지. 매개 변수 user_id, foreigninvoice, invoice_id, status가 링크에 자동으로 추가됩니다.
settings.redirect_policy
object재지정 정책 설정(객체).
settings.redirect_policy.redirect_conditions
string복귀 URL로 사용자 재지정 시 지불 상태. 이는 none, successful, successful_or_canceled, 혹은 any일 수 있습니다.
settings.redirect_policy.delay
integer사용자가 복귀 URL로 자동 재지정된 이후 지연 시간(초).
settings.redirect_policy.status_for_manual_redirection
string복귀 URL로 사용자 재지정 버튼 지불 상태. 이는 none, successful, successful_or_canceled, 혹은 any일 수 있습니다.
settings.redirect_policy.redirect_button_caption
string수동 재지정 버튼 문구.
settings.currency
string선호하는 결제 통화입니다. 통화의 3자리 정의가 ISO 4217에 따라 사용됩니다.
settings.mode
string결제 프로세스를 테스트하기 위한 sandbox 값을 설정합니다. 이 경우, 결제 UI에 접근하려면 https://sandbox-secure.xsolla.com를 사용합니다.
settings.payment_method
integer결제 수단의 ID입니다.
settings.payment_widget
string결제 위젯. paybycash 또는 giftcard일 수 있습니다. 매개 변수가 설정되면, 사용자는 현금 결제 또는 기프트 카드 위젯으로 각각 리디렉션됩니다.
settings.ui
object인터페이스 설정 데이터와 관련된 값입니다.
settings.ui.theme
string결제 UI 테마. default 또는 default_dark일 수 있습니다.
settings.ui.size
string결제 UI의 크기입니다. 이 매개 변수는 결제 UI의 필요한 크기에 따라 값이 다음과 같을 수 있습니다.
  • small: 결제 UI의 가능한 최소 크기입니다. 창 크기가 엄격히 제한되는 경우 이 값을 사용합니다. (크기: 620 x 630
  • medium: 결제 UI의 권장 크기입니다. 이 값을 사용하여 라이트박스에 결제 UI를 표시합니다. (크기: 740 x 760)
  • large: 새 창 또는 탭에 결제 UI 표시를 위한 최적의 크기입니다. (크기: 820 x 840)
settings.ui.version
string장치 유형입니다. desktop(기본값) 또는 mobile이 가능합니다.
boolean외부 리소스로 링크 리디렉션 여부가 비활성화되었습니다. true 가 기본값입니다. 외부 링크를 클릭하면 external-link-open 이벤트가 postMessage 메커니즘을 통해 전송됩니다. 리디렉션 링크용 주소는 url 매개 변수에서 전달됩니다.
settings.ui.desktop
objectPC 버전의 인터페이스 설정 데이터와 관련된 값입니다.
settings.ui.desktop.header
object헤더 설정 데이터와 관련된 값입니다.
settings.ui.desktop.header.is_visible
boolean결제 UI에 헤더가 표시되는지 여부를 나타냅니다.
booleantrue일 경우, 로고가 헤더에 표시됩니다(먼저 계정 관리자에게 이미지 파일을 제공하세요).
settings.ui.desktop.header.visible_name
boolean프로젝트 이름이 헤더에 표시되는지 여부를 나타냅니다.
settings.ui.desktop.header.visible_purchase
boolean헤더에 구매 설명(purchase.description.value)을 표시할지를 설정합니다. 기본값은 true입니다.
settings.ui.desktop.header.type
string헤더 표시 방법. compact(프로젝트 이름 및 사용자 ID 숨기기) 또는 normal(기본값)을 설정할 수 있습니다.
settings.ui.desktop.header.close_button
boolean페이 스테이션 데스크톱에 닫기 버튼을 표시할지를 설정합니다. 이 버튼은 페이 스테이션을 종료하고 settings.return_url 매개 변수에 지정된 URL로 사용자를 리디렉션합니다. 기본값은 false입니다.
settings.ui.desktop.subscription_list
object정기 결제 목록 설정 데이터와 관련된 값입니다.
settings.ui.desktop.subscription_list.layout
string목록 템플릿. list(기본값) 또는 grid일 수 있습니다.
settings.ui.desktop.subscription_list.description
string정기결제에 관한 어떠한 텍스트도 이곳에서 전달할 수 있습니다. 정기 결제 요금제 목록 위에 텍스트가 표시됩니다.
settings.ui.desktop.subscription_list.display_local_price
booleantrue인 경우 및 사용자의 현지 통화가 구독 플랜의 통화와 다른 경우, 사용자는 가격을 현지 통화 및 기본 통화 두 가지 모두로 볼 수 있습니다.
settings.ui.desktop.virtual_item_list
object게임 아이템 목록 설정 데이터와 관련된 값입니다.
settings.ui.desktop.virtual_item_list.layout
string목록 템플릿. list(기본값) 또는 grid일 수 있습니다.
settings.ui.desktop.virtual_item_list.button_with_price
booleantrue인 경우, 가격이 버튼에 표시됩니다. false인 경우, 가격이 버튼 왼쪽에 표시됩니다. 기본값은 false입니다.
settings.ui.desktop.virtual_item_list.view
string가상 아이템 그룹을 수직/수평 메뉴로 표시합니다. horizontal_navigation 또는 vertical(기본값)이 가능합니다.
settings.ui.desktop.virtual_currency_list
object게임머니 목록 설정 데이터와 관련된 값입니다.
settings.ui.desktop.virtual_currency_list.description
string게임머니 목록에 관한 어떠한 텍스트도 이곳에서 전달할 수 있습니다. 게임머니 패키지 목록 위에 텍스트가 표시됩니다.
settings.ui.desktop.virtual_currency_list.button_with_price
booleantrue인 경우, 가격이 버튼에 표시됩니다. false인 경우, 가격이 버튼 왼쪽에 표시됩니다. 기본값은 false입니다.
settings.ui.header.visible_virtual_currency_balance
boolean결제 UI에서 이 요소를 숨길 수 있는지를 설정합니다. 기본값은 true입니다.
settings.ui.mobile.mode
string사용자는 오직 저장된 결제 방법을 사용해서 결제할 수 있습니다. saved_accounts일 수 있습니다.
settings.ui.mobile.header.close_button
boolean페이 스테이션 모바일에 닫기 버튼을 표시할지를 설정합니다. 이 버튼은 페이 스테이션을 종료하고 settings.return_url 매개 변수에 지정된 URL로 사용자를 리디렉션합니다. 기본값은 false입니다.
boolean모바일 버전의 결제 UI에서 바닥글을 표시하거나 숨길지 여부입니다.
settings.ui.license_url
stringEULA의 링크입니다.
settings.ui.components
object모듈 메뉴 설정 데이터와 관련된 값입니다.
settings.ui.components.virtual_items
object게임 아이템 모듈 설정 데이터와 관련된 값입니다.
settings.ui.components.virtual_items.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.components.virtual_items.hidden
boolean모듈 메뉴에 게임 아이템을 표시하는지 여부를 나타냅니다.
settings.ui.components.virtual_items.selected_group
string게임유저가 게임 아이템 탭을 열었을 때 선택되는 그룹입니다.
settings.ui.components.virtual_items.selected_item
string게임유저가 게임 아이템 탭을 열었을 때 선택되는 아이템입니다. 아이템 SKU는 이곳에서 보내야 합니다.
settings.ui.components.virtual_currency
object게임머니 모듈 설정 데이터와 관련된 값입니다.
settings.ui.components.virtual_currency.custom_amount
boolean사용자가 결제 UI에 임의의 가상 통화 수량을 입력할 수 있도록 설정합니다.
settings.ui.components.virtual_currency.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.components.virtual_currency.hidden
boolean모듈 메뉴에 게임 아이템을 표시하는지 여부를 나타냅니다.
settings.ui.components.subscriptions
object정기 결제 모듈 설정 데이터와 관련된 값입니다.
settings.ui.components.subscriptions.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.components.subscriptions.hidden
boolean모듈 메뉴에 게임 아이템을 표시하는지 여부를 나타냅니다.
settings.ui.mode
string페이 스테이션의 인터페이스 모드. user_account만 가능합니다. 헤더는 계정 탐색 메뉴만 포함할 수 있으며 사용자는 제품을 선택하거나 결제를 할 수 없습니다.
settings.ui.user_account
object사용자 계정에 관한 데이터가 담긴 객체.
settings.ui.user_account.info
object내 계정 페이지입니다.
settings.ui.user_account.info.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.user_account.info.enable
boolean하위 메뉴를 표시할지를 설정합니다. 기본값은 false입니다.
settings.ui.user_account.history
object사용자의 ‘기록’ 페이지입니다.
settings.ui.user_account.history.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.user_account.history.enable
boolean하위 메뉴를 표시할지를 설정합니다. 기본값은 false입니다.
settings.ui.user_account.payment_accounts
object내 결제 계정 페이지입니다.
settings.ui.user_account.payment_accounts.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.user_account.payment_accounts.enable
boolean하위 메뉴를 표시할지를 설정합니다. 기본값은 false입니다.
settings.ui.user_account.subscriptions
object구독 관리 페이지입니다.
settings.ui.user_account.subscriptions.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.user_account.subscriptions.enable
boolean하위 메뉴를 표시할지를 설정합니다. 기본값은 false입니다.
purchase
object구매 데이터 관련 값입니다.
purchase.virtual_currency
object게임머니 데이터와 관련된 값입니다.
purchase.virtual_currency.quantity
float게임머니 구매량입니다.
purchase.virtual_currency.currency
string모든 계산이 이루어지는 사항에 기반한, 게임머니 통화 패키지의 통화입니다.
purchase.virtual_items
object게임 아이템 구매 데이터와 관련된 값입니다.
purchase.virtual_items.currency
string모든 계산이 이루어지는 사항에 기반한, 구매에서 가상 항목의 통화입니다.
purchase.virtual_items.items
array아이템 구매 데이터와 관련된 배열입니다.
purchase.virtual_items.items.sku
string아이템 ID입니다.
purchase.virtual_items.items.amount
integer아이템 수량입니다.
purchase.virtual_items.available_groups
array아이템 그룹 ID 관련 배열입니다. 지정된 그룹의 아이템만 결제 UI에 표시됩니다.
purchase.subscription
object정기결제 데이터 관련 값입니다.
purchase.subscription.plan_id
string요금제 ID입니다.
purchase.subscription.operation
string사용자의 구독 플랜에 적용되는 작업 유형. 구독 플랜을 변경하려면 change_plan 값을 전달합니다. purchase.subscription.plan_id 매개변수에서 새 플랜 ID를 지정해야 합니다.
purchase.subscription.product_id
string제품 ID.
purchase.subscription.currency
string구매 시 플랜의 통화, 이를 바탕으로 모든 계산이 수행됩니다.
purchase.subscription.available_plans
array구독권에 대한 데이터가 있는 배열입니다. 오직 이러한 구독권만 결제 UI에 보여집니다.
purchase.subscription.trial_days
integer평가 기간(일)입니다.
purchase.pin_codes
object게임 키에 데이터가 포함된 값입니다.
purchase.pin_codes.currency
string모든 계산이 이루어지는 사항에 기반한, 구매에서 게임 키의 통화입니다.
purchase.pin_codes.codes
array게임 키에 대한 데이터가 포함된 배열입니다.
purchase.pin_codes.codes.digital_content
string판매자 계정으로 설정된 게임의 SKU입니다.
purchase.pin_codes.codes.drm
string게임을 배포하는데 사용되는 DRM 플랫폼으로서 steam, playstation, xbox, uplay, origin, drmfree, gog, epicgames, nintendo_eshop, discord_game_store 혹은 oculus가 될 수 있습니다. 게시자 계정에서 필요한 DRM을 구성했는지 확인하십시오. 이 매개변수가 토큰으로 전달되지 않는 경우 사용자가 결제 인터페이스에서 DRM을 선택할 수 있습니다.
purchase.pin_codes.upgrade
object업그레이드 데이터가 있는 객체입니다.
purchase.pin_codes.upgrade.id_user_history
integer사용자 및 해당 패키지 데이터가 들어있는 입력 항목의 ID입니다.
purchase.pin_codes.upgrade.id
integer업그레이드 ID.
purchase.gift
object기프트에 대한 데이터를 포함하고 있는 객체입니다.
purchase.gift.giver_id
string제공자 ID.
purchase.gift.message
string제공자로부터 전송된 메시지.
purchase.gift.hide_giver_from_receiver
string수신자에게 제공자 ID를 숨길지를 설정합니다. 기본값은 true입니다.
purchase.gift.friends
array친구에 대한 데이터를 포함하고 있는 어레이.
purchase.gift.friends.id
string기프트 수령인 ID.
purchase.gift.friends.name
string기프트 수령인 별칭.
purchase.gift.friends.email
string기프트 수령인 이메일.
purchase.coupon_code
object할인 프로모션 모드 또는 구매에 따른 보너스 정보(오브젝트).
purchase.coupon_code.value
string프로모션 코드값.
purchase.coupon_code.hidden
boolean결제 UI에 입력한 필드 프로모션 코드를 숨깁니다. 기본값은 false입니다.
custom_parameters
object사용자 지정 파라미터입니다. 키와 값을 쌍으로 가진 올바른 JSON 해시여야 합니다.

매개 변수가 잘못된 형식 또는 유형으로 전송되는 경우 토큰이 제공되지 않게 됩니다. 응답으로, JSON 본문에 오류 설명과 함께 422 HTTP 코드를 받게 됩니다. extended_message에서 잘못 전송된 매개 변수가 정확히 무엇인지에 대한 정보가 제공됩니다.

Copy
Full screen
Small screen
{
    "extended_message": {
        "global_errors": [],
        "property_errors": {
            "settings.project_id": [
                "string value found, but an integer is required"
            ]
        }
    }
}

Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
요청
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token

Headers:
  Authorization: Basic <your_authorization_basic_key>
Content-Type: application/json

Body:
  {
  "purchase": {
    "virtual_currency": {
      "quantity": 100
    },
    "virtual_items": {
      "items": [
        {
          "amount": 1,
          "sku": "SKU01"
        }
      ]
    }
  },
  "settings": {
    "currency": "USD",
    "language": "en",
    "project_id": 16184,
    "ui": {
      "components": {
        "virtual_currency": {
          "custom_amount": true
        }
      },
      "desktop": {
        "virtual_item_list": {
          "button_with_price": true,
          "layout": "list"
        }
      },
      "size": "medium"
    }
  },
  "user": {
    "country": {
      "allow_modify": true,
      "value": "US"
    },
    "age": 19,
    "email": {
      "value": "john.smith@mail.com"
    },
    "id": {
      "value": "user_2"
    },
    "name": {
      "value": "John Smith"
    }
  }
}
curl --request POST \
  --url https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
  --header 'authorization: Basic <your_authorization_basic_key>' \
  --header 'content-type: application/json' \
  --data '{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"age":19,"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"age":19,"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}');

$request->setRequestUrl('https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>',
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

payload = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"

headers = {
    'content-type': "application/json",
    'authorization': "Basic <your_authorization_basic_key>"
    }

conn.request("POST", "/merchant/v2/merchants/{merchant_id}/token", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Basic <your_authorization_basic_key>'
request.body = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}");
Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token")
  .post(body)
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "user": {
    "id": {
      "value": "user_2"
    },
    "name": {
      "value": "John Smith"
    },
    "age": 19, 
    "email": {
      "value": "john.smith@mail.com"
    },
    "country": {
      "value": "US",
      "allow_modify": true
    }
  },
  "settings": {
    "project_id": 16184,
    "currency": "USD",
    "language": "en",
    "ui": {
      "size": "medium",
      "desktop": {
        "virtual_item_list": {
          "layout": "list",
          "button_with_price": true
        }
      },
      "components": {
        "virtual_currency": {
          "custom_amount": true
        }
      }
    }
  },
  "purchase": {
    "virtual_currency": {
      "quantity": 100
    },
    "virtual_items": {
      "items": [
        {
          "sku": "SKU01",
          "amount": 1
        }
      ]
    }
  }
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
응답
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}

체크아웃을 통한 구매용 토큰 받기(폐지 예정)

이미 최소 하나 이상의 스토어 모듈을 구성하였고 Commerce API 통합 토글을 게시자 계정의 설정 부분에서 으로 설정한 경우에 이 메소드를 사용하세요. 그렇지 않으면, 체크아웃 지침에 따라 토큰 수신을 구현하세요.

체크아웃 구매를 위해 토큰을 수신할 때 다음 매개변수를 설정하세요.

Notice: 이 API 메소드는 부하가 높을 때 사용할 수 없습니다. 요청의 수가 많은 경우 속도 제한이 적용될 수 있습니다. 이 API 메소드의 속도 제한을 알고 싶은 경우 계정 관리자에게 문의하세요.

HTTP 요청

Copy
Full screen
Small screen
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token

파라미터유형설명
user
object사용자에 대한 데이터가 포함된 개체입니다.
user.id
object게임유저 ID 데이터와 관련된 값입니다. 필수.
user.id.value
string사용자 ID.
user.name
object게임유저 닉네임 데이터와 관련된 값입니다.
user.name.value
string게임유저 닉네임입니다.
user.age
integer사용자 나이.
user.email
object사용자 이메일(오브젝트). user.email 오브젝트는 부정 결제 방지 모델 및 결제 처리 구축에 잇어 없어서는 안 될 중요한 부분입니다. 이는 엑솔라와 결제 시스템 요구 사항 모두에 해당합니다. 이 매개변수를 누락하면 승인률이 낮아질 수 있습니다. 필수.
user.email.value
string사용자 이메일. RFC 822 프로토콜에 따라 유효해야 합니다. 필수.
user.phone
object사용자 전화번호(오브젝트).
user.phone.value
string전화번호.
user.country
object게임유저 국가 데이터와 관련된 값입니다.
user.country.value
stringISO 3166-1 alpha-2 standard에 따른 2자로 된 국가 코드를 사용합니다.
user.country.allow_modify
boolean결제 UI에서 사용자가 국가를 변경할 수 있는지를 설정합니다. 기본값은 false 입니다.
user.attributes
object게임유저 특성 데이터와 관련된 객체로서 아이템 목록을 필터링하는데 사용됩니다. 키값 쌍을 가진 올바른 JSON 해시여야 합니다.
user.steam_id
object게임유저 Steam ID 데이터와 관련된 값입니다.
user.steam_id.value
stringSteam ID입니다.
user.tracking_id
object사용자 추적 ID에 대한 데이터가 포함된 값입니다.
user.tracking_id.value
string고유한 추적 ID(마케팅 캠페인에 사용됨)입니다.
user.public_id.value
string사용자를 고유하게 식별할 수 있고 사용자 ID(이메일, 애칭 등)와 달리 사용자에 대해 알려진 매개 변수입니다. 이 매개 변수는 게임 스토어 외부(예: 캐시 키오스크의 게임 버튼)에서 구매할 수 있을 때 사용됩니다.
user.utm
object트래픽 성향을 나타내는 데이터를 포함한 오브젝트.
user.utm.utm_source
string트래픽 소스.
user.utm.utm_medium
string트래픽 채널(맥락 이해 광고, 언론 광고, 이메일 목록 메시지).
user.utm.utm_campaign
string캠페인 제목. 이 항목은 음차한 캠페인 제목이나 영어로 번역한 캠페인 제목을 포함해야 합니다.
user.utm.utm_term
string캠페인 키워드. 설정된 경우 통계는 특정 검색 쿼리 대신에 광고 타기팅용으로 사용된 키워드에 기반하게 됩니다. Google Analytics에서 지정된 utm_term은 일반 검색어 보고서의 일부입니다.
user.utm.utm_content
string캠페인 구성 요소.
boolean게임유저가 법인인지 여부를 나타냅니다.
object법인 세부 정보가 있는 오브젝트. user.is_legal가 true인 경우 오브젝트와 이에 해당하는 모든 매개변수는 필수입니다.
string법인 전체 이름.
string법인 전체 주소.
string개별 납세자 식별자.
string기업이 속한 국가. ISO 3166-1 alpha-2 standard에 따른 2자로 된 대문자 국가 코드를 사용합니다.
settings
object사용자 지정 프로젝트 설정와 관련된 객체입니다.
settings.external_id
string트랜잭션 외부 ID.
settings.project_id
integer엑솔라 시스템 내의 게임 식별자입니다. 판매자 계정 에서 확인할 수 있습니다. 필수.
settings.language
string인터페이스 언어입니다. 2자리 소문자 언어 코드입니다.
settings.return_url
string결제 후 사용자를 리디렉션할 페이지. 매개 변수 user_id, foreigninvoice, invoice_id, status가 링크에 자동으로 추가됩니다.
settings.redirect_policy
object재지정 정책 설정(객체).
settings.redirect_policy.redirect_conditions
string복귀 URL로 사용자 재지정 시 지불 상태. 이는 none, successful, successful_or_canceled, 혹은 any일 수 있습니다.
settings.redirect_policy.delay
integer사용자가 복귀 URL로 자동 재지정된 이후 지연 시간(초).
settings.redirect_policy.status_for_manual_redirection
string복귀 URL로 사용자 재지정 버튼 지불 상태. 이는 none, successful, successful_or_canceled, 혹은 any일 수 있습니다.
settings.redirect_policy.redirect_button_caption
string수동 재지정 버튼 문구.
settings.currency
string선호하는 결제 통화입니다. 통화의 3자리 정의가 ISO 4217에 따라 사용됩니다.
settings.mode
string결제 프로세스를 테스트하기 위한 sandbox 값을 설정합니다. 이 경우, 결제 UI에 접근하려면 https://sandbox-secure.xsolla.com를 사용합니다.
settings.payment_method
integer결제 수단의 ID입니다.
settings.payment_widget
string결제 위젯. paybycash 또는 giftcard일 수 있습니다. 매개 변수가 설정되면, 사용자는 현금 결제 또는 기프트 카드 위젯으로 각각 리디렉션됩니다.
settings.ui
object인터페이스 설정 데이터와 관련된 값입니다.
settings.ui.theme
string결제 UI 테마. default 또는 default_dark일 수 있습니다.
settings.ui.size
string결제 UI의 크기입니다. 이 매개 변수는 결제 UI의 필요한 크기에 따라 값이 다음과 같을 수 있습니다.
  • small: 결제 UI의 가능한 최소 크기입니다. 창 크기가 엄격히 제한되는 경우 이 값을 사용합니다. (크기: 620 x 630
  • medium: 결제 UI의 권장 크기입니다. 이 값을 사용하여 라이트박스에 결제 UI를 표시합니다. (크기: 740 x 760)
  • large: 새 창 또는 탭에 결제 UI 표시를 위한 최적의 크기입니다. (크기: 820 x 840)
settings.ui.version
string장치 유형입니다. desktop(기본값) 또는 mobile이 가능합니다.
settings.ui.desktop
objectPC 버전의 인터페이스 설정 데이터와 관련된 값입니다.
settings.ui.desktop.header
object헤더 설정 데이터와 관련된 값입니다.
settings.ui.desktop.header.is_visible
boolean결제 UI에 헤더가 표시되는지 여부를 나타냅니다.
booleantrue일 경우, 로고가 헤더에 표시됩니다(먼저 계정 관리자에게 이미지 파일을 제공하세요).
settings.ui.desktop.header.visible_name
boolean프로젝트 이름이 헤더에 표시되는지 여부를 나타냅니다.
settings.ui.desktop.header.visible_purchase
boolean헤더에 구매 설명(purchase.description.value)을 표시할지를 설정합니다. 기본값은 true입니다.
settings.ui.desktop.header.type
string헤더를 표시하는 설정 방식입니다. compact(프로젝트 이름 및 사용자 ID 표지 안 함) 또는 normal (기본값)을 설정할 수 있습니다.
settings.ui.desktop.header.close_button
boolean페이 스테이션 데스크톱에 닫기 버튼을 표시할지를 설정합니다. 이 버튼은 페이 스테이션을 종료하고 settings.return_url 매개 변수에 지정된 URL로 사용자를 리디렉션합니다. 기본값은 false입니다.
settings.ui.header.visible_virtual_currency_balance
boolean결제 UI에서 이 요소를 숨길 수 있는지를 설정합니다. 기본값은 true입니다.
settings.ui.mobile.mode
string사용자는 오직 저장된 결제 방법을 사용해서 결제할 수 있습니다. saved_accounts일 수 있습니다.
settings.ui.mobile.header.close_button
boolean페이 스테이션 모바일에 닫기 버튼을 표시할지를 설정합니다. 이 버튼은 페이 스테이션을 종료하고 settings.return_url 매개 변수에 지정된 URL로 사용자를 리디렉션합니다. 기본값은 false입니다.
boolean모바일 버전의 결제 UI에서 바닥글을 표시하거나 숨길지 여부입니다.
settings.ui.license_url
stringEULA의 링크입니다.
settings.ui.components
object모듈 메뉴 설정 데이터와 관련된 값입니다.
settings.ui.mode
string페이 스테이션의 인터페이스 모드. user_account만 가능합니다. 헤더는 계정 탐색 메뉴만 포함할 수 있으며 사용자는 제품을 선택하거나 결제를 할 수 없습니다. 이 모드는 데스크톱에서만 사용 가능합니다.
settings.ui.user_account
object사용자 계정에 관한 데이터가 담긴 객체.
settings.ui.user_account.info
object내 계정 페이지입니다.
settings.ui.user_account.info.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.user_account.info.enable
boolean하위 메뉴를 표시할지를 설정합니다. 기본값은 false입니다.
settings.ui.user_account.history
object사용자의 ‘기록’ 페이지입니다.
settings.ui.user_account.history.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.user_account.history.enable
boolean하위 메뉴를 표시할지를 설정합니다. 기본값은 false입니다.
settings.ui.user_account.payment_accounts
object내 결제 계정 페이지입니다.
settings.ui.user_account.payment_accounts.order
integer모듈 메뉴에서 게임 아이템의 위치입니다.
settings.ui.user_account.payment_accounts.enable
boolean하위 메뉴를 표시할지를 설정합니다. 기본값은 false입니다.
settings.ui.user_account.subscriptions
object구독 관리 페이지입니다.
settings.ui.user_account.subscriptions.enable
boolean하위 메뉴를 표시할지를 설정합니다. 기본값은 false입니다.
purchase
object구매 데이터 관련 값입니다.
purchase.checkout
object결제 파라미터 데이터와 관련된 값입니다.
purchase.checkout.currency
string구매 통화입니다. 통화의 3자리 정의가 ISO 4217에 따라 사용됩니다.
purchase.checkout.amount
float구매 금액입니다.
purchase.description
object구매 설명 데이터와 관련된 값입니다.
purchase.description.value
string지불 UI 및 이메일 영수증을 포함한 일반 구매 묘사입니다. 각 아이템을 개별적으로 넘기려면, purchase.description.items 배열의 파라미터를 사용하세요.
purchase.description.items
array of objects아이템 배열입니다.
purchase.description.items.name
string아이템 이름입니다.
purchase.description.items.image_url
string아이템 코인용 링크입니다.
purchase.description.items.description
string구매 안의 아이템 묘사입니다.
purchase.description.items.price
object물체에 아이템 가격이 있습니다.
purchase.description.items.price.amount
string아이템 가격입니다.
purchase.description.items.price.amount_before_discount
string할인 전 상품 가격.
purchase.description.items.quantity
integer구매 안의 아이템의 양입니다.
purchase.description.items.is_bonus
boolean아이템이 무료이며 보너스로 이용 가능한지를 설정합니다. 기본값은 false입니다.
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
요청
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token

Headers:
Authorization: Basic <your_authorization_basic_key>
Content-Type: application/json
Body:
{
  "user": {
    "id": {
      "value": "user_2",
      "hidden": true
    },
    "age": 19,
    "email": {
      "value": "john.smith@mail.com"
    },
    "country": {
      "value": "US",
      "allow_modify": true
    }
  },
  "settings": {
    "project_id": 1234,
    "language": "en",
    "currency": "USD"
  },
  "purchase": {
    "checkout": {
      "currency": "USD",
      "amount": 20
    },
    "description": {
      "value": "Purchase",
      "items": [
        {
          "name": "Rocket",
          "quantity": 5,
          "price": {
            "amount": "2",
            "amount_before_discount": "10.5"
          },
          "description": "This is a rocket."
        },
        {
          "name": "Sword",
          "quantity": 5,
          "price": {
            "amount": "2"
          },
          "description": "This is a sword."
        }
      ]
    }
  }
}
curl --request POST \
  --url https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
  --header 'authorization: Basic <your_authorization_basic_key>' \
  --header 'content-type: application/json' \
  --data '{"user":{"id":{"value":"user_2","hidden":true},"age":19,"email":{"value":"john.smith@mail.com"},"country":{
"value":"US","allow_modify":true}},"settings":{"project_id":1234,"language":"en","currency":"USD"},"purchase":{"checkout":{"currency":"USD","amount":20},"description":{"value":"Purchase","items":[{"name": "Rocket","quantity":5,"price":{"amount":"2","amount_before_discount":"10.5"},"description":"This is a rocket."},{"name":"Sword","quantity":5,"price":{"amount":"2"},"description": "This is a sword."}]}}}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"user":{"id":{"value":"user_2","hidden":true},"age":19,"email":{"value":"john.smith@mail.com"},"country":{
"value":"US","allow_modify":true}},"settings":{"project_id":1234,"language":"en","currency":"USD"},"purchase":{"checkout":{"currency":"USD","amount":20},"description":{"value":"Purchase","items":[{"name": "Rocket","quantity":5,"price":{"amount":"2","amount_before_discount":"10.5"},"description":"This is a rocket."},{"name":"Sword","quantity":5,"price":{"amount":"2"},"description": "This is a sword."}]}}}');

$request->setRequestUrl('https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>',
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"user\":{\"id\":{\"value\:\"user_2\",\"hidden\":true},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{
\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":1234,\"language\":\"en\",\"currency\":\"USD\"},\"purchase\":{\"checkout\":{\"currency\":\"USD\",\"amount\":20},\"description\":{\"value\":\"Purchase\",\"items\":[{\"name\": \"Rocket\",\"quantity\":5,\"price\":{\"amount\":\"2\",\"amount_before_discount\":\"10.5\"},\"description\":\"This is a rocket.\"},{\"name\":\"Sword\",\"quantity\":5,\"price\":{\"amount\":\"2\"},\"description\": \"This is a sword.\"}]}}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

payload = "{\"user\":{\"id\":{\"value\:\"user_2\",\"hidden\":true},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{
\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":1234,\"language\":\"en\",\"currency\":\"USD\"},\"purchase\":{\"checkout\":{\"currency\":\"USD\",\"amount\":20},\"description\":{\"value\":\"Purchase\",\"items\":[{\"name\": \"Rocket\",\"quantity\":5,\"price\":{\"amount\":\"2\",\"amount_before_discount\":\"10.5\"},\"description\":\"This is a rocket.\"},{\"name\":\"Sword\",\"quantity\":5,\"price\":{\"amount\":\"2\"},\"description\": \"This is a sword.\"}]}}}"

headers = {
    'content-type': "application/json",
    'authorization': "Basic <your_authorization_basic_key>"
    }

conn.request("POST", "/merchant/v2/merchants/{merchant_id}/token", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Basic <your_authorization_basic_key>'
request.body = "{\"user\":{\"id\":{\"value\:\"user_2\",\"hidden\":true},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{
\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":1234,\"language\":\"en\",\"currency\":\"USD\"},\"purchase\":{\"checkout\":{\"currency\":\"USD\",\"amount\":20},\"description\":{\"value\":\"Purchase\",\"items\":[{\"name\": \"Rocket\",\"quantity\":5,\"price\":{\"amount\":\"2\",\"amount_before_discount\":\"10.5\"},\"description\":\"This is a rocket.\"},{\"name\":\"Sword\",\"quantity\":5,\"price\":{\"amount\":\"2\"},\"description\": \"This is a sword.\"}]}}}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"user\":{\"id\":{\"value\:\"user_2\",\"hidden\":true},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{
\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":1234,\"language\":\"en\",\"currency\":\"USD\"},\"purchase\":{\"checkout\":{\"currency\":\"USD\",\"amount\":20},\"description\":{\"value\":\"Purchase\",\"items\":[{\"name\": \"Rocket\",\"quantity\":5,\"price\":{\"amount\":\"2\",\"amount_before_discount\":\"10.5\"},\"description\":\"This is a rocket.\"},{\"name\":\"Sword\",\"quantity\":5,\"price\":{\"amount\":\"2\"},\"description\": \"This is a sword.\"}]}}}");
Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token")
  .post(body)
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
"user": {
    "id": {
      "value": "user_2",
      "hidden": true
    },
    "age": 19,
    "email": {
      "value": "john.smith@mail.com"
    },
    "country": {
      "value": "US",
      "allow_modify": true
    }
  },
  "settings": {
    "project_id": 1234,
    "language": "en",
    "currency": "USD"
  },
  "purchase": {
    "checkout": {
      "currency": "USD",
      "amount": 20
    },
    "description": {
      "value": "Purchase",
      "items": [
        {
          "name": "Rocket",
          "quantity": 5,
          "price": {
            "amount": "2",
            "amount_before_discount": "10.5"
          },
          "description": "This is a rocket."
        },
        {
          "name": "Sword",
          "quantity": 5,
          "price": {
            "amount": "2"
          },
          "description": "This is a sword."
        }
      ]
    }
  }
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
응답
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}

추가 매개 변수 목록

부정 결제 방지 필터 구성을 위해 custom_parameters 객체의 토큰에서 추가 매개 변수를 전달할 수 있습니다. 권장 매개 변수는 아래 표에 제시되어 있습니다. 필요에 따라 목록을 확장할 수 있습니다.

레시피 보기

파라미터유형설명
registration_date
stringISO 8601에 따른 계정 생성일.
total_hours
integer총 인게임 시간.
total_characters
integer인게임 캐릭터 수.
social_networks_added
boolean플레이어가 소셜 미디어 프로필을 연결했는지 여부.
profile_image_added
boolean플레이어가 프로필 이미지를 업로드했는지 여부.
active_date
stringISO 8601에 따른 마지막 확인 날짜.
total_friends
integer친구의 수.
additional_verification
boolean플레이어가 계정 확인 절차를 사용하고 있는지 여부.
win_rate
integer승률.
last_change_password_date
stringISO 8601에 따른 마지막 암호 변경 날짜.
chat_activity
boolean플레이어의 채팅 기능 사용 여부.
forum_activity
boolean플레이어의 포럼 기능 사용 여부.
total_bans
integer플레이어가 채팅/포럼에서 금지된 횟수.
profile_completed
boolean플레이어가 프로필에 추가 정보를 추가했는지 여부.
notifications_enabled
boolean플레이어가 알림을 활성화했는지 여부.
user_level
integer플레이의 레벨, 명성 또는 순위.
karma_points
integer플레이어의 카르마.
total_sum
float총 결제 금액.
non_premium_currency
float프리미엄이 아닌 통화의 금액.
total_game_events
integer플레이어가 참여했던 인게임 이벤트의 수.
total_gifts
integer플레이어가 전송/수신한 인게임 선물의 수.
tutorial_completed
boolean플레이어가 게임 튜토리얼을 완료했는지 여부.
completed_tasks
integer완료한 임무/목표의 수.
items_used
boolean플레이어가 구매한 인게임 아이템을 사용하고 있는지 여부.
pvp_activity
boolean플레이어가 PvP 전투에 참여하고 있는지 여부.
total_clans
integer플레이어가 가입한 클랜의 수.
unlocked_achievements
integer잠금을 해제한 업적의 수.
total_inventory_value
float인벤토리의 총 가치(인게임 통화).
character_customized
boolean플레이어가 자신의 캐릭터를 맞춤 설정했는지 여부.
session_time
stringISO 8601에 따른 평균 세션 시간.

직접 결제

귀하의 앱을 위한 토큰화 설정에 대해 더 자세히 알아보려면 페이 스테이션 문서를 참조하세요.

저장된 결제 계정 나열

사용자의 저장된 결제 계정을 나열합니다.

HTTP 요청

Copy
Full screen
Small screen
GET https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts

파라미터유형설명
project_id
integer프로젝트 ID.
user_id
string사용자 ID.
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
요청
GET https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts

Headers:
  Authorization: Basic <your_authorization_basic_key>
curl --request GET \
  --url https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts \
  --header 'authorization: Basic <your_authorization_basic_key> '
<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key> '
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Basic <your_authorization_basic_key> ");
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

headers = { 'authorization': "Basic <your_authorization_basic_key> " }

conn.request("GET", "/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic <your_authorization_basic_key> '

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts")
  .get()
  .addHeader("authorization", "Basic <your_authorization_basic_key> ")
  .build();

Response response = client.newCall(request).execute();
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key> ");

xhr.send(data);
응답
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]

저장한 계정으로 청구

저장된 결제 계정을 사용하여 청구합니다.

Notice: 이 API 메소드는 부하가 높을 때 사용할 수 없습니다. 요청의 수가 많은 경우 속도 제한이 적용될 수 있습니다. 이 API 메소드의 속도 제한을 알고 싶은 경우 계정 관리자에게 문의하세요.

HTTP 요청

Copy
Full screen
Small screen
POST https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}

파라미터유형설명
project_id
integer프로젝트 ID. 필수.
user_id
string사용자 ID. 필수.
type
string결제 계정 유형. 필수. 가능한 값: card — 은행 카드, amazon — Amazon Pay, skrill — Skrill Digital Wallet, yandex — Yandex.Money, paymasterwebmoney — WebMoney, paypal — PayPal, qiwi — QIWI 지갑.

HTTP 200 성공 상태 코드를 받은 경우 요청은 트랜잭션 ID와 그 상태를 반환합니다. 가능한 상태:
  • processing — 트랜잭션이 처리 중인 상태
  • done — 트랜잭션이 성공적으로 처리된 상태
  • error — 트랜잭션 처리 중에 오류가 발생한 상태
  • canceled — 트랜잭션이 취소된 상태
  • held — 사용자 계정의 자금이 보류 중인 상태
HTTP 422 오류 상태 코드를 받은 경우, 자세한 설명과 함께 오류 코드를 요청이 반환합니다.
account_id
integer엑솔라 시스템의 저장된 계정에 대한 ID입니다. 필수.
user
object사용자에 대한 데이터가 포함된 개체입니다.
user.ip
string사용자 IP입니다. 필수.
user.name
string사용자 이름.
object법인 세부 정보가 있는 오브젝트.
string법인 전체 이름.
string법인 전체 주소.
string개별 납세자 식별자.
string기업이 속한 국가. ISO 3166-1 alpha-2 standard에 따른 2자로 된 대문자 국가 코드를 사용합니다.
purchase
object구매 데이터 관련 값입니다.
purchase.virtual_currency
object게임머니 데이터와 관련된 값입니다.
purchase.virtual_currency.quantity
float게임머니 구매량입니다.
purchase.checkout
object결제 파라미터 데이터와 관련된 값입니다.
purchase.checkout.currency
string구매 통화입니다. 통화의 3자리 정의가 ISO 4217에 따라 사용됩니다.
purchase.checkout.amount
float구매 금액입니다.
settings
object구매 설정에 대한 데이터가 포함된 개체입니다.
settings.mode
string결제 프로세스를 테스트하기 위한 sandbox 값을 설정합니다. 실제 결제의 경우 이 매개 변수는 제거되어야 합니다.
custom_parameters
string사용자 지정 파라미터입니다. 키와 값을 쌍으로 가진 올바른 JSON 해시여야 합니다.
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
요청
POST https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}

Headers:
  Authorization: Basic <your_authorization_basic_key>
Content-Type: application/json

Body:
  {
  "card": {
    "cvn": "123"
  },
  "purchase": {
    "description": {
      "value": "currency purchase"
    },
    "virtual_currency": {
      "quantity": 100
    }
  },
  "settings": {
    "currency": "USD",
    "external_id": "ext123",
    "save": true
  },
  "user": {
    "id": "user123",
    "ip": "111.11.11.11",
    "name": "John Smith",
    "legal" : {
      "name": "My Awesome Company",
      "address": "17 Crown Street London SW2 0JW United Kingdom",
      "vat_id": "GB111111111",
      "country": "GB"
  }
}
curl --request POST \
  --url https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id} \
  --header 'authorization: Basic <your_authorization_basic_key>' \
  --header 'content-type: application/json' \
  --data '{"user":{"id":"user123","ip":"111.11.11.11","name":"John Smith","legal":{"name":"My Awesome Company","address":"17 Crown Street London SW2 0JW United Kingdom","vat_id":"GB111111111","country":" GB"}},"card":{"cvn":"123"},"purchase":{"virtual_currency":{"quantity":100},"description":{"value":"currency purchase"}},"settings":{"save":true,"currency":"USD","external_id":"ext123"}}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"user":{"id":"user123","ip":"111.11.11.11","name":"John Smith","legal":{"name":"My Awesome Company","address":"17 Crown Street London SW2 0JW United Kingdom","vat_id":"GB111111111","country":" GB"}},"card":{"cvn":"123"},"purchase":{"virtual_currency":{"quantity":100},"description":{"value":"currency purchase"}},"settings":{"save":true,"currency":"USD","external_id":"ext123"}}');

$request->setRequestUrl('https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>',
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

payload = "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}"

headers = {
    'content-type': "application/json",
    'authorization': "Basic <your_authorization_basic_key>"
    }

conn.request("POST", "/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Basic <your_authorization_basic_key>'
request.body = "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}");
Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}")
  .post(body)
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "user": {
    "id": "user123",
    "ip": "111.11.11.11",
    "name": "John Smith",
    "legal" : {
      "name": "My Awesome Company",
      "address": "17 Crown Street London SW2 0JW United Kingdom",
      "vat_id": "GB111111111",
      "country": "GB"
    },
  },
  "card": {
    "cvn": "123"
  },
  "purchase": {
    "virtual_currency": {
      "quantity": 100
    },
    "description": {
      "value": "currency purchase"
    }
  },
  "settings": {
    "save": true,
    "currency": "USD",
    "external_id": "ext123"
  }
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
응답
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}

저장된 결제 계정 삭제

저장된 결제 계정 삭제.

HTTP 요청

Copy
Full screen
Small screen
DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}

파라미터유형설명
project_id
integer프로젝트 ID.
user_id
string사용자 ID.
type
string결제 계정 유형. 가능한 값: card — 은행 카드, amazon — Amazon Pay, skrill — Skrill Digital Wallet, yandex — Yandex.Money, paymasterwebmoney — WebMoney, paypal — PayPal, qiwi — QIWI 지갑.

HTTP 200 성공 상태 코드를 받은 경우 요청은 트랜잭션 ID와 그 상태를 반환합니다. 가능한 상태:
  • processing — 트랜잭션이 처리 중인 상태
  • done — 트랜잭션이 성공적으로 처리된 상태
  • error — 트랜잭션 처리 중에 오류가 발생한 상태
  • canceled — 트랜잭션이 취소된 상태
  • held — 사용자 계정의 자금이 보류 중인 상태
HTTP 422 오류 상태 코드를 받은 경우, 자세한 설명과 함께 오류 코드를 요청이 반환합니다.
account_id
integer엑솔라 시스템의 저장된 계정에 대한 ID입니다.
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
요청
DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}

Headers:
  Authorization: Basic <your_authorization_basic_key>
curl --request DELETE \
  --url https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id} \
  --header 'authorization: Basic <your_authorization_basic_key>'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}');
$request->setRequestMethod('DELETE');
$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}");
var request = new RestRequest(Method.DELETE);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

headers = { 'authorization': "Basic <your_authorization_basic_key>" }

conn.request("DELETE", "/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)
request["authorization"] = 'Basic <your_authorization_basic_key>'

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}")
  .delete(null)
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
응답


이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
이 페이지 평가
이 페이지 평가
개선해야 할 점이 있을까요?

답하기 원하지 않습니다

의견을 보내 주셔서 감사드립니다!
마지막 업데이트: 2018년 5월 28일

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