개요
본 섹션은 페이 스테이션을 사용하여 작업하는 방법을 설명합니다. API 방식을 가져오려면 기본 인증을 사용하십시오. 결제 UI를 열고 안전한 결제를 활성화하려면 토큰을 가져와야 합니다.
Endpoint 경로: https://api.xsolla.com.
페이 스테이션 열기
엑솔라 팀은 개발자 웹 사이트와 결제 인터페이스의 연동을 단순화하기 위한 스크립트를 제공합니다. 스크립트는 저희 CDN에 위치해 있으며 이곳 에서 구할 수 있습니다. 스크립트를 개발자 웹 사이트와 연동하려면 이 URL을 사용하십시오. 자세한 내용을 알아보려면 Github 저장소 를 확인해 보십시오.
스크립트 초기화 파라미터 목록:
파라미터 | 유형 | 설명 |
---|---|---|
access_token | string | 토큰. API에 의해 수신됩니다. 필수. |
sandbox | boolean | True로 설정하여 결제 프로세스를 테스트합니다. sandbox-secure.xsolla.com이 secure.xsolla.com 대신 사용됩니다. |
lightbox | object | 옵션 목록 관련 객체로서, Lightbox 열기에 사용할 수 있습니다(PC 버전) |
lightbox.width | string | Lightbox 프레임의 너비입니다. null인 경우, 페이 스테이션 너비에 따라 달라집니다. 기본값은 null입니다. |
lightbox.height | string | Lightbox 프레임 높이입니다. null인 경우, 페이 스테이션 높이에 따라 달라집니다. 기본값은 100%입니다. |
lightbox.zIndex | integer | 속성에 의해 수직 스태킹 순서가 제어됩니다. 기본값은 1000입니다. |
lightbox.overlayOpacity | integer | 오버레이의 불투명도(0~1)입니다. 기본값은 .6입니다. |
lightbox.overlayBackground | string | 오버레이의 배경입니다. 기본 값은 #000000입니다. |
lightbox.modal | boolean | true인 경우 Lightbox 프레임을 닫을 수 없습니다. 기본값은 false입니다. |
lightbox.closeByClick | boolean | true인 경우 오버레이를 클릭하면 Lightbox가 닫힙니다. 기본값은 true입니다. |
lightbox.closeByKeyboard | boolean | true인 경우 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 링크를 이용하십시오.
테스트 목적을 위해 다음 URL을 사용하십시오 https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN.
토큰
보다 안전한 결제를 위해 엑솔라 API는 결제 페이지에서 직접 HTTP GET 요청을 통해 데이터를 수신하는 대신 결제 파라미터 목록과 토큰을 사용합니다. 결제 페이지를 호출하기 전에 새 토큰을 가져와야 합니다. 토큰의 유효기간은 24시간.
토큰 가져오기
엑솔라는 어떠한 게임유저 파라미터로도 토큰을 생성할 수 있게 제공합니다. 개발자가 이 파라미터를 전송하면 결제 후 파라미터가 수신됩니다. 토큰에는 모든 게임유저 파라미터가 포함되어 있습니다.
HTTP 요청
- http
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.email | object | 사용자 이메일(오브젝트). user.email 오브젝트는 부정 결제 방지 모델 및 결제 처리 구축에 잇어 없어서는 안 될 중요한 부분입니다. 이는 엑솔라와 결제 시스템 요구 사항 모두에 해당합니다. 이 매개변수를 누락하면 승인률이 낮아질 수 있습니다. 필수. |
user.email.value | string | 사용자 이메일. RFC 822 프로토콜에 따라 유효해야 합니다. 필수. |
user.phone | object | 사용자 전화번호(오브젝트). |
user.phone.value | string | 전화번호. |
user.country | object | 게임유저 국가 데이터와 관련된 값입니다. |
user.country.value | string | ISO 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 | string | Steam 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 | 캠페인 구성 요소. |
user.is_legal | boolean | 게임유저가 법인인지 여부를 나타냅니다. |
user.legal | object | 법인 세부 정보가 있는 오브젝트. user.is_legal가 ‘true’인 경우 오브젝트와 이에 해당하는 모든 매개변수는 필수입니다. |
user.legal.name | string | 법인 전체 이름. |
user.legal.address | string | 법인 전체 주소. |
user.legal.vat_id | string | 개별 납세자 식별자. |
user.legal.country | 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.currency | string | 선호하는 결제 통화입니다. 통화의 3자리 정의가 ISO 4217에 따라 사용됩니다. |
settings.mode | string | 결제 프로세스를 테스트하려면 sandbox로 설정합니다. 이 경우 https://sandbox-secure.xsolla.com을 사용해 테스트 결제 UI에 액세스합니다. |
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의 필요한 크기에 따라 값이 다음과 같을 수 있습니다. |
settings.ui.version | string | 장치 유형입니다. desktop(기본값) 또는 mobile이 가능합니다. |
settings.ui.desktop | object | PC 버전의 인터페이스 설정 데이터와 관련된 값입니다. |
settings.ui.desktop.header | object | 헤더 설정 데이터와 관련된 값입니다. |
settings.ui.desktop.header.is_visible | boolean | 결제 UI에 헤더가 표시되는지 여부를 나타냅니다. |
settings.ui.desktop.header.visible_logo | boolean | true일 경우, 로고가 헤더에 표시됩니다(먼저 계정 관리자에게 이미지 파일을 제공하세요). |
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 | boolean | true인 경우 및 사용자의 현지 통화가 구독 플랜의 통화와 다른 경우, 사용자는 가격을 현지 통화 및 기본 통화 두 가지 모두로 볼 수 있습니다. |
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 | boolean | true인 경우, 가격이 버튼에 표시됩니다. 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 | boolean | true인 경우, 가격이 버튼에 표시됩니다. 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입니다. |
settings.ui.mobile.footer.is_visible | boolean | 모바일 버전의 결제 UI에서 바닥글을 표시하거나 숨길지 여부입니다. |
settings.ui.license_url | string | EULA의 링크입니다. |
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에서 잘못 전송된 매개 변수가 정확히 무엇인지에 대한 정보가 제공됩니다.
- http
{
"extended_message": {
"global_errors": [],
"property_errors": {
"settings.project_id": [
"string value found, but an integer is required"
]
}
}
}
- http
- curl
- php
- C#
- python
- ruby
- java
- js
POST https://api.xsolla.com/merchant/v1/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"
},
"email": {
"value": "john.smith@mail.com"
},
"id": {
"value": "user_2"
},
"name": {
"value": "John Smith"
}
}
}
curl --request POST \
--url https://api.xsolla.com/merchant/v1/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"},"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"},"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/v1/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/v1/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\"},\"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\"},\"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/v1/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/v1/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\"},\"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\"},\"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/v1/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"
},
"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/v1/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 | string | ISO 8601에 따른 계정 생성일. |
total_hours | integer | 총 인게임 시간. |
total_characters | integer | 인게임 캐릭터 수. |
social_networks_added | boolean | 플레이어가 소셜 미디어 프로필을 연결했는지 여부. |
profile_image_added | boolean | 플레이어가 프로필 이미지를 업로드했는지 여부. |
active_date | string | ISO 8601에 따른 마지막 확인 날짜. |
total_friends | integer | 친구의 수. |
additional_verification | boolean | 플레이어가 계정 확인 절차를 사용하고 있는지 여부. |
win_rate | integer | 승률. |
last_change_password_date | string | ISO 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 | string | ISO 8601에 따른 평균 세션 시간. |
직접 결제
귀하의 앱을 위한 토큰화 설정에 대해 더 자세히 알아보려면 페이 스테이션 문서를 참조하세요.
저장된 결제 계정 나열
사용자의 저장된 결제 계정을 나열합니다.
HTTP 요청
- http
GET https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts
파라미터 | 유형 | 설명 |
---|---|---|
project_id | integer | 프로젝트 ID. |
user_id | string | 사용자 ID. |
- http
- curl
- php
- C#
- python
- ruby
- java
- js
GET https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts
Headers:
Authorization: Basic <your_authorization_basic_key>
curl --request GET \
--url https://api.xsolla.com/merchant/v1/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/v1/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/v1/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/v1/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/v1/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/v1/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/v1/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"
}
]
저장한 계정으로 청구
저장된 결제 계정을 사용하여 청구합니다.
HTTP 요청
- http
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와 그 상태를 반환합니다. 가능한 상태:
|
account_id | integer | 엑솔라 시스템의 저장된 계정에 대한 ID입니다. 필수. |
user | object | 사용자에 대한 데이터가 포함된 개체입니다. |
user.ip | string | 사용자 IP입니다. 필수. |
user.name | string | 사용자 이름. |
user.legal | object | 법인 세부 정보가 있는 오브젝트. |
user.legal.name | string | 법인 전체 이름. |
user.legal.address | string | 법인 전체 주소. |
user.legal.vat_id | string | 개별 납세자 식별자. |
user.legal.country | 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 해시여야 합니다. |
- http
- curl
- php
- C#
- python
- ruby
- java
- js
POST https://api.xsolla.com/merchant/v1/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/v1/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/v1/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/v1/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/v1/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/v1/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/v1/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/v1/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 요청
- http
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와 그 상태를 반환합니다. 가능한 상태:
|
account_id | integer | 엑솔라 시스템의 저장된 계정에 대한 ID입니다. |
- http
- curl
- php
- C#
- python
- ruby
- java
- js
DELETE https://api.xsolla.com/merchant/v1/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/v1/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/v1/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/v1/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/v1/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/v1/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/v1/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/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");
xhr.send(data);