스토어 API v2.0

개요

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

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

스토어 UI

스토어 열기

다음 링크를 사용하여 새 창에서 스토어 UI를 엽니다. https://secure.xsolla.com/paystation2/?access_token=ACCESS_TOKEN, 여기에서 ACCESS_TOKENAPI의해 입수한 토큰입니다.

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

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

테스트 카드 목록

샌드박스 내에서 모의 결제를 해 볼 수 있는 카드는 다음과 같습니다.

카드 3-D Secure
카드 번호: 4111111111111111
만료 날짜: 12/20
CVV2: 123
카드 유형: VISA
아니
카드 번호: 5555555555554444
만료 날짜: 11/19
CVV2: 321
카드 유형: MasterCard
아니
카드 번호: 4000000000000010
만료 날짜: 12/20
CVV2: 123
카드 유형: VISA
카드 번호: 5200000000000114
만료 날짜: 11/19
CVV2: 321
카드 유형: MasterCard
카드 번호: 6759649826438453
만료 날짜: 12/25
CVV2: 321
카드 유형: Maestro

또한, 다음 데이터를 사용해 트랜잭션 거부를 시뮬레이션해 볼 수 있습니다.

카드 3-D Secure 설명
카드 번호: 4000000000000002
만료 날짜: 12/20
CVV2: 123
카드 유형: VISA
아니 불충분 한 자금
카드 번호: 5200000000000007
만료 날짜: 11/19
CVV2: 321
카드 유형: MasterCard
아니 불충분 한 자금
카드 번호: 4000000000000036
만료 날짜: 12/20
CVV2: 123
카드 유형: VISA
거부 됨
카드 번호: 5200000000000031
만료 날짜: 11/19
CVV2: 321
카드 유형: MasterCard
거부 됨

오류 목록

코드 설명
0004-0001 만료되었거나 올바르지 않은 토큰.
0004-0008 잘못된 URL (secure.xsolla.com에서 샌드박스 모드 또는 샌드박스-secure.xsolla.com에서 라이브 모드로 접근을 시도함).
0002-0004 동의서에 서명하지 않음.
0004-0010 금지된 토큰리스 통합.
0010-0001 패키지를 찾지 못함.
0010-0003 패키지에 DRM이 설정되지 않음.
1000-0003 해당 프로젝트에 대하여 활성화된 모듈이 없음.

가상 머니

패키지 가져오기

프로젝트 게임머니 설정을 가져옵니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_currency

파라미터 Type 설명
project_id
integer 프로젝트 ID.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->GetProjectVirtualCurrencySettings(array(
    'project_id' => PROJECT_ID
));
GET /merchant/v2/projects/{project_id}/virtual_currency HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_currency' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    'id' => 1,
    'vc_name' =>
        array (
            'en' => 'Golden Coins'
        ),
    'base' =>
        array (
            'USD' => 0.04,
            'EUR' => 0.03
        ),
    'default_currency' => 'USD',
    'min' => 0,
    'max' => 0,
    'is_currency_discrete' => true,
    'allow_user_sum' => true,
    'packets' =>
        array (
            'USD' =>
                array (
                    array (
                        'id' => 1,
                        'sku' => 'vc_usd',
                        'amount' => 100,
                        'price' => 10,
                        'image_url' => '//images.storage.com/some_image',
                        'description' =>
                            array (
                                'en' => 'Standard Package'
                            ),
                        'label' =>
                            array (
                                'en' => 'Standard Package'
                            ),
                        'bonus' => 0,
                        'advertisement_type' => 'recommended'
                        'enabled' => true
                    )
                ),
            'EUR' =>
                array (
                    array (
                        'id' => 2,
                        'sku' => 'vc_eur',
                        'amount' => 80,
                        'price' => 5,
                        'image_url' => null,
                        'description' =>
                            array (
                                'en' => 'Standard Package'
                            ),
                        'label' =>
                            array (
                                'en' => 'Standard Package'
                            ),
                        'bonus' => 0,
                        'advertisement_type' => 'recommended'
                        'enabled' => true
                    )
                )
        ),
    'type' => 'packets',
);
HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 1,
    "vc_name": {
        "en": "Golden Coins"
    },
    "base": {
        "USD": 0.04,
        "EUR": 0.03
    },
    "default_currency": "USD",
    "min": 0,
    "max": 0,
    "is_currency_discrete": true,
    "allow_user_sum": true,
    "packets": {
        "USD": [
            {
                "id": 1,
                "sku": "vc_usd",
                "amount": 100,
                "price": 10,
                "image_url": "//images.storage.com/some_image",
                "description": {
                    "en": "Standard Package"
                },
                "label": {
                    "en": "Standard Package"
                },
                "bonus": 0,
                "advertisement_type": "recommended",
                "enabled": true
            }
        ],
        "EUR": [
            {
                "id": 2,
                "sku": "vc_eur",
                "amount": 80,
                "price": 5,
                "image_url": null,
                "description": {
                    "en": "Standard Package"
                },
                "label": {
                    "en": "Standard Package"
                },
                "bonus": 0,
                "advertisement_type": "recommended",
                "enabled": true
            }
        ]
    },
    "type": "packets"
}
{
    "id": 1,
    "vc_name": {
        "en": "Golden Coins"
    },
    "base": {
        "USD": 0.04,
        "EUR": 0.03
    },
    "default_currency": "USD",
    "min": 0,
    "max": 0,
    "is_currency_discrete": true,
    "allow_user_sum": true,
    "packets": {
        "USD": [
            {
                "id": 1,
                "sku": "vc_usd",
                "amount": 100,
                "price": 10,
                "image_url": "//images.storage.com/some_image",
                "description": {
                    "en": "Standard Package"
                },
                "label": {
                    "en": "Standard Package"
                },
                "bonus": 0,
                "advertisement_type": "recommended",
                "enabled": true
            }
        ],
        "EUR": [
            {
                "id": 2,
                "sku": "vc_eur",
                "amount": 80,
                "price": 5,
                "image_url": null,
                "description": {
                    "en": "Standard Package"
                },
                "label": {
                    "en": "Standard Package"
                },
                "bonus": 0,
                "advertisement_type": "recommended",
                "enabled": true
            }
        ]
    },
    "type": "packets"
}

패키지 업데이트

프로젝트 게임머니 설정을 업데이트합니다.

HTTP 요청

PUT https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_currency

파라미터 유형 설명
project_id
integer 프로젝트 ID.
vc_name
array of strings

제품 이름입니다. 값은 : 쌍으로 구성되어 있습니다.

base
array 기본 제품 통화의 Json 개체입니다. 여기서 키는 통화(ISO 4217)에 따라 통화의 3자 정의가 사용됨)이고 값은 해당 통화 금액입니다.
default_currency
string 기본 통화입니다.
min
float 최소 구매 금액입니다.
max
float 최대 구매 금액입니다.
is_currency_discrete
boolean 게임머니에 센트를 사용할 수 있는지 여부입니다.
allow_user_sum
boolean 패키지 간에 어느 금액이든지 지불하도록 허용되는지 여부입니다.
amount
float 패키지의 게임머니 금액입니다.
sku
string 게임머니 패키지의 고유한 ID입니다.
price
float 게임머니 패키지 가격입니다.
image_url
string 이미지의 URL입니다.
description
array of strings

지역화된 패키지 이름이 포함된 배열입니다. 값은 : 쌍으로 구성되어 있습니다.

label
array of strings

지역화된 패키지 레이블이 포함된 배열입니다. 값은 : 쌍으로 구성되어 있습니다.

bonus
float 패키지에 대한 할인율 금액입니다.
advertisement_type
string 게임머니 패키지에 대한 레이블 유형입니다. 'recommended', 'best_deal', 'special_offer' 또는 null일 수 있습니다.
enabled
boolean 게임머니 패키지가 사용되는지 여부입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->UpdateProjectVirtualCurrencySettings(array(
    'project_id' => PROJECT_ID,
    'request' => array (
         'vc_name' =>
             array (
                 'en' => 'Golden Coins'
             ),
         'base' =>
             array (
                 'USD' => 0.04,
                 'EUR' => 0.02,
             ),
         'default_currency' => 'USD',
         'min' => 0,
         'max' => 0,
         'is_currency_discrete' => true,
         'allow_user_sum' => true,
         'packets' =>
             array (
                 'USD' =>
                     array (
                         array (
                             'id' => 1,
                             'sku' => 'vc_usd',
                             'amount' => 100,
                             'price' => 10,
                             'image_url' => '//images.storage.com/some_image',
                             'description' =>
                                 array (
                                     'en' => 'Standard Package'
                                 ),
                             'label' =>
                                 array (
                                     'en' => 'Standard Package'
                                 ),
                             'bonus' => 0,
                             'advertisement_type' => 'recommended'
                             'enabled' => true
                         )
                     ),
                 'EUR' =>
                     array (
                         array (
                             'id' => 2,
                             'sku' => 'vc_eur',
                             'amount' => 80,
                             'price' => 5,
                             'image_url' => null,
                             'description' =>
                                 array (
                                     'en' => 'Standard Package'
                                 ),
                             'label' =>
                                 array (
                                     'en' => 'Standard Package'
                                 ),
                             'bonus' => 0,
                             'advertisement_type' => 'recommended'
                             'enabled' => true
                         )
                     )
             ),
         'type' => 'packets',
     )
));
PUT /merchant/v2/projects/{project_id}/virtual_currency HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
    "vc_name": {
        "en": "Golden Coins"
    },
    "base": {
        "USD": 0.04,
        "EUR": 0.03
    },
    "default_currency": "USD",
    "min": 0,
    "max": 0,
    "is_currency_discrete": true,
    "allow_user_sum": true,
    "packets": {
        "USD": [
            {
                "id": 1,
                "sku": "vc_usd",
                "amount": 100,
                "price": 10,
                "image_url": "//images.storage.com/some_image",
                "description": {
                    "en": "Standard Package"
                },
                "label": {
                    "en": "Standard Package"
                },
                "bonus": 0,
                "advertisement_type": "recommended",
                "enabled": true
            }
        ],
        "EUR": [
            {
                "id": 2,
                "sku": "vc_eur",
                "amount": 80,
                "price": 5,
                "image_url": null,
                "description": {
                    "en": "Standard Package"
                },
                "label": {
                    "en": "Standard Package"
                },
                "bonus": 0,
                "advertisement_type": "recommended",
                "enabled": true
            }
        ]
    }
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_currency' \
-X PUT \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "vc_name": {
        "en": "Golden Coins"
    },
    "base": {
        "USD": 0.04,
        "EUR": 0.03
    },
    "default_currency": "USD",
    "min": 0,
    "max": 0,
    "is_currency_discrete": true,
    "allow_user_sum": true,
    "packets": {
        "USD": [
            {
                "id": 1,
                "sku": "vc_usd",
                "amount": 100,
                "price": 10,
                "image_url": "//images.storage.com/some_image",
                "description": {
                    "en": "Standard Package"
                },
                "label": {
                    "en": "Standard Package"
                },
                "bonus": 0,
                "advertisement_type": "recommended",
                "enabled": true
            }
        ],
        "EUR": [
            {
                "id": 2,
                "sku": "vc_eur",
                "amount": 80,
                "price": 5,
                "image_url": null,
                "description": {
                    "en": "Standard Package"
                },
                "label": {
                    "en": "Standard Package"
                },
                "bonus": 0,
                "advertisement_type": "recommended",
                "enabled": true
            }
        ]
    }
}'
응답
<?php

$response = null;
HTTP/1.1 204 No Content

가상 아이템

아이템 생성

게임 아이템을 생성합니다.

HTTP 요청

POST https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items

파라미터 유형 설명
project_id
integer 프로젝트 ID.
sku
string 아이템 고유 ID입니다. SKU에는 소문자 라틴어 영숫자, 대시, 밑줄만 사용할 수 있습니다.
item_code
string 아이템의 추가 코드입니다. 옵션.
name
array of strings 항목에 대한 지역화된 이름의 배열입니다.
description
array of strings 항목에 대한 지역화된 설명의 배열입니다.
long_description
array of strings 아이템의 현지화된 설명의 배열입니다.
prices
array 아이템 가격의 배열입니다
default_currency
string 구매의 기본 통화입니다. ISO 4217에 따른 세자리 코드.
enabled
boolean 아이템을 활성화합니다.
permanent
boolean 'true'인 경우, 아이템을 한 번만 구매할 수 있습니다.
image_url
string 이미지의 URL입니다.
item_type
string 항목의 유형: Consumable/Expiration/Permanent/Lootboxes/Physical.
expiration
integer 만료 시간(초)입니다. "Expiration" 아이템 유형에만 사용됩니다.
groups
array of integers 아이템 그룹 목록입니다.
deleted
boolean 아이템이 삭제된 여부.
user_attribute_conditions
array of objects 게임유저 특성 조건의 목록입니다.
user_attribute_conditions.right_operand
array 사용자 특성을 비교하는 값.
user_attribute_conditions.user_attribute_key
string 사용자 특성 조건 키.
user_attribute_conditions.operation
string 작업 유형입니다. 'greater', 'greaterOrEqual', 'equal', 'notEqual', 'less', 'lessOrEqual', 'between', 'in', 'notIn' 등.
user_attribute_conditions.action
string 동작 유형. 'hide', 'block', 'warning' 등.
advertisement_type
string 결제 UI에서 아이템에 표시되는 특수 배너 유형. 'recommended', 'best_deal', 'special_offer', null 등.
virtual_currency_price
integer 게임 내 통화 가격. 'null'인 경우, 실제 통화로만 아이템 구매 가능.
purchase_limit
integer 아이템을 구매할 수 있는 횟수. 'null'인 경우, 구매 횟수 제한 없음.
keywords
array 결제 UI에서 아이템을 찾을 때 사용할 수 있는 키워드.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->CreateVirtualItem(array(
    'project_id' => PROJECT_ID,
    'request' => array (
         'sku' => 'T-43-3-unique-id',
         'item_code' => 'chinese-medium-tank',
         'name' =>
             array (
                 'en' => 'T-34-3',
             ),
         'description' =>
             array (
                 'en' => 'Chinese Tier VIII medium tank.',
             ),
         'long_description' =>
             array (
                 'en' => 'This Chinese Tier VIII medium tank is a real beast in its class.',
             ),
         'prices' =>
             array (
                 'USD' => 40.09,
             ),
         'default_currency' => 'USD',
         'enabled' => true,
         'permanent' => false,
         'image_url' => 'http://livedemo.xsolla.com/airplanes/tank5.jpg',
         'item_type' => 'Expiration',
         'expiration' => 1296000,
         'groups' =>
             array (
                 24,
                 25,
             ),
         'user_attribute_conditions' =>
             array (
             array (
                     'right_operand' =>
                         array (
                             'magic',
                         ),
                     'id' => 2015,
                     'user_attribute_key' => 'type',
                     'operation' => 'equal',
                     'action' => 'hide',
                     'name' => null,
                 ),
             ),
         'virtual_currency_price' => null,
         'purchase_limit' => null,
         'keywords' =>
             array (
                 'de' =>
                     array (
                         'Inhalt',
                         'Aufgaben',
                         'Region',
                         'Landschaft',
                     ),
                 'en' =>
                     array (
                         'content',
                         'quests',
                         'region',
                         'landscape',
                     ),
             ),
         'advertisement_type' => 'recommended',
         'deleted' => false,
    )
));
POST /merchant/v2/projects/{project_id}/virtual_items/items HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
    "sku": "T-43-3-unique-id",
    "item_code": "chinese-medium-tank",
    "name": {
        "en": "T-34-3"
    },
    "description": {
        "en": "Chinese Tier VIII medium tank."
    },
    "long_description": {
            "en": "This Chinese Tier VIII medium tank is a real beast in its class."
    },
    "prices": {
        "USD": 40.09
    },
    "default_currency": "USD",
    "enabled": true,
    "permanent": false,
    "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
    "item_type": "Expiration",
    "expiration": 1296000,
    "groups": [
        24,
        25
    ],
    "user_attribute_conditions": [
         {
             "right_operand": [
                 "magic"
             ],
             "id": 2015,
             "user_attribute_key": "type",
             "operation": "equal",
             "action": "hide",
             "name":null
         }
    ],
    "virtual_currency_price": null,
    "purchase_limit": null,
    "keywords": {
        "de":[
            "Inhalt","Aufgaben","Region","Landschaft"
        ],
        "en":[
            "content","quests","region","landscape"
        ]
    },
    "advertisement_type": "recommended",
    "deleted": false
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items' \
-X POST \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "sku": "T-43-3-unique-id",
    "item_code": "chinese-medium-tank",
    "name": {
        "en": "T-34-3"
    },
    "description": {
        "en": "Chinese Tier VIII medium tank."
    },
    "long_description": {
            "en": "This Chinese Tier VIII medium tank is a real beast in its class."
    },
    "prices": {
        "USD": 40.09
    },
    "default_currency": "USD",
    "enabled": true,
    "permanent": false,
    "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
    "item_type": "Expiration",
    "expiration": 1296000,
    "groups": [
        24,
        25
    ],
    "user_attribute_conditions": [
         {
             "right_operand": [
                 "magic"
             ],
             "id": 2015,
             "user_attribute_key": "type",
             "operation": "equal",
             "action": "hide",
             "name":null
         }
    ],
    "virtual_currency_price": null,
    "purchase_limit": null,
    "keywords": {
        "de":[
            "Inhalt","Aufgaben","Region","Landschaft"
        ],
        "en":[
            "content","quests","region","landscape"
        ]
    },
    "advertisement_type": "recommended",
    "deleted": false
}'
응답
<?php

// example response
$response = array (
    'item_id' => 77
);
HTTP/1.1 201 Created
Content-Type: application/json

{
    "item_id": 77
}
{
    "item_id": 77
}

아이템 가져오기

게임 아이템을 가져옵니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items/{item_id}

파라미터 유형 설명
item_id
integer 아이템 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->GetVirtualItem(array(
    'project_id' => PROJECT_ID,
    'item_id' => ITEM_ID
));
GET /merchant/v2/projects/{project_id}/virtual_items/items/{item_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items/{item_id}' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    'id' => 77,
    'sku' => 'T-43-3-unique-id',
    'item_code' => 'chinese-medium-tank',
    'name' =>
        array (
            'en' => 'T-34-3'
        ),
    'description' =>
        array (
            'en' => 'Chinese Tier VIII medium tank.'
        ),
    'long_description' =>
        array (
            'en' => 'This Chinese Tier VIII medium tank is a real beast in its class.'
        ),
    'prices' =>
        array (
            'USD' => 40.09
        ),
    'default_currency' => 'USD',
    'enabled' => true,
    'permanent' => false,
    'image_url' => 'http://livedemo.xsolla.com/airplanes/tank5.jpg',
    'item_type' => 'Expiration',
    'expiration' => 1296000,
    'groups' =>
        array (
            24,
            25
        ),
    'user_attribute_conditions' =>
        array (
        array (
                'right_operand' =>
                     array (
                        'magic',
                    ),
                'id' => 2015,
                'user_attribute_key' => 'type',
                'operation' => 'equal',
                'action' => 'hide',
                'name' => null,
            ),
        ),
    'virtual_currency_price' => null,
    'purchase_limit' => null,
    'keywords' =>
        array (
            'de' =>
                array (
                    'Inhalt',
                    'Aufgaben',
                    'Region',
                    'Landschaft',
                ),
            'en' =>
                array (
                    'content',
                    'quests',
                    'region',
                    'landscape',
                ),
        ),
    'advertisement_type' => 'recommended',
    'deleted' => false,
);
HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 77,
    "sku": "T-43-3-unique-id",
    "item_code": "chinese-medium-tank",
    "name": {
        "en": "T-34-3"
    },
    "description": {
        "en": "Chinese Tier VIII medium tank."
    },
    "long_description": {
            "en": "This Chinese Tier VIII medium tank is a real beast in its class."
    },
    "prices": {
        "USD": 40.09
    },
    "default_currency": "USD",
    "enabled": true,
    "permanent": false,
    "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
    "item_type": "Expiration",
    "expiration": 1296000,
    "groups": [
        24,
        25
    ],
    "user_attribute_conditions": [
         {
             "right_operand": [
                 "magic"
             ],
             "id": 2015,
             "user_attribute_key": "type",
             "operation": "equal",
             "action": "hide",
             "name":null
         }
    ],
    "virtual_currency_price": null,
    "purchase_limit": null,
    "keywords": {
        "de":[
            "Inhalt","Aufgaben","Region","Landschaft"
        ],
        "en":[
            "content","quests","region","landscape"
        ]
    },
    "advertisement_type": "recommended",
    "deleted": false
}
{
    "id": 77,
    "sku": "T-43-3-unique-id",
    "item_code": "chinese-medium-tank",
    "name": {
        "en": "T-34-3"
    },
    "description": {
        "en": "Chinese Tier VIII medium tank."
    },
    "long_description": {
            "en": "This Chinese Tier VIII medium tank is a real beast in its class."
    },
    "prices": {
        "USD": 40.09
    },
    "default_currency": "USD",
    "enabled": true,
    "permanent": false,
    "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
    "item_type": "Expiration",
    "expiration": 1296000,
    "groups": [
        24,
        25
    ],
    "user_attribute_conditions": [
         {
             "right_operand": [
                 "magic"
             ],
             "id": 2015,
             "user_attribute_key": "type",
             "operation": "equal",
             "action": "hide",
             "name":null
         }
    ],
    "virtual_currency_price": null,
    "purchase_limit": null,
    "keywords": {
        "de":[
            "Inhalt","Aufgaben","Region","Landschaft"
        ],
        "en":[
            "content","quests","region","landscape"
        ]
    },
    "advertisement_type": "recommended",
    "deleted": false
}

아이템 업데이트

게임 아이템을 업데이트합니다.

HTTP 요청

PUT https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items/{item_id}

파라미터 유형 설명
item_id
integer 아이템 ID입니다.
sku
string 아이템 고유 ID입니다. SKU에는 소문자 라틴어 영숫자, 대시, 밑줄만 사용할 수 있습니다.
item_code
string 아이템의 추가 코드입니다. 옵션.
name
array of strings 항목에 대한 지역화된 이름의 배열입니다.
description
array of strings 항목에 대한 지역화된 설명의 배열입니다.
long_description
array of strings 아이템의 현지화된 설명의 배열입니다.
prices
array 아이템 가격의 배열입니다
default_currency
string 구매의 기본 통화입니다. ISO 4217에 따른 세자리 코드.
enabled
boolean 아이템을 활성화합니다.
permanent
boolean 'true'인 경우, 아이템을 한 번만 구매할 수 있습니다.
image_url
string 이미지의 URL입니다.
item_type
string 항목의 유형: Consumable/Expiration/Permanent/Lootboxes/Physical.
expiration
integer 만료 시간(초)입니다. "Expiration" 아이템 유형에만 사용됩니다.
groups
array of integers 아이템 그룹 목록입니다.
deleted
boolean 아이템이 삭제된 여부.
user_attribute_conditions
array of objects 게임유저 특성 조건의 목록입니다.
user_attribute_conditions.right_operand
array 사용자 특성을 비교하는 값.
user_attribute_conditions.user_attribute_key
string 사용자 특성 조건 키.
user_attribute_conditions.operation
string 작업 유형입니다. 'greater', 'greaterOrEqual', 'equal', 'notEqual', 'less', 'lessOrEqual', 'between', 'in', 'notIn' 등.
user_attribute_conditions.action
string 동작 유형. 'hide', 'block', 'warning' 등.
advertisement_type
string 결제 UI에서 아이템에 표시되는 특수 배너 유형. 'recommended', 'best_deal', 'special_offer', null 등.
virtual_currency_price
integer 게임 내 통화 가격. 'null'인 경우, 실제 통화로만 아이템 구매 가능.
purchase_limit
integer 아이템을 구매할 수 있는 횟수. 'null'인 경우, 구매 횟수 제한 없음.
keywords
array 결제 UI에서 아이템을 찾을 때 사용할 수 있는 키워드.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->UpdateVirtualItem(array(
    'project_id' => PROJECT_ID,
    'request' => array (
         'sku' => 'T-43-3-unique-id',
         'item_code' => 'chinese-medium-tank',
         'name' =>
             array (
                 'en' => 'T-34-3',
             ),
         'description' =>
             array (
                 'en' => 'Chinese Tier VIII medium tank.',
             ),
         'long_description' =>
             array (
                 'en' => 'This Chinese Tier VIII medium tank is a real beast in its class.',
             ),
         'prices' =>
             array (
                 'USD' => 40.09,
             ),
         'default_currency' => 'USD',
         'enabled' => true,
         'permanent' => false,
         'image_url' => 'http://livedemo.xsolla.com/airplanes/tank5.jpg',
         'item_type' => 'Expiration',
         'expiration' => 1296000,
         'groups' =>
             array (
                 24,
                 25,
             ),
         'user_attribute_conditions' =>
             array (
             array (
                     'right_operand' =>
                         array (
                             'magic',
                         ),
                     'id' => 2015,
                     'user_attribute_key' => 'type',
                     'operation' => 'equal',
                     'action' => 'hide',
                     'name' => null,
                 ),
             ),
         'virtual_currency_price' => null,
         'purchase_limit' => null,
         'keywords' =>
             array (
                 'de' =>
                     array (
                         'Inhalt',
                         'Aufgaben',
                         'Region',
                         'Landschaft',
                     ),
                 'en' =>
                     array (
                         'content',
                         'quests',
                         'region',
                         'landscape',
                     ),
             ),
         'advertisement_type' => 'recommended',
         'deleted' => false,
    )
));
PUT /merchant/v2/projects/{project_id}/virtual_items/items/{item_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
{
    "sku": "T-43-3-unique-id",
    "item_code": "chinese-medium-tank",
    "name": {
        "en": "T-34-3"
    },
    "description": {
        "en": "Chinese Tier VIII medium tank."
    },
    "long_description": {
            "en": "This Chinese Tier VIII medium tank is a real beast in its class."
    },
    "prices": {
        "USD": 40.09
    },
    "default_currency": "USD",
    "enabled": true,
    "permanent": false,
    "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
    "item_type": "Expiration",
    "expiration": 1296000,
    "groups": [
        24,
        25
    ],
    "user_attribute_conditions": [
         {
             "right_operand": [
                 "magic"
             ],
             "id": 2015,
             "user_attribute_key": "type",
             "operation": "equal",
             "action": "hide",
             "name":null
         }
    ],
    "virtual_currency_price": null,
    "purchase_limit": null,
    "keywords": {
        "de":[
            "Inhalt","Aufgaben","Region","Landschaft"
        ],
        "en":[
            "content","quests","region","landscape"
        ]
    },
    "advertisement_type": "recommended",
    "deleted": false
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items/{item_id}' \
-X PUT \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "sku": "T-43-3-unique-id",
    "item_code": "chinese-medium-tank",
    "name": {
        "en": "T-34-3"
    },
    "description": {
        "en": "Chinese Tier VIII medium tank."
    },
    "long_description": {
            "en": "This Chinese Tier VIII medium tank is a real beast in its class."
    },
    "prices": {
        "USD": 40.09
    },
    "default_currency": "USD",
    "enabled": true,
    "permanent": false,
    "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
    "item_type": "Expiration",
    "expiration": 1296000,
    "groups": [
        24,
        25
    ],
    "user_attribute_conditions": [
         {
             "right_operand": [
                 "magic"
             ],
             "id": 2015,
             "user_attribute_key": "type",
             "operation": "equal",
             "action": "hide",
             "name":null
         }
    ],
    "virtual_currency_price": null,
    "purchase_limit": null,
    "keywords": {
        "de":[
            "Inhalt","Aufgaben","Region","Landschaft"
        ],
        "en":[
            "content","quests","region","landscape"
        ]
    },
    "advertisement_type": "recommended",
    "deleted": false
}'
응답
<?php

$response = null;
HTTP/1.1 204 No Content

아이템 삭제

게임 아이템을 삭제합니다.

HTTP 요청

DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items/{item_id}

파라미터 유형 설명
item_id
integer 아이템 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->DeleteVirtualItem(array(
    'project_id' => PROJECT_ID,
    'item_id' => ITEM_ID
));
DELETE /merchant/v2/projects/{project_id}/virtual_items/items/{item_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items/{item_id}' \
-X DELETE \
-u merchant_id:merchant_api_key
응답
<?php

$response = null;
HTTP/1.1 204 No Content

아이템 목록 가져오기

게임 아이템을 나열합니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items

파라미터 유형 설명
project_id
integer 프로젝트 ID.
offset
integer 목록이 생성된 요소 개수(개수는 0부터 시작함).
limit
integer 페이지 요소 개수 제한.
has_price
string 항목 판매의 유형입니다. 'virtual_currency'(항목을 게임머니로 구매할 수 있는 경우) 또는 'real_currency'(항목을 실제 통화로 구매할 수 있는 경우)일 수 있습니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListVirtualItems(array(
    'project_id' => PROJECT_ID
));
GET /merchant/v2/projects/{project_id}/virtual_items/items HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/items' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    array (
            'id' => 46,
            'sku' => 'T-43-3-unique-id',
            'localized_name' => 'T-34-3',
            'prices' =>
                array (
                    'USD' => 40.09
                ),
            'default_currency' => 'USD',
            'enabled' => true,
            'permanent' => false,
            'groups' =>
                array (
                    25
                ),
            'advertisement_type' => null,
            'virtual_currency_price' => null
        )
);
HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 46,
        "sku": "T-43-3-unique-id",
        "localized_name": "T-34-3",
        "prices": {
            "USD": 40.09
        },
        "default_currency": "USD",
        "enabled": true,
        "permanent": false,
        "groups": [
            25
        ],
        "advertisement_type": null,
        "virtual_currency_price": null
    }
]
[
    {
        "id": 46,
        "sku": "T-43-3-unique-id",
        "localized_name": "T-34-3",
        "prices": {
            "USD": 40.09
        },
        "default_currency": "USD",
        "enabled": true,
        "permanent": false,
        "groups": [
            25
        ],
        "advertisement_type": null,
        "virtual_currency_price": null
    }
]

아이템 그룹 생성

응답

HTTP 요청

POST https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups

파라미터 유형 설명
project_id
integer 프로젝트 ID.
name
array of strings 아이템 그룹의 현지화된 이름의 배열입니다.
description
array of strings 아이템 그룹의 현지화된 설명의 배열입니다.
enabled
boolean 이 그룹을 사용할 수 있는지 여부를 나타냅니다.
parent_id
integer 상위 그룹의 ID입니다.
code
integer 그룹의 고유한 코드입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->CreateVirtualItemsGroup(array(
    'project_id' => PROJECT_ID,
    'request' => array (
         'name' =>
             array (
                 'en' => 'Tanks',
             ),
         'description' =>
             array (
                 'en' => 'Tanks Group',
             ),
         'enabled' => true,
         'parent_id' => null,
         'code' => null
     )
));
POST /merchant/v2/projects/{project_id}/virtual_items/groups HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
    "name": {
        "en": "Tanks"
    },
    "description": {
        "en": "Tanks Group"
    },
    "enabled": true,
    "parent_id": null,
    "code": null
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups' \
-X POST \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "name": {
        "en": "Tanks"
    },
    "description": {
        "en": "Tanks Group"
    },
    "enabled": true,
    "parent_id": null,
    "code": null
}'
응답
<?php

// example response
$response = array (
    'group_id' => 7
);
HTTP/1.1 201 Created
Content-Type: application/json

{
    "group_id": 7
}
{
    "group_id": 7
}

그룹 가져오기

게임 아이템 그룹을 가져옵니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups/{group_id}

파라미터 유형 설명
group_id
string 그룹 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->GetVirtualItemsGroup(array(
    'project_id' => PROJECT_ID,
    'group_id' => GROUP_ID
));
GET /merchant/v2/projects/{project_id}/virtual_items/groups/{group_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups/{group_id}' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    'id' => 25,
    'name' =>
        array (
            'en' => 'Tanks'
        ),
    'description' =>
        array (
            'en' => 'Tanks Group'
        ),
    'enabled' => true,
    'parent_id' => null,
    'code' => null
);
HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 25,
    "name": {
        "en": "Tanks"
    },
    "description": {
        "en": "Tanks Group"
    },
    "enabled": true,
    "parent_id": null,
    "code": null
}
{
    "id": 25,
    "name": {
        "en": "Tanks"
    },
    "description": {
        "en": "Tanks Group"
    },
    "enabled": true,
    "parent_id": null,
    "code": null
}

그룹 업데이트

게임 아이템 그룹을 가져옵니다.

HTTP 요청

PUT https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups/{group_id}

파라미터 유형 설명
group_id
string 그룹 ID입니다.
name
array of strings 아이템 그룹의 현지화된 이름의 배열입니다.
description
array of strings 아이템 그룹의 현지화된 설명의 배열입니다.
enabled
boolean 이 그룹을 사용할 수 있는지 여부를 나타냅니다.
parent_id
integer 상위 그룹의 ID입니다.
code
integer 그룹의 고유한 코드입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->UpdateVirtualItemsGroup(array(
    'project_id' => PROJECT_ID,
    'group_id' => GROUP_ID,
    'request' => array (
         'name' =>
             array (
                 'en' => 'Tanks',
             ),
         'description' =>
             array (
                 'en' => 'Tanks Group',
             ),
         'enabled' => true,
         'parent_id' => null,
         'code' => null
     )
));
PUT /merchant/v2/projects/{project_id}/virtual_items/groups/{group_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
    "name": {
        "en": "Tanks"
    },
    "description": {
        "en": "Tanks Group"
    },
    "enabled": true,
    "parent_id": null,
    "code": null
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups/{group_id}' \
-X PUT \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "name": {
        "en": "Tanks"
    },
    "description": {
        "en": "Tanks Group"
    },
    "enabled": true,
    "parent_id": null,
    "code": null
}'
응답
<?php

$response = null;
HTTP/1.1 204 No Content

그룹 삭제

게임 아이템 그룹을 삭제합니다.

HTTP 요청

DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups/{group_id}

파라미터 유형 설명
group_id
string 그룹 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->DeleteVirtualItemsGroup(array(
    'project_id' => PROJECT_ID,
    'group_id' => GROUP_ID
));
DELETE /merchant/v2/projects/{project_id}/virtual_items/groups/{group_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups/{group_id}' \
-X DELETE \
-u merchant_id:merchant_api_key
응답
<?php

$response = null;
HTTP/1.1 204 No Content

아이템 그룹 목록 가져오기

모든 게임 아이템 그룹을 나열합니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups

파라미터 유형 설명
project_id
integer 프로젝트 ID.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListVirtualItemsGroups(array(
    'project_id' => PROJECT_ID
));
GET /merchant/v2/projects/{project_id}/virtual_items/groups HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/virtual_items/groups' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    array (
        'id' => 25,
        'localized_name' => 'Tanks',
        'enabled' => true,
        'parent_id' => null,
        'has_groups' => false,
        'has_virtual_items' => true,
        'virtual_items_count' => 6,
        'code' => null
    )
);
HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 25,
        "localized_name": "Tanks",
        "enabled": true,
        "parent_id": null,
        "has_groups": false,
        "has_virtual_items": true,
        "virtual_items_count": 6,
        "code": null
    }
]
[
    {
        "id": 25,
        "localized_name": "Tanks",
        "enabled": true,
        "parent_id": null,
        "has_groups": false,
        "has_virtual_items": true,
        "virtual_items_count": 6,
        "code": null
    }
]

유저 특성

특성 생성

게임유저 특성을 생성합니다.

HTTP 요청

POST https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes

파라미터 유형 설명
project_id
integer 프로젝트 ID. 필수.
key
string 게임유저 특성 키입니다. 필수.
name
array of strings 게임유저 특성의 현지화된 이름의 배열입니다. 필수.
type
string 키 형식입니다. 'int', 'string', 'enum' 또는 'date'가 가능합니다. 필수.
list_of_values
array enum형 값의 배열입니다. 필수.
skip_condition_on_nonexistent_key
boolean 키가 존재하지 않는 경우 조건을 건너뛰어야 하는지 여부입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->CreateUserAttribute(array(
    'project_id' => PROJECT_ID,
    'request' => array (
         'key' => 'class',
         'name' =>
             array (
                 'en' => 'Сlass',
                 'de' => 'Classe',
             ),
         'type' => 'enum',
         'list_of_values' =>
             array (
                 'Warrior',
                 'magic',
             ),
     )
));
POST /merchant/v2/projects/{project_id}/user_attributes HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
{
    "key": "class",
    "name": {
        "en": "Сlass",
        "de": "Classe"
    },
    "type": "enum",
    "list_of_values": ["Warrior", "magic"],
    "visible":true
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes' \
-X POST \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "key": "class",
    "name": {
        "en": "Сlass",
        "de": "Classe"
    },
    "type": "enum",
    "list_of_values": ["Warrior", "magic"],
    "visible":true
}'
응답
<?php

// example response
$response = array (
    'id' => 77
);
HTTP/1.1 201 Created
Content-Type: application/json

{
    "id": 77
}
{
    "id": 77
}

특성 가져오기

게임유저 특성을 표시합니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes/{user_attribute_id}

파라미터 Type 설명
project_id
integer 프로젝트 ID.
user_attribute_id
integer 개임유저 특성 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->GetUserAttribute(array(
    'project_id' => PROJECT_ID,
    'user_attribute_id' => USER_ATTRIBUTE_ID
));
GET /merchant/v2/projects/{project_id}/user_attributes/{user_attribute_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes/{user_attribute_id}' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    'id' => 2,
    'key' => 'level',
    'localized_name' =>
        array (
            'en' => 'level',
            'de' => 'niveau'
        ),
    'name' => 'Level',
    'type' => 'int',
    'list_of_values' =>
        array (),
    'visible' => true,
    'skip_condition_on_nonexistent_key' => false
);
HTTP/1.1 200 OK
Content-Type: application/json
{
    "id": 2,
    "key": "level",
    "localized_name": {
        "en": "level",
        "de": "niveau"
    },
    "name": "Level",
    "type": "int",
    "list_of_values": [],
    "visible":true,
    "skip_condition_on_nonexistent_key": false
}
{
    "id": 2,
    "key": "level",
    "localized_name": {
        "en": "level",
        "de": "niveau"
    },
    "name": "Level",
    "type": "int",
    "list_of_values": [],
    "visible":true,
    "skip_condition_on_nonexistent_key": false
}

특성 업데이트

게임유저 특성을 갱신합니다.

HTTP 요청

PUT https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes/{user_attribute_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID.
user_attribute_id
integer 개임유저 특성 ID입니다.
key
string 게임유저 특성 키입니다. 필수.
name
array of strings 게임유저 특성의 현지화된 이름의 배열입니다. 필수.
type
string 키 형식입니다. 'int', 'string', 'enum' 또는 'date'가 가능합니다. 필수.
list_of_values
array enum형 값의 배열입니다. 필수.
skip_condition_on_nonexistent_key
boolean 키가 존재하지 않는 경우 조건을 건너뛰어야 하는지 여부입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->UpdateUserAttribute(array(
    'project_id' => PROJECT_ID,
    'user_attribute_id' => USER_ATTRIBUTE_ID,
    'request' => array(
         'key' => 'class',
         'name' =>
             array (
                 'en' => 'Сlass',
                 'de' => 'Classe',
             ),
         'type' => 'enum',
         'list_of_values' =>
             array (
                 'Warrior',
                 'magic',
             ),
         'skip_condition_on_nonexistent_key' => false
     )
));
PUT /merchant/v2/projects/{project_id}/user_attributes/{user_attribute_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
{
    "key": "class",
    "localized_name": {
        "en": "Сlass",
        "de": "Classe"
    },
    "type": "enum",
    "list_of_values": ["Warrior", "magic"],
    "visible":true,
    "skip_condition_on_nonexistent_key": false
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes/{user_attribute_id}' \
-X PUT \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "key": "class",
    "localized_name": {
        "en": "Сlass",
        "de": "Classe"
    },
    "type": "enum",
    "list_of_values": ["Warrior", "magic"],
    "visible":true,
    "skip_condition_on_nonexistent_key": false
}'
응답
<?php

$response = null;
HTTP/1.1 204 No Content

특성 삭제

게임유저 특성을 삭제합니다.

HTTP 요청

DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes/{user_attribute_id}

파라미터 Type 설명
project_id
integer 프로젝트 ID.
user_attribute_id
integer 개임유저 특성 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->DeleteUserAttribute(array(
    'project_id' => PROJECT_ID,
    'user_attribute_id' => USER_ATTRIBUTE_ID
));
DELETE /merchant/v2/projects/{project_id}/user_attributes/{user_attribute_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes/{user_attribute_id}' \
-X DELETE \
-u merchant_id:merchant_api_key
응답
<?php

$response = null;
HTTP/1.1 204 No Content

특성 목록 가져오기

모든 게임유저 특성 목록을 가져옵니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes

파라미터 Type 설명
project_id
integer 프로젝트 ID.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListUserAttributes(array(
    'project_id' => PROJECT_ID
));
GET /merchant/v2/projects/{project_id}/user_attributes HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/user_attributes' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    array (
        'id' => 2,
        'key' => 'level',
        'localized_name' =>
            array (
                'en' => 'Level'
            ),
        'name' => 'Level',
        'type' => 'int',
        'list_of_values' =>
            array (
            ),
        'visible' => true,
        'skip_condition_on_nonexistent_key' => false
    ),
    array (
        'id' => 3,
        'key' => 'class',
        'localized_name' =>
            array (
            )
        'name' => null,
        'type' => 'string',
        'list_of_values' =>
            array (
            ),
        'visible' => true,
        'skip_condition_on_nonexistent_key' => false
    ),
    array (
        'id' => 4,
        'key' => 'type',
        'localized_name' =>
            array (
            )
        'name' => null,
        'type' => 'enum',
        'list_of_values' =>
            array (
                0 => 'class1',
                1 => 'class2',
                2 => 'class3'
            ),
        'visible' => true,
        'skip_condition_on_nonexistent_key' => false
    ),
    array (
        'id' => 5,
        'key' => 'date',
        'localized_name' =>
            array (
                'en' => 'Date'
            ),
        'name' => 'Date',
        'type' => 'date',
        'list_of_values' =>
            array (
            ),
        'visible' => true,
        'skip_condition_on_nonexistent_key' => false
    )
);
HTTP/1.1 200 OK
Content-Type: application/json
[
    {
        "id": 2,
        "key": "level",
        "localized_name": {
            "en": "Level"
        },
        "name": "Level",
        "type": "int",
        "list_of_values": [],
        "visible":true,
        "skip_condition_on_nonexistent_key": false
    },
    {
        "id": 3,
        "key": "class",
        "localized_name": [],
        "name": null,
        "type": "string",
        "list_of_values": [],
        "visible":true
    },
    {
        "id": 4,
        "key": "type",
        "localized_name": [],
        "name": null,
        "type": "enum",
        "list_of_values": [
            "class1",
            "class2",
            "class3"
        ],
        "visible":true,
        "skip_condition_on_nonexistent_key": false
    },
    {
        "id": 5,
        "key": "date",
        "localized_name": {
            "en": "Date"
        },
        "name": "Date",
        "type": "date",
        "list_of_values": [],
        "visible":true,
        "skip_condition_on_nonexistent_key": false
    }
]
[
    {
        "id": 2,
        "key": "level",
        "localized_name": {
            "en": "Level"
        },
        "name": "Level",
        "type": "int",
        "list_of_values": [],
        "visible":true,
        "skip_condition_on_nonexistent_key": false
    },
    {
        "id": 3,
        "key": "class",
        "localized_name": [],
        "name": null,
        "type": "string",
        "list_of_values": [],
        "visible":true,
        "skip_condition_on_nonexistent_key": false
    },
    {
        "id": 4,
        "key": "type",
        "localized_name": [],
        "name": null,
        "type": "enum",
        "list_of_values": [
            "class1",
            "class2",
            "class3"
        ],
        "visible":true,
        "skip_condition_on_nonexistent_key": false
    },
    {
        "id": 5,
        "key": "date",
        "localized_name": {
            "en": "Date"
        },
        "name": "Date",
        "type": "date",
        "list_of_values": [],
        "visible":true,
        "skip_condition_on_nonexistent_key": false
    }
]

정기 결제

요금제 생성

정기결제 요금제를 생성합니다.

HTTP 요청

POST https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans

파라미터 유형 설명
project_id
integer 프로젝트 ID.
external_id
string 외부 요금제 식별자입니다. 옵션.
name
array of strings 요금제 이름입니다. <지역화>:<요금제 이름> 쌍으로 구성된 값입니다.
description
array of strings 요금제 설명입니다. <지역화>:<요금제 설명> 쌍으로 구성된 값입니다. 옵션.
group_id
string 이러한 요금제가 연결된 그룹의 ID입니다.
charge
object 충전 데이터 관련 개체입니다.
charge.period
object 충전 기간 데이터와 관련된 개체입니다.
charge.period.value
integer 충전 사이 기간입니다.
charge.period.type
string 기간 형식(일/월)입니다.
charge.amount
float 지불 금액입니다.
charge.currency
string 구매 통화입니다. 통화의 3자리 정의가 ISO 4217에 따라 사용됩니다.
expiration
object 정기 결제 만료 데이터 관련 개체입니다.
expiration.value
integer 만료 전 남은 기간입니다.
expiration.type
string 기간 형식(일/월)입니다.
trial
object 무료체험 기간 데이터 관련 개체입니다. 옵션.
trial.value
integer 무료체험 기간 길이입니다.
trial.type
string 무료체험 기간 형식(일)입니다.
grace_period
object 유예 기간에 대한 데이터가 포함된 개체입니다. 옵션.
grace_period.value
integer 유예 기간에 대한 시간입니다.
grace_period.type
string 무료체험 기간 형식(일)입니다.
tags
array 플랜 태그. 옵션.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->CreateSubscriptionPlan(array(
    'project_id' => PROJECT_ID,
    'request' => array (
         'external_id' => 'sample_plan',
         'name' =>
             array (
                 'en' => 'Sample Plan',
             ),
         'description' =>
             array (
                 'en' => 'Basic options plan',
             ),
         'group_id' => 'USA Products',
         'charge' =>
             array (
                 'period' =>
                     array (
                         'value' => 1,
                         'type' => 'month',
                     ),
                 'amount' => 10,
                 'currency' => 'USD',
             ),
         'expiration' =>
             array (
                 'value' => '',
                 'type' => '',
             ),
         'tags' =>
             array (
                 'tag1',
                 'tag2',
                 'tag3',
             ),
     )

));
POST /merchant/v2/projects/{project_id}/subscriptions/plans HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
    "external_id": "sample_plan",
    "name": {
        "en": "Sample Plan"
    },
    "description": {
        "en": "Basic options plan"
    },
    "group_id": "USA Products",
    "charge": {
        "period": {
            "value": 1,
            "type": "month"
        },
        "amount": 10,
        "currency": "USD"
    },
    "expiration": {
        "value": "",
        "type": ""
    },
    "tags": [
      "tag1",
      "tag2",
      "tag3"
    ]
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans' \
-X POST \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "external_id": "sample_plan",
    "name": {
        "en": "Sample Plan"
    },
    "description": {
        "en": "Basic options plan"
    },
    "group_id": "USA Products",
    "charge": {
        "period": {
            "value": 1,
            "type": "month"
        },
        "amount": 10,
        "currency": "USD",
    },
    "expiration": {
        "value": "",
        "type": ""
    },
    "tags": [
      "tag1",
      "tag2",
      "tag3"
    ]
}'
응답
<?php

// example response
$response = array (
    'plan_id' => 54,
    'external_id': 'sample_plan'
);
HTTP/1.1 201 Created
Content-Type: application/json

{
    "plan_id": 54
}
{
    "plan_id": 54,
    "external_id": "sample_plan"
}

요금제 매개변수 업데이트

정기결제 요금제 매개변수를 업데이트합니다.

HTTP 요청

PUT https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID.
plan_id
integer 요금제 ID입니다.
external_id
string 외부 요금제 식별자입니다. 옵션.
name
array of strings 요금제 이름입니다. <지역화>:<요금제 이름> 쌍으로 구성된 값입니다.
description
array of strings 요금제 설명입니다. <지역화>:<요금제 설명> 쌍으로 구성된 값입니다. 옵션.
group_id
string 이러한 요금제가 연결된 그룹의 ID입니다.
charge
object 충전 데이터 관련 개체입니다.
charge.period
object 충전 기간 데이터와 관련된 개체입니다.
charge.period.value
integer 충전 사이 기간입니다.
charge.period.type
string 기간 형식(일/월)입니다.
charge.amount
float 지불 금액입니다.
charge.currency
string 구매 통화입니다. 통화의 3자리 정의가 ISO 4217에 따라 사용됩니다.
expiration
object 정기 결제 만료 데이터 관련 개체입니다.
expiration.value
integer 만료 전 남은 기간입니다.
expiration.type
string 기간 형식(일/월)입니다.
trial
object 무료체험 기간 데이터 관련 개체입니다. 옵션.
trial.value
integer 무료체험 기간 길이입니다.
trial.type
string 무료체험 기간 형식(일)입니다.
grace_period
object 유예 기간에 대한 데이터가 포함된 개체입니다. 옵션.
grace_period.value
integer 유예 기간에 대한 시간입니다.
grace_period.type
string 무료체험 기간 형식(일)입니다.
tags
array 플랜 태그. 옵션.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->UpdateSubscriptionPlan(array(
    'project_id' => PROJECT_ID,
    'plan_id' => PLAN_ID,
    'request' => array (
         'external_id' => 'sample_plan',
         'name' =>
             array (
                 'en' => 'Sample Plan',
             ),
         'description' =>
             array (
                 'en' => 'Basic options plan',
             ),
         'charge' =>
             array (
                 'period' =>
                     array (
                         'value' => 1,
                         'type' => 'month',
                     ),
                 'amount' => 10,
                 'currency' => 'USD',
             ),
         'expiration' =>
             array (
                 'value' => '',
                 'type' => '',
             ),
         'tags' =>
             array (
                 'tag1',
                 'tag2',
                 'tag3',
             ),
     )
));
PUT /merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
    "external_id": "sample_plan",
    "name": {
        "en": "Sample Plan"
    },
    "description": {
        "en": "Basic options plan"
    },
    "charge": {
        "period": {
            "value": 1,
            "type": "month"
        },
        "amount": 10,
        "currency": "USD"
    },
    "expiration": {
        "value": "",
        "type": ""
    },
    "tags": [
      "tag1",
      "tag2",
      "tag3"
    ]
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id}' \
-X PUT \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "external_id": "sample_plan",
    "name": {
        "en": "Sample Plan"
    },
    "description": {
        "en": "Basic options plan"
    },
    "charge": {
        "period": {
            "value": 1,
            "type": "month"
        },
        "amount": 10,
        "currency": "USD"
    },
    "expiration": {
        "value": "",
        "type": ""
    },
    "tags": [
      "tag1",
      "tag2",
      "tag3"
    ]
}'
응답
<?php

// example response
$response = array (
    'id' => '54',
    'external_id' => 'sample_plan',
    'name' =>
        array (
            'en' => 'Sample Plan'
        ),
    'description' =>
        array (
            'en' => 'Basic options plan'
        ),
    'charge' =>
        array (
            'period' =>
                array (
                    'value' => 1,
                    'type' => 'month'
                ),
            'amount' => 10,
            'currency' => 'USD'
        ),
    'expiration' =>
        array (
            'value' => '',
            'type' => ''
        ),
    'trial' =>
        array (
            'value' => 14,
            'type' => 'day'
        ),
    'status' =>
        array (
            'value' => 'disabled',
            'counters' =>
                array (
                    'active' => 0,
                    'canceled' => 0,
                    'expired' => 0
                )
        )
);
HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": "54",
    "external_id": "sample_plan",
    "name": {
        "en": "Sample Plan"
    },
    "description": {
        "en": "Basic options plan"
    },
    "charge": {
        "period": {
            "value": 1,
            "type": "month"
        },
        "amount": 10,
        "currency": "USD"
    },
    "expiration": {
        "value": "",
        "type": ""
    },
    "trial": {
        "value": 14,
        "type": "day"
    },
    "status": {
        "value": "disabled",
        "counters": {
            "active": 0,
            "canceled": 0,
            "expired": 0
        }
    }
}
{
    "id": "54",
    "external_id": "sample_plan",
    "name": {
        "en": "Sample Plan"
    },
    "description": {
        "en": "Basic options plan"
    },
    "charge": {
        "period": {
            "value": 1,
            "type": "month"
        },
        "amount": 10,
        "currency": "USD"
    },
    "expiration": {
        "value": "",
        "type": ""
    },
    "trial": {
        "value": 14,
        "type": "day"
    },
    "status": {
        "value": "disabled",
        "counters": {
            "active": 0,
            "canceled": 0,
            "expired": 0
        }
    },
    "type":
}

요금제 활성화

정기결제 요금제를 활성화합니다.

HTTP 요청

PATCH https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID.
plan_id
integer 요금제 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->EnableSubscriptionPlan(array(
    'project_id' => PROJECT_ID,
    'plan_id' => PLAN_ID
));
PATCH /merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id}' \
-X PATCH \
-u merchant_id:merchant_api_key
응답
<?php

$response = null;
HTTP/1.1 204 No Content

요금제 비활성화

정기결제 요금제를 비활성화합니다.

HTTP 요청

DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID.
plan_id
integer 요금제 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->DisableSubscriptionPlan(array(
    'project_id' => PROJECT_ID,
    'plan_id' => PLAN_ID
));
DELETE /merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id}' \
-X DELETE \
-u merchant_id:merchant_api_key
응답
<?php

$response = null;
HTTP/1.1 204 No Content

요금제 삭제

정기결제 요금제를 삭제합니다.

HTTP 요청

DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id}/delete

파라미터 유형 설명
project_id
integer 프로젝트 ID.
plan_id
integer 요금제 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->DeleteSubscriptionPlan(array(
    'project_id' => PROJECT_ID,
    'plan_id' => PLAN_ID
));
DELETE /merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id}/delete HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans/{plan_id}/delete' \
-X DELETE \
-u merchant_id:merchant_api_key
응답
<?php

$response = null;
HTTP/1.1 204 No Content

모든 요금제 나열

모든 정기결제 요금제를 나열합니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans

파라미터 유형 설명
project_id
integer 프로젝트 ID.
external_id
string 외부 요금제 식별자입니다.
limit
integer 페이지 요소 개수 제한.
offset
integer 목록이 생성된 요소 개수(개수는 0부터 시작함).
group_id
string 이러한 요금제가 연결된 그룹의 ID입니다.
product_id
integer 이러한 요금제가 연결된 상품의 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListSubscriptionPlans(array(
    'project_id' => PROJECT_ID
));
GET /merchant/v2/projects/{project_id}/subscriptions/plans?external_id=1&limit=1&offset=1 HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/plans?external_id=1&limit=1&offset=1' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    array (
        'id' => '54',
        'external_id' => 'sample_plan',
        'name' =>
            array (
                'en' => 'Sample Plan'
            ),
        'description' =>
            array (
                'en' => 'Basic options plan'
            ),
        'group_id' => 'USA Products',
        'charge' =>
            array (
                'period' =>
                    array (
                        'value' => 1,
                        'type' => 'month'
                    ),
                'amount' => 10,
                'currency' => 'USD'
            ),
        'expiration' =>
            array (
                'value' => 90,
                'type' => 'day'
            ),
        'trial' =>
            array (
                'value' => 14,
                'type' => 'day'
            ),
        'tags' =>
            array (
                'tag1',
                'tag2',
                'tag3'
            ),
        'status' =>
            array (
                'value' => 'disabled',
                'counters' =>
                    array (
                        'active' => 0,
                        'canceled' => 0,
                        'expired' => 0
                    )
            )
    )
);
HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": "54",
        "external_id": "sample_plan",
        "name": {
            "en": "Sample Plan"
        },
        "description": {
            "en": "Basic options plan"
        },
        "group_id": "USA Products",
        "charge": {
            "period": {
                "value": 1,
                "type": "month"
            },
            "amount": 10,
            "currency": "USD"
        },
        "expiration": {
            "value": 90,
            "type": "day"
        },
        "trial": {
            "value": 14,
            "type": "day"
        },
        "tags": [
          "tag1",
          "tag2",
          "tag3"
        ],
        "status": {
            "value": "disabled",
            "counters": {
                "active": 0,
                "canceled": 0,
                "expired": 0
            }
        }
    }
]
[
    {
        "id": "54",
        "external_id": "sample_plan",
        "name": {
            "en": "Sample Plan"
        },
        "description": {
            "en": "Basic options plan"
        },
        "group_id": "USA Products",
        "charge": {
            "period": {
                "value": 1,
                "type": "month"
            },
            "amount": 10,
            "currency": "USD",
        },
        "expiration": {
            "value": 90,
            "type": "day",
        },
        "trial": {
            "value": 14,
            "type": "day"
        },
        "tags": [
          "tag1",
          "tag2",
          "tag3"
        ],
        "status": {
            "value": "disabled",
            "counters": {
                "active": 0,
                "canceled": 0,
                "expired": 0
            }
        }
    }
]

상품 생성

상품 생성.

HTTP 요청

POST https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/products

파라미터 유형 설명
project_id
integer 프로젝트 ID.
name
string 제품 이름입니다.
group_id
string 이러한 요금제가 연결된 그룹의 ID입니다.
description
string 항목에 대한 지역화된 설명의 배열입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->CreateSubscriptionProduct(array(
    'project_id' => PROJECT_ID,
    'request' => array(
        'name' => 'Demo Product',
        'group_id' => 'USA Products',
        "description": {
            "en": "USA Products"
          }
    ),
));
POST /merchant/v2/projects/{project_id}/subscriptions/products HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
    "name": "Demo Product",
    "group_id": "USA Products",
    "description": {
        "en": "USA Products"
      }
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/products' \
-X POST \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
        "name": "Demo Product",
        "group_id": "USA Products",
        "description": {
            "en": "USA Products"
          }
    }'
응답
<?php

// example response
$response = array (
    'product_id' => '64'
);
HTTP/1.1 201 Created
Content-Type: application/json

{
    "product_id": "64"
}
{
    "product_id": "64"
}

상품 업데이트

상품 업데이트.

HTTP 요청

PUT https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/products/{product_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID.
product_id
integer 이러한 요금제가 연결된 상품의 ID입니다.
name
string 제품 이름입니다.
group_id
string 이러한 요금제가 연결된 그룹의 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->UpdateSubscriptionProduct(array(
    'project_id' => PROJECT_ID,
    'request' => array(
        'name' => 'Demo Product',
        'group_id' => 'USA Products'
    ),
));
PUT /merchant/v2/projects/{project_id}/subscriptions/products/{product_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
        "name": "Demo Product",
        "group_id": "USA Products"
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/products/{product_id}' \
-X PUT \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
            "name": "Demo Product",
            "group_id": "USA Products"
    }'
응답
<?php

// example response
$response = array (
    'id' => '64',
    'name' => 'Demo Product',
    'group_id' => 'USA Products'
);
HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": "64",
    "name": "Demo Product",
    "group_id": "USA Products"
}
{
    "id": "64",
    "name": "Demo Product",
    "group_id": "USA Products"
}

상품 삭제

상품을 삭제합니다.

HTTP 요청

DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/products/{product_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID.
product_id
integer 이러한 요금제가 연결된 상품의 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->DeleteSubscriptionProduct(array(
    'project_id' => PROJECT_ID,
    'product_id' => PRODUCT_ID
));
DELETE /merchant/v2/projects/{project_id}/subscriptions/products/{product_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/products/{product_id}' \
-X DELETE \
-u merchant_id:merchant_api_key
응답
<?php

$response = null;
HTTP/1.1 204 No Content

제품 가져오기

모든 정기결제 상품을 나열합니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/products

파라미터 유형 설명
project_id
integer 프로젝트 ID.
group_id
string 이러한 요금제가 연결된 그룹의 ID입니다.
product_id
integer 이러한 요금제가 연결된 상품의 ID입니다.
limit
integer 페이지 요소 개수 제한.
offset
integer 목록이 생성된 요소 개수(개수는 0부터 시작함).
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->DeleteSubscriptionProduct(array(
    'project_id' => PROJECT_ID
));
GET /merchant/v2/projects/{project_id}/subscriptions/products?group_id=USA%20Products&limit=1&offset=1 HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/products?group_id=USA%20Products&limit=1&offset=1' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    array (
        'id' => 3,
        'group_id' => 'USA Products',
        'name' => 'Demo Product'
    )
);
HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 3,
        "group_id": "USA Products",
        "name": "Demo Product"
    }
]
[
    {
        "id": 3,
        "group_id": "USA Products",
        "name": "Demo Product"
    }
]

정기결제

ID별로 특정한 정기결제 세부 정보를 얻습니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/{subscription_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID. 필수.
subscription_id
integer 정기결제 ID입니다. 필수.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

<?php
$request['project_id']=PROJECT_ID;
$request['subscription_id']=SUBSCRIPTION_ID;
GET https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/{subscription_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/{subscription_id}' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php
$response = array(
    'id' => 5096406,
    'user' =>
        array(
            'id' => 5096406,
            'name' => null,
        ),
    'plan' =>
        array(
            'id' => 123,
            'external_id' => 'a1s2d3'
        ),
    'product' =>
        array(
            'id' => 123
            'id_group' => 1234,
            'name' => 'product_name'
        ),
    'charge_amount' => 14.99,
    'currency' => ‘USD’,
    'date_create' => ‘2010-04-09T04:58:49+0400,
    'date_end' => null,
    'date_last_charge' => ‘2010-04-09T04:58:49+0400,
    'date_next_charge' => ‘2025-03-31T00:00:00+0300,
    'status' => ‘non_renewing’,
    'comment' => null
);
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 5096406,
  "user": {
    "id": "23KM3QP",
    "name": null
  },
  "plan": {
    "id": 123,
    "external_id": "a1s2d3"
  },
  "product": {
    "id": 123,
    "id_group": 1234,
    "name": "product_name"
  },
  "charge_amount": 14.99,
  "currency": "USD",
  "date_create": "2010-04-09T04:58:49+0400",
  "date_end": null,
  "date_last_charge": "2010-04-09T04:58:49+0400",
  "date_next_charge": "2025-03-31T00:00:00+0300",
  "status": "non_renewing",
  "comment": null
}
{
  "id": 5096406,
  "user": {
    "id": "23KM3QP",
    "name": null
  },
  "plan": {
    "id": 123,
    "external_id": "a1s2d3"
  },
  "product": {
    "id": 123,
    "id_group": 1234,
    "name": "product_name"
  },
  "charge_amount": 14.99,
  "currency": "USD",
  "date_create": "2010-04-09T04:58:49+0400",
  "date_end": null,
  "date_last_charge": "2010-04-09T04:58:49+0400",
  "date_next_charge": "2025-03-31T00:00:00+0300",
  "status": "non_renewing",
  "comment": null
}

정기결제 업데이트

자동 정기결제를 업데이트합니다. 정기결제 상태('active', 'canceled' 또는 'non_renewing')를 갱신하고 현재 정기결제 요금제에 대한 다음 결제의 시행 날짜를 연기할 수 있습니다.

HTTP 요청

PUT https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/subscriptions/{subscription_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID.
subscription_id
integer 정기결제 ID입니다.
user_id
string 사용자 ID.
status
string 상태: active/canceled/non_renewing.
cancel_subscription_payment
boolean true로 설정된 경우, 이 구독에서 이루어진 지난 결제액이 환불됩니다. 이 옵션은 상태가 canceled로 변경된 경우에만 작동합니다.
timeshift
object 다음번 충전일자를 늘리거나 줄일 때 사용하는 객체입니다.
timeshift.value
string 다음번 충전일자 변경일(마이너스일 수 있음) 정보입니다.
timeshift.type
string 기간 형식(일/월)입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->UpdateSubscription(array(
    'project_id' => PROJECT_ID,
    'user_id' => USER_ID,
    'subscription_id' => SUBSCRIPTION_ID,
    'request' => array (
         'status' => 'canceled',
         'timeshift' =>
             array (
                 'value' => '30',
                 'type' => 'day',
             )
    )
));
PUT /merchant/v2/projects/{project_id}/users/{user_id}/subscriptions/{subscription_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
    "status": "canceled",
    "timeshift": {
         "value": "30",
         "type": "day"
    }
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/subscriptions/{subscription_id}' \
-X PUT \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "status": "canceled",
    "timeshift": {
         "value": "30",
         "type": "day"
    }
}'
응답
<?php

// example response
$response = array (
    'id' => 45,
    'plan' =>
        array (
            'id' => '54',
            'external_id' => 'sample_plan',
            'group_id' => 'USA Products',
            'project_id' => 14004,
            'name' =>
                array (
                    'en' => 'Sample Plan'
                ),
            'description' =>
                array (
                    'en' => 'Basic options plan'
                ),
            'localized_name' => 'Basic Plan',
            'charge' =>
                array (
                    'period' =>
                        array (
                            'value' => 1,
                            'type' => 'month'
                        ),
                    'amount' => 10,
                    'currency' => 'USD'
                ),
            'expiration' =>
                array (
                    'value' => 90,
                    'type' => 'day'
                ),
            'trial' =>
                array (
                    'value' => 14,
                    'type' => 'day'
                ),
            'status' =>
                array (
                    'value' => 'active',
                    'counters' =>
                        array (
                            'active' => 0,
                            'canceled' => 1,
                            'expired' => 0
                        )
                )
        ),
    'user' =>
        array (
            'id' => '20',
        ),
    'product' => null,
    'charge_amount' => 10,
    'currency' => 'USD',
    'date_create' => '2014-09-30T15:34:17+06:00',
    'date_end' => '2014-10-07T15:34:17+06:00',
    'date_last_charge' => '2014-10-01T15:34:17+06:00',
    'date_next_charge' => '2014-11-01T15:34:17+06:00',
    'status' => 'canceled'
);
HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 45,
    "plan": {
        "id": "54",
        "external_id": "sample_plan",
        "group_id": "USA Products",
        "project_id": 14004,
        "name": {
                "en": "Sample Plan"
        },
        "description": {
            "en": "Basic options plan"
        },
        "localized_name": "Basic Plan",
        "charge": {
            "period": {
                "value": 1,
                "type": "month"
            },
            "amount": 10,
            "currency": "USD"
        },
        "expiration": {
            "value": 90,
            "type": "day"
        },
        "trial": {
            "value": 14,
            "type": "day"
        },
        "status": {
            "value": "active",
            "counters": {
                "active": 0,
                "canceled": 1,
                "expired": 0
            }
        }
    },
    "user": {
        "id": "20"
    },
    "product": null,
    "charge_amount": 10,
    "currency": "USD",
    "date_create": "2014-09-30T15:34:17+06:00",
    "date_end": "2014-10-07T15:34:17+06:00",
    "date_last_charge": "2014-10-01T15:34:17+06:00",
    "date_next_charge": "2014-11-01T15:34:17+06:00",
    "status": "canceled"
}
{
    "id": 45,
    "plan": {
        "id": "54",
        "external_id": "sample_plan",
        "group_id": "USA Products",
        "project_id": 14004,
        "name": {
            "en": "Sample Plan"
        },
        "description": {
            "en": "Basic options plan"
        },
        "localized_name": "Basic Plan",
        "charge": {
            "period": {
                "value": 1,
                "type": "month"
            },
            "amount": 10,
            "currency": "USD"
        },
        "expiration": {
            "value": 90,
            "type": "day"
        },
        "trial": {
            "value": 14,
            "type": "day"
        },
        "status": {
            "value": "active",
            "counters": {
                "active": 0,
                "canceled": 1,
                "expired": 0
            }
        }
    },
    "user": {
        "id": "20"
    },
    "product": null,
    "charge_amount": 10,
    "currency": "USD",
    "date_create": "2014-09-30T15:34:17+06:00",
    "date_end": "2014-10-07T15:34:17+06:00",
    "date_last_charge": "2014-10-01T15:34:17+06:00",
    "date_next_charge": "2014-11-01T15:34:17+06:00",
    "status": "canceled"
}

모든 정기결제 나열

모든 자동 정기결제를 나열합니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/plans/{plan_id}/subscriptions

파라미터 유형 설명
project_id
integer 프로젝트 ID. 필수.
user_id
string 사용자 ID. 필수.
status
string 상태: active/canceled/non_renewing.
limit
integer 페이지 요소 개수 제한.
offset
integer 목록이 생성된 요소 개수(개수는 0부터 시작함).
datetime_from
datetime 날짜 범위의 시작입니다.
datetime_to
datetime 날짜 범위의 끝입니다.
plan_id
integer 요금제 ID입니다.
product_id
integer 이러한 요금제가 연결된 상품의 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListSubscriptions(array(
    'project_id' => PROJECT_ID,
    'user_id' => USER_ID
));
GET /merchant/v2/projects/{project_id}/plans/{plan_id}/subscriptions?status=active&limit=1&offset=1&datetime_from=2014-10-01T00%3A00%3A00Z&datetime_to=2014-10-02T00%3A00%3A00Z HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/plans/{plan_id}/subscriptions?status=active&limit=1&offset=1&datetime_from=2014-10-01T00%3A00%3A00Z&datetime_to=2014-10-02T00%3A00%3A00Z' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
  array (
0 => 
stdClass::__set_state(array(
   'id' => 5096406,
   'user' =>
  stdClass::__set_state(array(
     'id' => '23KM3QP',
     'name' => NULL,
  )),
   'product' => NULL,
   'charge_amount' => 14.99,
   'currency' => 'USD',
   'date_create' => '2010-04-09T04:58:49+0400',
   'date_end' => NULL,
   'date_last_charge' => '2010-04-09T04:58:49+0400',
   'date_next_charge' => '2025-03-31T00:00:00+0300',
   'status' => 'non_renewing',
   'comment' => NULL,
)),
1 =>
stdClass::__set_state(array(
   'id' => 5096405,
   'user' =>
  stdClass::__set_state(array(
     'id' => '2EH93HFYE',
     'name' => NULL,
  )),
   'product' => NULL,
   'charge_amount' => 14.99,
   'currency' => 'USD',
   'date_create' => '2010-01-05T13:59:48+0300',
   'date_end' => NULL,
   'date_last_charge' => '2010-01-05T13:59:48+0300',
   'date_next_charge' => '2038-01-01T00:00:00+0300',
   'status' => 'non_renewing',
   'comment' => NULL,
)),
)
HTTP/1.1 200 OK
Content-Type: application/json

[
  {
      "id": 5096406,
      "user": {
          "id": "23KM3QP",
          "name": null
      },
      "product": null,
      "charge_amount": 14.99,
      "currency": "USD",
      "date_create": "2010-04-09T04:58:49+0400",
      "date_end": null,
      "date_last_charge": "2010-04-09T04:58:49+0400",
      "date_next_charge": "2025-03-31T00:00:00+0300",
      "status": "non_renewing",
      "comment": null
  },
  {
      "id": 5096405,
      "user": {
          "id": "2EH93HFYE",
          "name": null
      },
      "product": null,
      "charge_amount": 14.99,
      "currency": "USD",
      "date_create": "2010-01-05T13:59:48+0300",
      "date_end": null,
      "date_last_charge": "2010-01-05T13:59:48+0300",
      "date_next_charge": "2038-01-01T00:00:00+0300",
      "status": "non_renewing",
      "comment": null
  }
]
[
  {
      "id": 5096406,
      "user": {
          "id": "23KM3QP",
          "name": null
      },
      "product": null,
      "charge_amount": 14.99,
      "currency": "USD",
      "date_create": "2010-04-09T04:58:49+0400",
      "date_end": null,
      "date_last_charge": "2010-04-09T04:58:49+0400",
      "date_next_charge": "2025-03-31T00:00:00+0300",
      "status": "non_renewing",
      "comment": null
  },
  {
      "id": 5096405,
      "user": {
          "id": "2EH93HFYE",
          "name": null
      },
      "product": null,
      "charge_amount": 14.99,
      "currency": "USD",
      "date_create": "2010-01-05T13:59:48+0300",
      "date_end": null,
      "date_last_charge": "2010-01-05T13:59:48+0300",
      "date_next_charge": "2038-01-01T00:00:00+0300",
      "status": "non_renewing",
      "comment": null
  }
]

모든 결제 나열

모든 정기결제를 나열합니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/payments

파라미터 유형 설명
project_id
integer 프로젝트 ID.
user_id
string 사용자 ID.
status
string 상태: processing/canceled/done.
limit
integer 페이지 요소 개수 제한.
offset
integer 목록이 생성된 요소 개수(개수는 0부터 시작함).
datetime_from
datetime 날짜 범위의 시작입니다.
datetime_to
datetime 날짜 범위의 끝입니다.
subscription_id
integer 정기결제 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListSubscriptionPayments(array(
    'project_id' => PROJECT_ID
));
GET /merchant/v2/projects/{project_id}/subscriptions/payments?status=done&limit=1&offset=1&datetime_from=2014-10-01T00%3A00%3A00Z&datetime_to=2014-10-02T00%3A00%3A00Z HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/payments?status=done&limit=1&offset=1&datetime_from=2014-10-01T00%3A00%3A00Z&datetime_to=2014-10-02T00%3A00%3A00Z' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    array (
        'id' => 35,
        'id_payment' => 118441192,
        'date_payment' => '2014-09-30T15:34:17+04:00',
        'status' => 'done',
        'subscription' =>
            array (
                'id' => 45,
                'plan' =>
                    array (
                        'id' => '54',
                        'external_id' => 'sample_plan',
                        'group_id' => 'USA Products',
                        'name' =>
                            array (
                                'en' => 'Sample Plan'
                            ),
                        'description' =>
                            array (
                                'en' => 'Basic options plan'
                            ),
                        'localized_name' => 'Basic Plan',
                        'charge' =>
                            array (
                                'period' =>
                                    array (
                                        'value' => 1,
                                        'type' => 'month'
                                    ),
                                'amount' => 10,
                                'currency' => 'USD'
                            ),
                        'expiration' =>
                            array (
                                'value' => 90,
                                'type' => 'day'
                            ),
                        'trial' =>
                            array (
                                'value' => 14,
                                'type' => 'day'
                            ),
                        'status' =>
                            array (
                                'value' => 'disabled',
                                'counters' =>
                                    array (
                                        'active' => 0,
                                        'closed' => 0,
                                        'expired' => 0
                                    )
                            )
                    ),
                'user' =>
                    array (
                        'id' => 20,
                        'name' => 'John Smith'
                    ),
                'product' => null,
                'charge_amount' => 10,
                'currency' => 'USD',
                'date_create' => '2014-09-30T15:34:17+04:00',
                'date_end' => '2014-10-07T15:34:17+04:00',
                'date_last_charge' => '2014-10-01T15:34:17+04:00',
                'date_next_charge' => '2014-11-01T15:34:17+04:00',
                'status' => 'done'
            )
    )
);
HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 35,
        "id_payment": 118441192,
        "date_payment": "2014-09-30T15:34:17+04:00",
        "status": "done",
        "subscription": {
            "id": 45,
            "plan": {
                "id": "54",
                "external_id": "sample_plan",
                "group_id": "USA Products",
                "name": {
                    "en": "Sample Plan"
                },
                "description": {
                    "en": "Basic options plan"
                },
                "localized_name": "Basic Plan",
                "charge": {
                    "period": {
                        "value": 1,
                        "type": "month"
                    },
                    "amount": 10,
                    "currency": "USD"
                },
                "expiration": {
                    "value": 90,
                    "type": "day"
                },
                "trial": {
                    "value": 14,
                    "type": "day"
                },
                "status": {
                    "value": "disabled",
                    "counters": {
                        "active": 0,
                        "closed": 0,
                        "expired": 0
                    }
                }
            },
            "user": {
                "id": 20,
                "name": "John Smith"
            },
            "product": null,
            "charge_amount": 10,
            "currency": "USD",
            "date_create": "2014-09-30T15:34:17+04:00",
            "date_end": "2014-10-07T15:34:17+04:00",
            "date_last_charge": "2014-10-01T15:34:17+04:00",
            "date_next_charge": "2014-11-01T15:34:17+04:00",
            "status": "done"
        }
    }
]
[
    {
        "id": 35,
        "id_payment": 118441192,
        "date_payment": "2014-09-30T15:34:17+04:00",
        "status": "done",
        "subscription": {
            "id": 45,
            "plan": {
                "id": "54",
                "external_id": "sample_plan",
                "group_id": "USA Products",
                "name": {
                    "en": "Sample Plan"
                },
                "description": {
                    "en": "Basic options plan"
                },
                "localized_name": "Basic Plan",
                "charge": {
                    "period": {
                        "value": 1,
                        "type": "month"
                    },
                    "amount": 10,
                    "currency": "USD"
                },
                "expiration": {
                    "value": 90,
                    "type": "day"
                },
                "trial": {
                    "value": 14,
                    "type": "day"
                },
                "status": {
                    "value": "disabled",
                    "counters": {
                        "active": 0,
                        "closed": 0,
                        "expired": 0
                    }
                }
            },
            "user": {
                "id": 20,
                "name": "John Smith"
            },
            "product": null,
            "charge_amount": 10,
            "currency": "USD",
            "date_create": "2014-09-30T15:34:17+04:00",
            "date_end": "2014-10-07T15:34:17+04:00",
            "date_last_charge": "2014-10-01T15:34:17+04:00",
            "date_next_charge": "2014-11-01T15:34:17+04:00",
            "status": "done"
        }
    }
]

사용자 결제 가져오기

게임유저에 의한 모든 정기결제를 나열합니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/subscriptions/payments

파라미터 유형 설명
project_id
integer 프로젝트 ID.
user_id
string 사용자 ID.
status
string 상태: processing/canceled/done.
limit
integer 페이지 요소 개수 제한.
offset
integer 목록이 생성된 요소 개수(개수는 0부터 시작함).
datetime_from
datetime 날짜 범위의 시작입니다.
datetime_to
datetime 날짜 범위의 끝입니다.
subscription_id
integer 정기결제 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListUserSubscriptionPayments(array(
    'project_id' => PROJECT_ID,
    'user_id' => USER_ID
));
GET /merchant/v2/projects/{project_id}/users/{user_id}/subscriptions/payments?status=done&limit=1&offset=1&datetime_from=2014-10-01T00%3A00%3A00Z&datetime_to=2014-10-02T00%3A00%3A00Z HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/subscriptions/payments?status=done&limit=1&offset=1&datetime_from=2014-10-01T00%3A00%3A00Z&datetime_to=2014-10-02T00%3A00%3A00Z' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    array (
        'id' => 35,
        'id_payment' => 118441192,
        'date_payment' => '2014-09-30T15:34:17+04:00',
        'status' => 'done',
        'subscription' =>
            array (
                'id' => 45,
                'plan' =>
                    array (
                        'id' => '54',
                        'external_id' => 'sample_plan',
                        'group_id' => 'USA Products',
                        'project_id' => 14004,
                        'name' =>
                            array (
                                'en' => 'Sample Plan'
                            ),
                        'description' =>
                            array (
                                'en' => 'Basic options plan'
                            ),
                        'localized_name' => 'Basic Plan',
                        'charge' =>
                            array (
                                'period' =>
                                    array (
                                        'value' => 1,
                                        'type' => 'month'
                                    ),
                                'amount' => 10,
                                'currency' => 'USD'
                            ),
                        'expiration' =>
                            array (
                                'value' => 90,
                                'type' => 'day'
                            ),
                        'trial' =>
                            array (
                                'value' => 14,
                                'type' => 'day'
                            ),
                        'status' =>
                            array (
                                'value' => 'disabled',
                                'counters' =>
                                    array (
                                        'active' => 0,
                                        'closed' => 0,
                                        'expired' => 0
                                    )
                            )
                    ),
                'user' =>
                    array (
                        'id' => 20,
                        'name' => 'John Smith'
                    ),
                'product' => null,
                'charge_amount' => 10,
                'currency' => 'USD',
                'date_create' => '2014-09-30T15:34:17+04:00',
                'date_end' => '2014-10-07T15:34:17+04:00',
                'date_last_charge' => '2014-10-01T15:34:17+04:00',
                'date_next_charge' => '2014-11-01T15:34:17+04:00',
                'status' => 'done'
            )
    )
);
HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 35,
        "id_payment": 118441192,
        "date_payment": "2014-09-30T15:34:17+04:00",
        "status": "done",
        "subscription": {
            "id": 45,
            "plan": {
                "id": "54",
                "external_id": "sample_plan",
                "group_id": "USA Products",
                "project_id": 14004,
                "name": {
                    "en": "Sample Plan"
                },
                "description": {
                    "en": "Basic options plan"
                },
                "localized_name": "Basic Plan",
                "charge": {
                    "period": {
                        "value": 1,
                        "type": "month"
                    },
                    "amount": 10,
                    "currency": "USD"
                },
                "expiration": {
                    "value": 90,
                    "type": "day"
                },
                "trial": {
                    "value": 14,
                    "type": "day"
                },
                "status": {
                    "value": "disabled",
                    "counters": {
                        "active": 0,
                        "closed": 0,
                        "expired": 0
                    }
                }
            },
            "user": {
                "id": 20,
                "name": "John Smith"
            },
            "product": null,
            "charge_amount": 10,
            "currency": "USD",
            "date_create": "2014-09-30T15:34:17+04:00",
            "date_end": "2014-10-07T15:34:17+04:00",
            "date_last_charge": "2014-10-01T15:34:17+04:00",
            "date_next_charge": "2014-11-01T15:34:17+04:00",
            "status": "done"
        }
    }
]
[
    {
        "id": 35,
        "id_payment": 118441192,
        "date_payment": "2014-09-30T15:34:17+04:00",
        "status": "done",
        "subscription": {
            "id": 45,
            "plan": {
                "id": "54",
                "external_id": "sample_plan",
                "group_id": "USA Products",
                "project_id": 14004,
                "name": {
                    "en": "Sample Plan"
                },
                "description": {
                    "en": "Basic options plan"
                },
                "localized_name": "Basic Plan",
                "charge": {
                    "period": {
                        "value": 1,
                        "type": "month"
                    },
                    "amount": 10,
                    "currency": "USD"
                },
                "expiration": {
                    "value": 90,
                    "type": "day"
                },
                "trial": {
                    "value": 14,
                    "type": "day"
                },
                "status": {
                    "value": "disabled",
                    "counters": {
                        "active": 0,
                        "closed": 0,
                        "expired": 0
                    }
                }
            },
            "user": {
                "id": 20,
                "name": "John Smith"
            },
            "product": null,
            "charge_amount": 10,
            "currency": "USD",
            "date_create": "2014-09-30T15:34:17+04:00",
            "date_end": "2014-10-07T15:34:17+04:00",
            "date_last_charge": "2014-10-01T15:34:17+04:00",
            "date_next_charge": "2014-11-01T15:34:17+04:00",
            "status": "done"
        }
    }
]

모든 통화 나열

모든 정기결제 통화를 나열합니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/currencies

파라미터 유형 설명
project_id
integer 프로젝트 ID.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListSubscriptionCurrencies(array(
    'project_id' => PROJECT_ID
));
GET /merchant/v2/projects/{project_id}/subscriptions/currencies HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/subscriptions/currencies' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array(
    "AED",
    "ALL",
    "AMD",
    "ARS",
    "AUD",
    "AZN",
    "BGN",
    "BRL",
    "BYR",
    "CAD",
    "CHF",
    "CLP",
    "CNY",
    "COP",
    "CZK",
    "DKK",
    "DZD",
    "EGP",
    "EUR",
    "GBP",
    "GEL",
    "HKD",
    "HRK",
    "HUF",
    "IDR",
    "ILS",
    "INR",
    "JPY",
    "KES",
    "KGS",
    "KRW",
    "KZT",
    "MAD",
    "MDL",
    "MKD",
    "MNT",
    "MXN",
    "MYR",
    "NGN",
    "NOK",
    "NZD",
    "PEN",
    "PHP",
    "PKR",
    "PLN",
    "RON",
    "RSD",
    "RUB",
    "SAR",
    "SEK",
    "SGD",
    "THB",
    "TRY",
    "UAH",
    "USD",
    "UYU",
    "UZS",
    "VND",
    "ZAR"
);
HTTP/1.1 200 OK
Content-Type: application/json

[
    "AED",
    "ALL",
    "AMD",
    "ARS",
    "AUD",
    "AZN",
    "BGN",
    "BRL",
    "BYR",
    "CAD",
    "CHF",
    "CLP",
    "CNY",
    "COP",
    "CZK",
    "DKK",
    "DZD",
    "EGP",
    "EUR",
    "GBP",
    "GEL",
    "HKD",
    "HRK",
    "HUF",
    "IDR",
    "ILS",
    "INR",
    "JPY",
    "KES",
    "KGS",
    "KRW",
    "KZT",
    "MAD",
    "MDL",
    "MKD",
    "MNT",
    "MXN",
    "MYR",
    "NGN",
    "NOK",
    "NZD",
    "PEN",
    "PHP",
    "PKR",
    "PLN",
    "RON",
    "RSD",
    "RUB",
    "SAR",
    "SEK",
    "SGD",
    "THB",
    "TRY",
    "UAH",
    "USD",
    "UYU",
    "UZS",
    "VND",
    "ZAR"
]
[
    "AED",
    "ALL",
    "AMD",
    "ARS",
    "AUD",
    "AZN",
    "BGN",
    "BRL",
    "BYR",
    "CAD",
    "CHF",
    "CLP",
    "CNY",
    "COP",
    "CZK",
    "DKK",
    "DZD",
    "EGP",
    "EUR",
    "GBP",
    "GEL",
    "HKD",
    "HRK",
    "HUF",
    "IDR",
    "ILS",
    "INR",
    "JPY",
    "KES",
    "KGS",
    "KRW",
    "KZT",
    "MAD",
    "MDL",
    "MKD",
    "MNT",
    "MXN",
    "MYR",
    "NGN",
    "NOK",
    "NZD",
    "PEN",
    "PHP",
    "PKR",
    "PLN",
    "RON",
    "RSD",
    "RUB",
    "SAR",
    "SEK",
    "SGD",
    "THB",
    "TRY",
    "UAH",
    "USD",
    "UYU",
    "UZS",
    "VND",
    "ZAR"
]

게임 키

엔터티 생성

게임 제공 엔터티를 만듭니다.

HTTP 요청

POST https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery

파라미터 유형 설명
project_id
integer 프로젝트 ID.
sku
string 아이템 고유 ID입니다. SKU에는 소문자 라틴어 영숫자, 대시, 밑줄만 사용할 수 있습니다.
name
object 게임 제공 엔터티에 대한 지역화된 이름의 배열입니다.
description
object 게임 제공 엔터티에 대한 지역화된 설명의 배열입니다.
system_requirements
string 현재 게임에 대한 시스템 요구 사항입니다.
image_url
string 이미지의 URL입니다. 옵션.
long_description
string 게임 제공 엔터티에 대한 자세한 설명입니다. 옵션.
locales_list
string 쉼표로 구분된 지역화 목록입니다. 옵션.
publisher
string 게임 퍼블리셔입니다. 옵션.
developer
string 게임 개발자입니다. 옵션.
string 게임에 대한 비디오의 링크입니다. 옵션.
genre
string 게임 장르입니다. 옵션.
additional_info
string 게임에 대한 추가 정보입니다. 옵션.
string 포럼의 링크입니다. 옵션.
string 지원부 연락처가 제공되는 페이지의 링크입니다. 옵션.
old_price
string 이 게임의 이전 가격입니다. 옵션.
parent_id
integer 부모 게임의 ID입니다. 옵션.
default_currency
string 구매의 기본 통화입니다. 통화의 3자리 정의가 ISO 4217에 따라 사용됩니다.
delivery
object 선주문 키 전달에 관한 데이터.
delivery.release_date_type
string 릴리스 날짜 유형. 특정 UTC 날짜 또는 분기 및 연도로 설정할 수 있습니다. 후자의 경우, 'delivery.release_date_type' 이 지정된 분기의 마지막 날짜로 설정됩니다.
delivery.delivery_method
string 키 전달 방법.
delivery.delivery_method.default
string 기본 키 전달 방법.
delivery.delivery_method.exception
string 키 전달 방법의 예외.
release_date
string 게임의 예상 릴리스 날짜입니다. 옵션.
drm
array DRM에 대한 데이터가 포함된 배열입니다.
drm.id
integer 이 게임에 사용 가능한 DRM의 ID입니다.
drm.name
integer DRM 이름.
drm.prices
array DRM에 대한 게임 가격의 배열입니다. 옵션.
drm.codes
array DRM을 위한 키 배열. 옵션.
drm.codes.total
string 총 키 수입니다. 옵션.
drm.codes.active
string 활성 키의 수. 옵션.
drm.codes.used
string 사용한 키의 수. 옵션.
drm.platforms
array DRM 플랫폼에 대한 데이터가 포함된 배열입니다.
drm.platforms.id
integer 이 DRM에 의해 지원되는 플랫폼의 ID입니다.
drm.enabled
boolean DRM이 이 게임에 사용되는지 여부입니다.
obtain_code_from_db
boolean 엑솔라 데이터베이스에서 게임 키를 사용하는지 여부입니다. 옵션.
obtain_code_from_api
boolean API를 통해 받은 게임 키를 사용하는지 여부입니다. 옵션.
files
array 다운로드를 위한 설치 파일 배열. 옵션.
files.name
string 파일 이름. 옵션.
files.url
string 다운로드 URL. 옵션.
tips_enabled
boolean 개발자를 위한 팁 사용 여부. 옵션.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->CreateGameDeliveryEntity(array(
    'project_id' => PROJECT_ID,
    'request' =>  'sku' => 'GTA5',
   'name' =>
  stdClass::__set_state(array(
     'en' => 'GTA V',
  )),
   'description' =>
  stdClass::__set_state(array(
     'en' => 'Grand Theft Auto V is an open world, action-adventure video game developed by Rockstar North and published by Rockstar Games.',
  )),
   'system_requirements' => 'OS: Windows 8.1 64 Bit, Windows 8 64 Bit, Windows 7 64 Bit Service Pack 1, Windows Vista 64 Bit Service Pack 2* (*NVIDIA video card recommended if running Vista OS)',
   'image_url' => '//cdn2.xsolla.com/img/misc/merchant/default-item.png',
   'long_description' => NULL,
   'locales_list' => NULL,
   'publisher' => NULL,
   'developer' => NULL,
   'video_link' => NULL,
   'genre' => NULL,
   'additional_info' => NULL,
   'forum_link' => NULL,
   'support_link' => NULL,
   'old_price' => NULL,
   'parent_id' => NULL,
   'default_currency' => 'EUR',
   'delivery' =>
  stdClass::__set_state(array(
     'release_date_type' => 'exact_date',
     'delivery_method' =>
    stdClass::__set_state(array(
       'default' =>
      array (
        0 => 'key',
      ),
       'exceptions' =>
      stdClass::__set_state(array(
         'drmfree' =>
        array (
          0 => 'link',
          1 => 'key',
        ),
         'steam' =>
        array (
          0 => 'link',
        ),
      )),
    )),
     'is_pre_order' => false,
     'is_partner_side_processing' => false,
  )),
   'release_date' => '2016-01-01T00:00:00+00:00',
   'drm' =>
  array (
    0 =>
    stdClass::__set_state(array(
       'id' => 1,
       'name' => 'Steam',
       'platforms' =>
      array (
        0 =>
        stdClass::__set_state(array(
           'id' => 1,
        )),
        1 =>
        stdClass::__set_state(array(
           'id' => 2,
        )),
      ),
       'prices' =>
      stdClass::__set_state(array(
         'USD' => 19.989999999999998,
         'EUR' => 18.5,
      )),
       'codes' =>
      stdClass::__set_state(array(
         'total' => 0,
         'active' => 0,
         'used' => 0,
      )),
       'enabled' => true,
    )),
  ),
   'obtain_code_from_api' => false,
   'obtain_code_from_db' => false,
   'files' =>
  array (
  ),
   'tips_enabled' => false,
));
POST /merchant/v2/projects/{project_id}/game_delivery HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json

{
    "sku":"GTA5",
    "name":{
        "en":"GTA V"
    },
    "description":{
        "en":"Grand Theft Auto V is an open world, action-adventure video game developed by Rockstar North and published by Rockstar Games."
    },
    "system_requirements":"OS: Windows 8.1 64 Bit, Windows 8 64 Bit, Windows 7 64 Bit Service Pack 1, Windows Vista 64 Bit Service Pack 2* (*NVIDIA video card recommended if running Vista OS)",
    "image_url":"//cdn2.xsolla.com/img/misc/merchant/default-item.png",
    "long_description":null,
    "locales_list":null,
    "publisher":null,
    "developer":null,
    "video_link":null,
    "genre":null,
    "additional_info":null,
    "forum_link":null,
    "support_link":null,
    "old_price":null,
    "parent_id":null,
    "default_currency":"EUR",
    "delivery": {
      "release_date_type": "exact_date",
      "delivery_method": {
        "default": [
              "key"
              ],
              "exceptions": {
                 "drmfree": ["link","key"],
                 "steam": ["link"]
              }
      },
        'is_pre_order': false,
        'is_partner_side_processing': false
    },
    "release_date":"2016-01-01T00:00:00+00:00",
    "drm":[
        {
            "id":1,
            "name": "Steam",
            "platforms":[
                {
                    "id":1
                },
                {
                    "id":2
                }
            ],
            "prices":{
                "USD":19.99,
                "EUR":18.5
            },
            "codes": {
                "total": 0,
                "active": 0,
                "used": 0
            },
            "enabled":true
        }
    ],
    "obtain_code_from_api":false,
    "obtain_code_from_db":false,
    "files": [],
    "tips_enabled": false
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery' \
-X POST \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "sku":"GTA5",
    "name":{
        "en":"GTA V"
    },
    "description":{
        "en":"Grand Theft Auto V is an open world, action-adventure video game developed by Rockstar North and published by Rockstar Games."
    },
    "system_requirements":"OS: Windows 8.1 64 Bit, Windows 8 64 Bit, Windows 7 64 Bit Service Pack 1, Windows Vista 64 Bit Service Pack 2* (*NVIDIA video card recommended if running Vista OS)",
    "image_url":"//cdn2.xsolla.com/img/misc/merchant/default-item.png",
    "long_description":null,
    "locales_list":null,
    "publisher":null,
    "developer":null,
    "video_link":null,
    "genre":null,
    "additional_info":null,
    "forum_link":null,
    "support_link":null,
    "old_price":null,
    "parent_id":null,
    "default_currency":"EUR",
    "delivery": {
      "release_date_type": "exact_date",
      "delivery_method": {
        "default": [
              "key"
              ],
              "exceptions": {
                 "drmfree": ["link","key"],
                 "steam": ["link"]
              }
      },
        'is_pre_order': false,
        'is_partner_side_processing': false
    },
    "release_date":"2016-01-01T00:00:00+00:00",
    "drm":[
        {
            "id":1,
            "name": "Steam",
            "platforms":[
                {
                    "id":1
                },
                {
                    "id":2
                }
            ],
            "prices":{
                "USD":19.99,
                "EUR":18.5
            },
            "codes": {
                "total": 0,
                "active": 0,
                "used": 0
            },
            "enabled":true
        }
    ],
    "obtain_code_from_api":false,
    "obtain_code_from_db":false,
    "files": [],
    "tips_enabled": false
}'
응답
<?php

// example response
$response = array (
    'id' => 77
);
HTTP/1.1 201 Created
Content-Type: application/json

{
    "id": 77
}
{
    "id": 77
}

엔터티 가져오기

게임 제공 엔터티를 가져옵니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery/{game_delivery_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID.
game_delivery_id
integer 게임 제공 엔터티의 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->GetGameDeliveryEntity(array(
    'project_id' => PROJECT_ID,
    'game_delivery_id' => GAME_DELIVERY_ID
));
GET /merchant/v2/projects/{project_id}/game_delivery/{game_delivery_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery/{game_delivery_id}' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    array (
      'request' =>  'sku' => 'GTA5',
     'name' =>
    stdClass::__set_state(array(
       'en' => 'GTA V',
    )),
     'description' =>
    stdClass::__set_state(array(
       'en' => 'Grand Theft Auto V is an open world, action-adventure video game developed by Rockstar North and published by Rockstar Games.',
    )),
     'system_requirements' => 'OS: Windows 8.1 64 Bit, Windows 8 64 Bit, Windows 7 64 Bit Service Pack 1, Windows Vista 64 Bit Service Pack 2* (*NVIDIA video card recommended if running Vista OS)',
     'image_url' => '//cdn2.xsolla.com/img/misc/merchant/default-item.png',
     'long_description' => NULL,
     'locales_list' => NULL,
     'publisher' => NULL,
     'developer' => NULL,
     'video_link' => NULL,
     'genre' => NULL,
     'additional_info' => NULL,
     'forum_link' => NULL,
     'support_link' => NULL,
     'old_price' => NULL,
     'parent_id' => NULL,
     'default_currency' => 'EUR',
     'delivery' =>
    stdClass::__set_state(array(
       'release_date_type' => 'exact_date',
       'delivery_method' =>
      stdClass::__set_state(array(
         'default' =>
        array (
          0 => 'key',
        ),
         'exceptions' =>
        stdClass::__set_state(array(
           'drmfree' =>
          array (
            0 => 'link',
            1 => 'key',
          ),
           'steam' =>
          array (
            0 => 'link',
          ),
        )),
      )),
       'is_pre_order' => false,
       'is_partner_side_processing' => false,
    )),
     'release_date' => '2016-01-01T00:00:00+00:00',
     'drm' =>
    array (
      0 =>
      stdClass::__set_state(array(
         'id' => 1,
         'name' => 'Steam',
         'platforms' =>
        array (
          0 =>
          stdClass::__set_state(array(
             'id' => 1,
          )),
          1 =>
          stdClass::__set_state(array(
             'id' => 2,
          )),
        ),
         'prices' =>
        stdClass::__set_state(array(
           'USD' => 19.989999999999998,
           'EUR' => 18.5,
        )),
         'codes' =>
        stdClass::__set_state(array(
           'total' => 0,
           'active' => 0,
           'used' => 0,
        )),
         'enabled' => true,
      )),
    ),
     'obtain_code_from_api' => false,
     'obtain_code_from_db' => false,
     'files' =>
    array (
    ),
     'tips_enabled' => false,
  ));
HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 9,
    "sku":"GTA5",
    "name":{
        "en":"GTA V"
    },
    "description":{
        "en":"Grand Theft Auto V is an open world, action-adventure video game developed by Rockstar North and published by Rockstar Games."
    },
    "system_requirements":"OS: Windows 8.1 64 Bit, Windows 8 64 Bit, Windows 7 64 Bit Service Pack 1, Windows Vista 64 Bit Service Pack 2* (*NVIDIA video card recommended if running Vista OS)",
    "image_url":"//cdn2.xsolla.com/img/misc/merchant/default-item.png",
    "long_description":null,
    "locales_list":null,
    "publisher":null,
    "developer":null,
    "video_link":null,
    "genre":null,
    "additional_info":null,
    "forum_link":null,
    "support_link":null,
    "old_price":null,
    "parent_id":null,
    "default_currency":"EUR",
    "delivery": {
      "release_date_type": "exact_date",
      "delivery_method": {
        "default": [
              "key"
              ],
              "exceptions": {
                 "drmfree": ["link","key"],
                 "steam": ["link"]
              }
      },
        'is_pre_order': false,
        'is_partner_side_processing': false
    },
    "release_date":"2016-01-01T00:00:00+00:00",
    "drm":[
        {
            "id":1,
            "name": "Steam",
            "platforms":[
                {
                    "id":1
                },
                {
                    "id":2
                }
            ],
            "prices":{
                "USD":19.99,
                "EUR":18.5
            },
            "codes": {
                "total": 0,
                "active": 0,
                "used": 0
            },
            "enabled":true
        }
    ],
    "obtain_code_from_api":false,
    "obtain_code_from_db":false,
    "files": [],
    "tips_enabled": false
}
{
    "id": 9,
    "sku":"GTA5",
    "name":{
        "en":"GTA V"
    },
    "description":{
        "en":"Grand Theft Auto V is an open world, action-adventure video game developed by Rockstar North and published by Rockstar Games."
    },
    "system_requirements":"OS: Windows 8.1 64 Bit, Windows 8 64 Bit, Windows 7 64 Bit Service Pack 1, Windows Vista 64 Bit Service Pack 2* (*NVIDIA video card recommended if running Vista OS)",
    "image_url":"//cdn2.xsolla.com/img/misc/merchant/default-item.png",
    "long_description":null,
    "locales_list":null,
    "publisher":null,
    "developer":null,
    "video_link":null,
    "genre":null,
    "additional_info":null,
    "forum_link":null,
    "support_link":null,
    "old_price":null,
    "parent_id":null,
    "default_currency":"EUR",
    "delivery": {
      "release_date_type": "exact_date",
      "delivery_method": {
        "default": [
              "key"
              ],
              "exceptions": {
                 "drmfree": ["link","key"],
                 "steam": ["link"]
              }
      },
        'is_pre_order': false,
        'is_partner_side_processing': false
    },
    "release_date":"2016-01-01T00:00:00+00:00",
    "drm":[
        {
            "id":1,
            "name": "Steam",
            "platforms":[
                {
                    "id":1
                },
                {
                    "id":2
                }
            ],
            "prices":{
                "USD":19.99,
                "EUR":18.5
            },
            "codes": {
                "total": 0,
                "active": 0,
                "used": 0
            },
            "enabled":true
        }
    ],
    "obtain_code_from_api":false,
    "obtain_code_from_db":false,
    "files": [],
    "tips_enabled": false
}

엔터티 업데이트

게임 제공 엔터티를 업데이트합니다.

HTTP 요청

PUT https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery/{game_delivery_id}

파라미터 유형 설명
project_id
integer 프로젝트 ID.
sku
string 아이템 고유 ID입니다. SKU에는 소문자 라틴어 영숫자, 대시, 밑줄만 사용할 수 있습니다.
name
object 게임 제공 엔터티에 대한 지역화된 이름의 배열입니다.
description
object 게임 제공 엔터티에 대한 지역화된 설명의 배열입니다.
system_requirements
string 현재 게임에 대한 시스템 요구 사항입니다.
image_url
string 이미지의 URL입니다. 옵션.
long_description
string 게임 제공 엔터티에 대한 자세한 설명입니다. 옵션.
locales_list
string 쉼표로 구분된 지역화 목록입니다. 옵션.
publisher
string 게임 퍼블리셔입니다. 옵션.
developer
string 게임 개발자입니다. 옵션.
string 게임에 대한 비디오의 링크입니다. 옵션.
genre
string 게임 장르입니다. 옵션.
additional_info
string 게임에 대한 추가 정보입니다. 옵션.
string 포럼의 링크입니다. 옵션.
string 지원부 연락처가 제공되는 페이지의 링크입니다. 옵션.
old_price
string 이 게임의 이전 가격입니다. 옵션.
parent_id
integer 부모 게임의 ID입니다. 옵션.
default_currency
string 구매의 기본 통화입니다. 통화의 3자리 정의가 ISO 4217에 따라 사용됩니다.
delivery
object 선주문 키 전달에 관한 데이터.
delivery.release_date_type
string 릴리스 날짜 유형. 특정 UTC 날짜 또는 분기 및 연도로 설정할 수 있습니다. 후자의 경우, 'delivery.release_date_type' 이 지정된 분기의 마지막 날짜로 설정됩니다.
delivery.delivery_method
string 키 전달 방법.
delivery.delivery_method.default
string 기본 키 전달 방법.
delivery.delivery_method.exception
string 키 전달 방법의 예외.
release_date
string 게임의 예상 릴리스 날짜입니다. 옵션.
drm
array DRM에 대한 데이터가 포함된 배열입니다.
drm.id
integer 이 게임에 사용 가능한 DRM의 ID입니다.
drm.name
integer DRM 이름.
drm.prices
array DRM에 대한 게임 가격의 배열입니다. 옵션.
drm.codes
array DRM을 위한 키 배열. 옵션.
drm.codes.total
string 총 키 수입니다. 옵션.
drm.codes.active
string 활성 키의 수. 옵션.
drm.codes.used
string 사용한 키의 수. 옵션.
drm.platforms
array DRM 플랫폼에 대한 데이터가 포함된 배열입니다.
drm.platforms.id
integer 이 DRM에 의해 지원되는 플랫폼의 ID입니다.
drm.enabled
boolean DRM이 이 게임에 사용되는지 여부입니다.
obtain_code_from_db
boolean 엑솔라 데이터베이스에서 게임 키를 사용하는지 여부입니다. 옵션.
obtain_code_from_api
boolean API를 통해 받은 게임 키를 사용하는지 여부입니다. 옵션.
files
array 다운로드를 위한 설치 파일 배열. 옵션.
files.name
string 파일 이름. 옵션.
files.url
string 다운로드 URL. 옵션.
tips_enabled
boolean 개발자를 위한 팁 사용 여부. 옵션.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->UpdateGameDeliveryEntity(array(
  'project_id' => PROJECT_ID,
  'request' => array (
       'sku' => 'GTA5',
       'name' =>
           array (
               'en' => 'GTA V',
           ),
       'description' =>
           array (
               'en' => 'Grand Theft Auto V is an open world, action-adventure video game developed by Rockstar North and published by Rockstar Games.',
           ),
       'system_requirements' => 'OS: Windows 8.1 64 Bit, Windows 8 64 Bit, Windows 7 64 Bit Service Pack 1, Windows Vista 64 Bit Service Pack 2* (*NVIDIA video card recommended if running Vista OS)',
       'image_url' => '//cdn2.xsolla.com/img/misc/merchant/default-item.png',
       'long_description' => NULL,
       'locales_list' => NULL,
       'publisher' => NULL,
       'developer' => NULL,
       'video_link' => NULL,
       'genre' => NULL,
       'additional_info' => NULL,
       'forum_link' => NULL,
       'support_link' => NULL,
       'old_price' => NULL,
       'parent_id' => NULL,
       'default_currency' => 'EUR',
       'release_date' => '2016-01-01T00:00:00+00:00',
       "delivery" =>
           array (
        'release_date_type': 'exact_date',
        'delivery_method'=>
            array (
            'default'=>
                array (
                'key' => '123'
            ),
            'exceptions'=>
                array (
               'drmfree'=>
                   array ('link','key'),
               'steam'=>
                   array ('link')
            )
        ),
       'drm' =>
           array (
               array (
                   'id' => 1,
                   'name' => 'Game Keys'
                   'platforms' =>
                       array (
                           array (
                               'id' => 1,
                           ),
                           array (
                               'id' => 2,
                           ),
                       ),
                   'prices' =>
                       array (
                           'USD' => 19.99,
                           'EUR' => 18.5,
                       ),
                    'codes' =>
                        array (
                          'total' => 0,
                          "active" => 0,
                          "used" => 0
                        )
                   'enabled' => true
               ),
           ),
       'obtain_code_from_api' => false,
       'obtain_code_from_db' => false,
       'files' =>
           array (),
       'tips_enabled' => false
   )
));
PUT /merchant/v2/projects/{project_id}/game_delivery/{game_delivery_id} HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
{
    "sku":"GTA5",
    "name":{
        "en":"GTA V"
    },
    "description":{
        "en":"Grand Theft Auto V is an open world, action-adventure video game developed by Rockstar North and published by Rockstar Games."
    },
    "system_requirements":"OS: Windows 8.1 64 Bit, Windows 8 64 Bit, Windows 7 64 Bit Service Pack 1, Windows Vista 64 Bit Service Pack 2* (*NVIDIA video card recommended if running Vista OS)",
    "image_url":"//cdn2.xsolla.com/img/misc/merchant/default-item.png",
    "long_description":null,
    "locales_list":null,
    "publisher":null,
    "developer":null,
    "video_link":null,
    "genre":null,
    "additional_info":null,
    "forum_link":null,
    "support_link":null,
    "old_price":null,
    "parent_id":null,
    "default_currency":"EUR",
    "delivery": {
      "release_date_type": "exact_date",
      "delivery_method": {
        "default": [
              "key"
              ],
              "exceptions": {
                 "drmfree": ["link","key"],
                 "steam": ["link"]
              }
      },
        'is_pre_order': false,
        'is_partner_side_processing': false
    },
    "release_date":"2016-01-01T00:00:00+00:00",
    "drm":[
        {
            "id":1,
            "name": "Steam",
            "platforms":[
                {
                    "id":1
                },
                {
                    "id":2
                }
            ],
            "prices":{
                "USD":19.99,
                "EUR":18.5
            },
            "codes": {
                "total": 0,
                "active": 0,
                "used": 0
            },
            "enabled":true
        }
    ],
    "obtain_code_from_api":false,
    "obtain_code_from_db":false,
    "files": [],
    "tips_enabled": false
}
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery/{game_delivery_id}' \
-X PUT \
-u merchant_id:merchant_api_key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "sku":"GTA5",
    "name":{
        "en":"GTA V"
    },
    "description":{
        "en":"Grand Theft Auto V is an open world, action-adventure video game developed by Rockstar North and published by Rockstar Games."
    },
    "system_requirements":"OS: Windows 8.1 64 Bit, Windows 8 64 Bit, Windows 7 64 Bit Service Pack 1, Windows Vista 64 Bit Service Pack 2* (*NVIDIA video card recommended if running Vista OS)",
    "image_url":"//cdn2.xsolla.com/img/misc/merchant/default-item.png",
    "long_description":null,
    "locales_list":null,
    "publisher":null,
    "developer":null,
    "video_link":null,
    "genre":null,
    "additional_info":null,
    "forum_link":null,
    "support_link":null,
    "old_price":null,
    "parent_id":null,
    "default_currency":"EUR",
    "delivery": {
      "release_date_type": "exact_date",
      "delivery_method": {
        "default": [
              "key"
              ],
              "exceptions": {
                 "drmfree": ["link","key"],
                 "steam": ["link"]
              }
      },
        'is_pre_order': false,
        'is_partner_side_processing': false
    },
    "release_date":"2016-01-01T00:00:00+00:00",
    "drm":[
        {
            "id":1,
            "name": "Steam",
            "platforms":[
                {
                    "id":1
                },
                {
                    "id":2
                }
            ],
            "prices":{
                "USD":19.99,
                "EUR":18.5
            },
            "codes": {
                "total": 0,
                "active": 0,
                "used": 0
            },
            "enabled":true
        }
    ],
    "obtain_code_from_api":false,
    "obtain_code_from_db":false,
    "files": [],
    "tips_enabled": false
}'
응답
<?php

$response = null;
HTTP/1.1 204 No Content

엔터티 목록 가져오기

모든 게임 제공 엔터티의 목록입니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery

파라미터 유형 설명
project_id
integer 프로젝트 ID.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListGameDeliveryEntities(array(
    'project_id' => PROJECT_ID
));
GET /merchant/v2/projects/{project_id}/game_delivery HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    array (
        array (
            'id' => 9,
            'localized_name' => 'GTA V',
            'parent_id' => NULL,
            'default_currency' => 'EUR',
            'drm' =>
                array (
                    array (
                        'id' => 1,
                        'name' => 'Steam',
                        'image' => NULL,
                        'platforms' =>
                            array (
                                array (
                                    'id' => 1,
                                    'name' => 'Windows',
                                ),
                                array (
                                    'id' => 2,
                                    'name' => 'Linux',
                                ),
                            ),
                        'prices' =>
                            array (
                                'USD' => 19.99,
                                'EUR' => 18.5,
                            ),
                        'codes' =>
                            array (
                                'total' => 1000,
                                'active' => 999,
                                'used' => 1,
                            ),
                        ),
                    array (
                        'id' => 2,
                        'name' => 'Playstation',
                        'image' => NULL,
                        'platforms' =>
                            array (
                                array (
                                    'id' => 3,
                                    'name' => 'Playstation 3',
                                ),
                                array (
                                    'id' => 4,
                                    'name' => 'Playstation 4',
                                ),
                            ),
                        'prices' =>
                            array (
                                'USD' => 19.99,
                                'EUR' => 18.5,
                            ),
                        'codes' =>
                            array (
                                'total' => 1000,
                                'active' => 999,
                                'used' => 1,
                            ),
                    ),
                ),
        ),
    )
);
HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 9,
        "localized_name": "GTA V",
        "parent_id": null,
        "default_currency": "EUR",
        "drm": [
            {
                "id": 1,
                "name": "Steam",
                "image": null,
                "platforms": [
                    {
                        "id": 1,
                        "name": "Windows"
                    },
                    {
                        "id": 2,
                        "name": "Linux"
                    }
                ],
                "prices": {
                    "USD": 19.99,
                    "EUR": 18.5
                },
                "codes": {
                    "total": 1000,
                    "active": 999,
                    "used": 1
                }
            },
            {
                "id": 2,
                "name": "Playstation",
                "image": null,
                "platforms": [
                    {
                        "id": 3,
                        "name": "Playstation 3"
                    },
                    {
                        "id": 4,
                        "name": "Playstation 4"
                    }
                ],
                "prices": {
                    "USD": 19.99,
                    "EUR": 18.5
                },
                "codes": {
                    "total": 1000,
                    "active": 999,
                    "used": 1
                }
            }
        ]
    }
]
[
    {
        "id": 9,
        "localized_name": "GTA V",
        "parent_id": null,
        "default_currency": "EUR",
        "drm": [
            {
                "id": 1,
                "name": "Steam",
                "image": null,
                "platforms": [
                    {
                        "id": 1,
                        "name": "Windows"
                    },
                    {
                        "id": 2,
                        "name": "Linux"
                    }
                ],
                "prices": {
                    "USD": 19.99,
                    "EUR": 18.5
                },
                "codes": {
                    "total": 1000,
                    "active": 999,
                    "used": 1
                }
            },
            {
                "id": 2,
                "name": "Playstation",
                "image": null,
                "platforms": [
                    {
                        "id": 3,
                        "name": "Playstation 3"
                    },
                    {
                        "id": 4,
                        "name": "Playstation 4"
                    }
                ],
                "prices": {
                    "USD": 19.99,
                    "EUR": 18.5
                },
                "codes": {
                    "total": 1000,
                    "active": 999,
                    "used": 1
                }
            }
        ]
    }
]

DRM 목록 가져오기

사용 가능한 DRM 플랫폼의 목록입니다.

HTTP 요청

GET https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/drm

파라미터 유형 설명
merchant_id
integer 판매자 ID입니다.
Copy
Full screen
  • php
  • http
  • curl
요청
<?php

$response = $xsollaClient->ListGameDeliveryDrmPlatforms();
GET /merchant/v2/merchants/{merchant_id}/drm HTTP/1.1
User-Agent: xsolla-api-client/1.0
Host: api.xsolla.com
Accept: application/json
Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
Content-Type: application/json
$ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/drm' \
-X GET \
-u merchant_id:merchant_api_key
응답
<?php

// example response
$response = array (
    'drm' =>
        array (
            array (
                'id' => 1,
                'name' => 'Steam',
                'image' => '//cdn2.xsolla.com/misc/game_delivery/drms/set2/1.1450132085.svg',
                'platforms' =>
                    array (
                        array (
                            'id' => 1,
                            'name' => 'Windows',
                        ),
                        array (
                            'id' => 2,
                            'name' => 'Linux',
                        ),
                        array (
                            'id' => 6,
                            'name' => 'Mac',
                        ),
                    ),
            ),
            array (
                'id' => 2,
                'name' => 'Playstation',
                'image' => '//cdn2.xsolla.com/misc/game_delivery/drms/set2/2.1449183647.svg',
                'platforms' =>
                    array (
                        array (
                            'id' => 3,
                            'name' => 'Playstation 3',
                        ),
                        array (
                            'id' => 4,
                            'name' => 'Playstation 4',
                        ),
                    ),
            ),
            array (
                'id' => 3,
                'name' => 'XBox',
                'image' => '//cdn2.xsolla.com/misc/game_delivery/drms/set2/3.1449183647.svg',
                'platforms' =>
                    array (
                        array (
                            'id' => 5,
                            'name' => 'XBox One',
                        ),
                        array (
                            'id' => 7,
                            'name' => 'XBox 360',
                        ),
                    ),
            ),
            array (
                'id' => 4,
                'name' => 'Uplay',
                'image' => '//cdn2.xsolla.com/misc/game_delivery/drms/set2/4.1450201713.svg',
                'platforms' =>
                    array (
                        array (
                            'id' => 1,
                            'name' => 'Windows',
                        ),
                        array (
                            'id' => 2,
                            'name' => 'Linux',
                        ),
                        array (
                            'id' => 6,
                            'name' => 'Mac',
                        ),
                    ),
            ),
            array (
                'id' => 5,
                'name' => 'Origin',
                'image' => '//cdn2.xsolla.com/misc/game_delivery/drms/set2/5.1450201747.svg',
                'platforms' =>
                    array (
                        array (
                            'id' => 1,
                            'name' => 'Windows',
                        ),
                        array (
                            'id' => 2,
                            'name' => 'Linux',
                        ),
                        array (
                            'id' => 6,
                            'name' => 'Mac',
                        ),
                    ),
            ),
            array (
                'id' => 6,
                'name' => 'DRM Free',
                'image' => '//cdn2.xsolla.com/misc/game_delivery/drms/set2/6.1450201849.svg',
                'platforms' =>
                    array (
                        array (
                            'id' => 1,
                            'name' => 'Windows',
                        ),
                        array (
                            'id' => 2,
                            'name' => 'Linux',
                        ),
                        array (
                            'id' => 6,
                            'name' => 'Mac',
                        ),
                    )
            )
        ),
    'platforms' =>
        array (
            array (
                'id' => 1,
                'name' => 'Windows',
            ),
            array (
                'id' => 2,
                'name' => 'Linux',
            ),
            array (
                'id' => 3,
                'name' => 'Playstation 3',
            ),
            array (
                'id' => 4,
                'name' => 'Playstation 4',
            ),
            array (
                'id' => 5,
                'name' => 'XBox One',
            ),
            array (
                'id' => 6,
                'name' => 'Mac',
            ),
            array (
                'id' => 7,
                'name' => 'XBox 360',
            )
        )
);
HTTP/1.1 200 OK
Content-Type: application/json

{
    "drm":[
        {
            "id":1,
            "name":"Steam",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/1.1450132085.svg",
            "platforms":[
                {
                    "id":1,
                    "name":"Windows"
                },
                {
                    "id":2,
                    "name":"Linux"
                },
                {
                    "id":6,
                    "name":"Mac"
                }
            ]
        },
        {
            "id":2,
            "name":"Playstation",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/2.1449183647.svg",
            "platforms":[
                {
                    "id":3,
                    "name":"Playstation 3"
                },
                {
                    "id":4,
                    "name":"Playstation 4"
                }
            ]
        },
        {
            "id":3,
            "name":"XBox",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/3.1449183647.svg",
            "platforms":[
                {
                    "id":5,
                    "name":"XBox One"
                },
                {
                    "id":7,
                    "name":"XBox 360"
                }
            ]
        },
        {
            "id":4,
            "name":"Uplay",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/4.1450201713.svg",
            "platforms":[
                {
                    "id":1,
                    "name":"Windows"
                },
                {
                    "id":2,
                    "name":"Linux"
                },
                {
                    "id":6,
                    "name":"Mac"
                }
            ]
        },
        {
            "id":5,
            "name":"Origin",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/5.1450201747.svg",
            "platforms":[
                {
                    "id":1,
                    "name":"Windows"
                },
                {
                    "id":2,
                    "name":"Linux"
                },
                {
                    "id":6,
                    "name":"Mac"
                }
            ]
        },
        {
            "id":6,
            "name":"DRM Free",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/6.1450201849.svg",
            "platforms":[
                {
                    "id":1,
                    "name":"Windows"
                },
                {
                    "id":2,
                    "name":"Linux"
                },
                {
                    "id":6,
                    "name":"Mac"
                }
            ]
        }
    ],
    "platforms":[
        {
            "id":1,
            "name":"Windows"
        },
        {
            "id":2,
            "name":"Linux"
        },
        {
            "id":3,
            "name":"Playstation 3"
        },
        {
            "id":4,
            "name":"Playstation 4"
        },
        {
            "id":5,
            "name":"XBox One"
        },
        {
            "id":6,
            "name":"Mac"
        },
        {
            "id":7,
            "name":"XBox 360"
        }
    ]
}
{
    "drm":[
        {
            "id":1,
            "name":"Steam",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/1.1450132085.svg",
            "platforms":[
                {
                    "id":1,
                    "name":"Windows"
                },
                {
                    "id":2,
                    "name":"Linux"
                },
                {
                    "id":6,
                    "name":"Mac"
                }
            ]
        },
        {
            "id":2,
            "name":"Playstation",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/2.1449183647.svg",
            "platforms":[
                {
                    "id":3,
                    "name":"Playstation 3"
                },
                {
                    "id":4,
                    "name":"Playstation 4"
                }
            ]
        },
        {
            "id":3,
            "name":"XBox",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/3.1449183647.svg",
            "platforms":[
                {
                    "id":5,
                    "name":"XBox One"
                },
                {
                    "id":7,
                    "name":"XBox 360"
                }
            ]
        },
        {
            "id":4,
            "name":"Uplay",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/4.1450201713.svg",
            "platforms":[
                {
                    "id":1,
                    "name":"Windows"
                },
                {
                    "id":2,
                    "name":"Linux"
                },
                {
                    "id":6,
                    "name":"Mac"
                }
            ]
        },
        {
            "id":5,
            "name":"Origin",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/5.1450201747.svg",
            "platforms":[
                {
                    "id":1,
                    "name":"Windows"
                },
                {
                    "id":2,
                    "name":"Linux"
                },
                {
                    "id":6,
                    "name":"Mac"
                }
            ]
        },
        {
            "id":6,
            "name":"DRM Free",
            "image":"//cdn2.xsolla.com/misc/game_delivery/drms/set2/6.1450201849.svg",
            "platforms":[
                {
                    "id":1,
                    "name":"Windows"
                },
                {
                    "id":2,
                    "name":"Linux"
                },
                {
                    "id":6,
                    "name":"Mac"
                }
            ]
        }
    ],
    "platforms":[
        {
            "id":1,
            "name":"Windows"
        },
        {
            "id":2,
            "name":"Linux"
        },
        {
            "id":3,
            "name":"Playstation 3"
        },
        {
            "id":4,
            "name":"Playstation 4"
        },
        {
            "id":5,
            "name":"XBox One"
        },
        {
            "id":6,
            "name":"Mac"
        },
        {
            "id":7,
            "name":"XBox 360"
        }
    ]
}

게임 키 위젯

위젯은 페이지에 쉽게 포함시킬 수 있으며, 판매 콘텐츠, 사용 가능한 DRM 및 플랫폼 목록, 결제 방법 선택에 대한 세부 정보를 게임유저에게 제공합니다.

스크립트는 당사 CDN에 있으며 여기. 에서 제공됩니다. 스크립트를 개발자 웹 사이트와 연동하려면 이 URL을 사용하십시오. 자세한 내용을 알아보려면 Github 저장소 를 확인해 보십시오.

게임 키 통합에는 두 가지 방식이 있습니다.

  • 기본 통합
  • 고급 통합
  • 옵션 간의 차이점에 대한 정보는 연동 가이드에 나와 있습니다. 초기 위젯을 위한 파라미터는 아래 선택된 옵션에 따라 다릅니다.

    간편 연동

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

    파라미터 유형 설명
    access_data
    string 사용자 및 결제에 대한 데이터가 포함된 값입니다. 필수.
    theme
    object 위젯 테마.
    theme.foreground
    string 위젯 전경색.
    theme.background
    string 위젯 배경색.
    target_element
    boolean 위젯이 렌더링되어야 하는 페이지의 요소입니다(jQuery 선택기를 사용해야 함, 예: '#widget-example'). 필수.

    개체 access_data의 파라미터 및 JSON 구조는 토큰을 가져오기 위한 파라미터 및 JSON 구조와 유사합니다.

    고급 연동

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

    파라미터 유형 설명
    access_token
    string 토큰. API에 의해 수신됩니다. 필수.
    샌드박스
    boolean True를 설정하여 결제 프로세스를 테스트합니다. sandbox-secure.xsolla.comsecure.xsolla.com 대신 사용됩니다.
    theme
    object 위젯 테마.
    theme.foreground
    string 위젯 전경색.
    theme.background
    string 위젯 배경색.
    target_element
    boolean 위젯이 렌더링되어야 하는 페이지의 요소입니다(jQuery 선택기를 사용해야 함, 예: '#widget-example'). 필수.

    다음 파라미터는 결제 인터페이스 모양을 정의하며 엑솔라 페이 스테이션 위젯에서 자세하게 확인하실 수 있습니다.

    파라미터 유형 설명
    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 Lightbox 프레임을 닫을 수 없습니다. 기본값은 'false'입니다.
    lightbox.closeByClick
    boolean 오버레이 클릭에 의한 Lightbox 닫기를 설정/해제합니다. 기본값은 'true'입니다.
    lightbox.closeByKeyboard
    boolean ESC 키 누르기에 의한 Lightbox 닫기를 설정/해제합니다. 기본값은 'true'입니다.
    lightbox.contentBackground
    string 프레임의 배경입니다. 기본 값은 '#ffffff'.
    lightbox.contentMargin
    string 프레임 주변의 여백입니다. 기본값은 '10px'입니다.
    lightbox.spinner
    string 애니메이션 로딩 스피너의 유형입니다. 'xsolla' 또는 'round'일 수 있습니다. 기본값은 'xsolla'입니다.
    lightbox.spinnerColor
    string 회전자의 색상입니다. 기본값에 의해 설정되지 않습니다.
    childWindow
    object 페이 스테이션 UI에 포함된 하위 창에 대한 옵션입니다. 모바일 버전에 적합합니다.
    childWindow.target
    string 대상 옵션은 페이스테이션 창을 여는 위치를 지정합니다. '_blank', '_self', '_parent'일 수 있습니다. 기본값은 '_blank'입니다.
    Notice: DOM이 완전히 로드된 경우 XPay2PlayWidget.create()를 수행해야 합니다. 해당 이벤트를 추적하거나, 위젯이 렌더링되어야 하는 요소 뒤에 스크립트를 추가할 수 있습니다.
    Copy
    Full screen
    • html
    간편 연동을 위해 callback으로 로드하는 비동기 스크립트의 예
    <script>
        var accessData = {"settings":{"project_id":14004},"purchase":{"pin_codes":{"codes":[{"digital_content":"game_sku"}]}}};
        var options = {
            access_data: accessData,
            theme : {
                foreground: 'green',
                background: 'light'
            },
            target_element: '#widget-example-element'
        };
        var s = document.createElement('script');
        s.type = "text/javascript";
        s.async = true;
        s.src = "//static.xsolla.com/embed/pay2play/2.1.5/widget.min.js";
        s.addEventListener('load', function (e) {
            var widgetInstance = XPay2PlayWidget.create(options);
        }, false);
        var head = document.getElementsByTagName('head')[0];
        head.appendChild(s);
    </script>
    간편 연동을 위해 callback으로 로드하는 비동기 스크립트의 예
    <script>
        var options = {
            access_token: 'abcdef1234567890abcdef1234567890',
            theme : {
                foreground: 'green',
                background: 'light'
            },
            target_element: '#widget-example-element'
        };
        var s = document.createElement('script');
        s.type = "text/javascript";
        s.async = true;
        s.src = "//static.xsolla.com/embed/pay2play/2.1.5/widget.min.js";
        s.addEventListener('load', function (e) {
            var widgetInstance = XPay2PlayWidget.create(options);
        }, false);
        var head = document.getElementsByTagName('head')[0];
        head.appendChild(s);
    </script>

    키 활성화

    게임 키를 활성화합니다.

    HTTP 요청

    POST https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery/redeem_key

    파라미터 유형 설명
    digital_content_sku
    string 고유 키 패키지 ID.
    drm_sku
    string 엑솔라 내 고유 DRM ID. 필수.
    key
    string 활성화 키. 필수.
    user_id
    string 사용자 ID. 필수.
    user_email
    string 사용자 이메일. 필수.
    language
    string ISO-639-1에 따른 사용자 언어. 필수.
    encoded
    boolean 키 암호화 사용 여부. ‘true’인 경우 프로젝트 비밀 키를 사용하여 AES-256-ECB 알고리즘으로 키를 암호화합니다.‘false’인 경우 기본값을 사용합니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <<?php
    $request = array(
        'project_id' => PROJECT_ID,
        'drm_sku' => ‘drmfree’,
        'key' => ‘wqdqwwddq9099022’,
        'user_id' => ‘sample_user’,
        'user_email' => ‘sample_email@mail.com’,
        'language' => ‘en’,
        'encoded' => false,     
    );
    
    POST /merchant/v2/projects/{project_id}/game_delivery/redeem_key HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
      "drm_sku": "‘drmfree’",
      "key": "wqdqwwddq9099022",
      "user_id": "sample_user",
      "user_email": "sample_email@mail.com",
      "language": "en",
      "encoded": false
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/game_delivery/redeem_key' \
    -X POST \
    -u merchant_id:merchant_api_key
    -d ‘{
      "drm_sku": "‘drmfree’",
      "key": "wqdqwwddq9099022",
      "user_id": "sample_user",
      "user_email": "sample_email@mail.com",
      "language": "en",
      "encoded": false
    }
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No content

    쿠폰

    쿠폰 가져오기

    쿠폰 코드로 쿠폰에 대한 정보를 가져옵니다.

    HTTP 요청

    GET https://api.xsolla.com/merchant/v2/projects/{project_id}/coupons/{code}

    파라미터 유형 설명
    project_id
    integer 프로젝트 ID.
    code
    string 쿠폰 코드입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->GetCoupon(array(
        'project_id' => PROJECT_ID,
        'code' => COUPON_CODE
    ));
    
    GET /merchant/v2/projects/{project_id}/coupons/{code} HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/coupons/{code}' \
    -X GET \
    -u merchant_id:merchant_api_key
    응답
    <?php
    
    // example response
    $response = array (
        'coupon_id' => 1,
        'project_id' => 1,
        'coupon_code' => 'CouPoNCoDe',
        'campaign_code' => 'CaMPaiGNCoDe',
        'virtual_currency_amount' => 0,
        'is_active' => 1,
        'redeems_count_remain' => 1,
        'redeems_count_for_user' => null,
        'expiration_date' => '2014-10-16 21:44:31',
        'virtual_items' =>
            array (
                'virtual_item' =>
                    array (
                        'id' => 77,
                        'sku' => 'T-43-3-unique-id',
                        'item_code' => null,
                        'advertisement_type' => null,
                        'name' =>
                            array (
                                'en' => 'T-34-3',
                            ),
                        'description' =>
                            array (
                                'en' => 'This Chinese Tier VIII medium tank is a real beast in its class.',
                            ),
                        'long_description' =>
                            array (
                            ),
                        'prices' =>
                            array (
                                'USD' => 40.09,
                            ),
                        'default_currency' => 'USD',
                        'enabled' => true,
                        'permanent' => false,
                        'purchase_limit' => 1,
                        'keywords' =>
                            array (
                            ),
                        'image_url' => 'http://livedemo.xsolla.com/airplanes/tank5.jpg',
                        'groups' =>
                            array (25),
                        'item_type' => 'Expiration',
                        'expiration' => 1296000,
                        'virtual_currency_price' => null,
                    ),
                'amount' => 1
            )
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "coupon_id": 1,
        "project_id": 1,
        "coupon_code": "CouPoNCoDe",
        "campaign_code": "CaMPaiGNCoDe",
        "virtual_currency_amount": 0,
        "is_active": 1,
        "redeems_count_remain": 1,
        "redeems_count_for_user": null,
        "expiration_date": "2014-10-16 21:44:31",
        "virtual_items": {
            "virtual_item": {
                "id": 77,
                "sku": "T-43-3-unique-id",
                "item_code": "chinese-medium-tank",
                "advertisement_type": null,
                "name": {
                    "en": "T-34-3"
                },
                "description": {
                    "en": "This Chinese Tier VIII medium tank is a real beast in its class."
                },
                "long_description": [],
                "prices": {
                    "USD": 40.09
                },
                "default_currency": "USD",
                "enabled": true,
                "permanent": false,
                "purchase_limit": 1,
                "keywords": [],
                "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
                "groups": [
                    25
                ],
                "item_type": "Expiration",
                "expiration": 1296000,
                "virtual_currency_price": null,
                "item_code": null
            },
            "amount": 1
        }
    }
    {
        "coupon_id": 1,
        "project_id": 1,
        "coupon_code": "CouPoNCoDe",
        "campaign_code": "CaMPaiGNCoDe",
        "virtual_currency_amount": 0,
        "is_active": 1,
        "redeems_count_remain": 1,
        "redeems_count_for_user": null,
        "expiration_date": "2014-10-16 21:44:31",
        "virtual_items": {
            "virtual_item": {
                "id": 77,
                "sku": "T-43-3-unique-id",
                "item_code": "chinese-medium-tank",
                "advertisement_type": null,
                "name": {
                    "en": "T-34-3"
                },
                "description": {
                    "en": "This Chinese Tier VIII medium tank is a real beast in its class."
                },
                "long_description": [],
                "prices": {
                    "USD": 40.09
                },
                "default_currency": "USD",
                "enabled": true,
                "permanent": false,
                "purchase_limit": 1,
                "keywords": [],
                "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
                "groups": [
                    25
                ],
                "item_type": "Expiration",
                "expiration": 1296000,
                "virtual_currency_price": null,
                "item_code": null
            },
            "amount": 1
        }
    }

    쿠폰 사용

    쿠폰 코드로 쿠폰을 사용합니다.

    HTTP 요청

    POST https://api.xsolla.com/merchant/v2/projects/{project_id}/coupons/{code}/redeem

    파라미터 유형 설명
    project_id
    integer 프로젝트 ID.
    code
    string 쿠폰 코드입니다.
    user_id
    string 사용자 ID.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->RedeemCoupon(array(
        'project_id' => PROJECT_ID,
        'code' => COUPON_CODE,
        'request' => array(
            'user_id' => 1
        )
    ));
    
    POST /merchant/v2/projects/{project_id}/coupons/{code}/redeem HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "user_id": 1
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/projects/{project_id}/coupons/{code}/redeem' \
    -X POST \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
        "user_id": 1
    }'
    응답
    <?php
    
    // example response
    $response = array (
        'coupon_id' => 1,
        'project_id' => 1,
        'coupon_code' => 'CouPoNCoDe',
        'campaign_code' => 'CaMPaiGNCoDe',
        'virtual_currency_amount' => 0,
        'is_active' => 1,
        'redeems_count_remain' => 1,
        'redeems_count_for_user' => null,
        'expiration_date' => '2014-10-16 21:44:31',
        'virtual_items' =>
            array (
                'virtual_item' =>
                    array (
                        'id' => 77,
                        'sku' => 'T-43-3-unique-id',
                        'item_code' => null,
                        'advertisement_type' => null,
                        'name' =>
                            array (
                                'en' => 'T-34-3',
                            ),
                        'description' =>
                            array (
                                'en' => 'This Chinese Tier VIII medium tank is a real beast in its class.',
                            ),
                        'long_description' =>
                            array (
                            ),
                        'prices' =>
                            array (
                                'USD' => 40.09,
                            ),
                        'default_currency' => 'USD',
                        'enabled' => true,
                        'permanent' => false,
                        'purchase_limit' => 1,
                        'keywords' =>
                            array (
                            ),
                        'image_url' => 'http://livedemo.xsolla.com/airplanes/tank5.jpg',
                        'groups' =>
                            array (25),
                        'item_type' => 'Expiration',
                        'expiration' => 1296000,
                        'virtual_currency_price' => null,
                    ),
                'amount' => 1
            )
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "coupon_id": 1,
        "project_id": 1,
        "coupon_code": "CouPoNCoDe",
        "campaign_code": "CaMPaiGNCoDe",
        "virtual_currency_amount": 0,
        "is_active": 1,
        "redeems_count_remain": 1,
        "redeems_count_for_user": null,
        "expiration_date": "2014-10-16 21:44:31",
        "virtual_items": {
            "virtual_item": {
                "id": 77,
                "sku": "T-43-3-unique-id",
                "item_code": "chinese-medium-tank",
                "advertisement_type": null,
                "name": {
                    "en": "T-34-3"
                },
                "description": {
                    "en": "This Chinese Tier VIII medium tank is a real beast in its class."
                },
                "long_description": [],
                "prices": {
                    "USD": 40.09
                },
                "default_currency": "USD",
                "enabled": true,
                "permanent": false,
                "purchase_limit": 1,
                "keywords": [],
                "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
                "groups": [
                    25
                ],
                "item_type": "Expiration",
                "expiration": 1296000,
                "virtual_currency_price": null,
                "item_code": null
            },
            "amount": 1
        }
    }
    {
        "coupon_id": 1,
        "project_id": 1,
        "coupon_code": "CouPoNCoDe",
        "campaign_code": "CaMPaiGNCoDe",
        "virtual_currency_amount": 0,
        "is_active": 1,
        "redeems_count_remain": 1,
        "redeems_count_for_user": null,
        "expiration_date": "2014-10-16 21:44:31",
        "virtual_items": {
            "virtual_item": {
                "id": 77,
                "sku": "T-43-3-unique-id",
                "item_code": "chinese-medium-tank",
                "advertisement_type": null,
                "name": {
                    "en": "T-34-3"
                },
                "description": {
                    "en": "This Chinese Tier VIII medium tank is a real beast in its class."
                },
                "long_description": [],
                "prices": {
                    "USD": 40.09
                },
                "default_currency": "USD",
                "enabled": true,
                "permanent": false,
                "purchase_limit": 1,
                "keywords": [],
                "image_url": "http:\/\/livedemo.xsolla.com\/airplanes\/tank5.jpg",
                "groups": [
                    25
                ],
                "item_type": "Expiration",
                "expiration": 1296000,
                "virtual_currency_price": null,
                "item_code": null
            },
            "amount": 1
        }
    }

    캠페인 생성

    새 쿠폰 캠페인을 생성합니다.

    HTTP 요청

    POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/coupon_promotions

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다. 필수.
    campaign_code
    string 캠페인 이름. 필수.
    project_id
    integer 프로젝트 ID. 필수.
    campaign_names
    object 현지화된 캠페인 이름을 포함하는 오브젝트입니다. 필수.
    expiration_date
    datetime ISO 8601에 따라 캠페인 만료 날짜는 YYYY-MM-DD’T’HH:MM:SS형식입니다.
    virtual_currency_amount
    float 보상에 포함된 가상 화폐 금액입니다.
    virtual_items
    array 보상에 포함된 가상 아이템 항목 매개변수의 배열입니다.
    virtual_items.sku
    string 가상 아이템 SKU입니다. virtual_items 배열이 전달된 경우 필수입니다.
    virtual_items.quantity
    integer 가상 아이템 수량입니다. virtual_items 배열이 전달된 경우 필수입니다.
    subscription_coupon
    object 보상에 구독 매개변수를 포함하는 오브젝트입니다.
    subscription_coupon.plan_id
    integer 구독 플랜 ID입니다. subscription_coupon 오브젝트가 전달된 경우 필수입니다.
    subscription_coupon.product_id
    integer 구독 상품 ID입니다. subscription_coupon 오브젝트가 전달된 경우 필수입니다.
    trial_period
    integer 무료체험 기간(일)입니다. subscription_coupon 오브젝트가 전달된 경우 필수입니다.
    redeems_count
    integer 최대 쿠폰 사용 횟수입니다. ‘null’이(가) 전달되면 사용 횟수가 무제한으로 설정됩니다.
    redeems_count_for_user
    integer 사용자 당 최대 쿠폰 사용 횟수입니다. ‘null’이(가) 전달되면 사용 횟수가 무제한으로 설정됩니다.
    campaign_redeems_count_for_user
    integer 캠페인 내 사용자 당 최대 쿠폰 사용 횟수입니다. ‘null’이(가) 전달되면 사용 횟수가 무제한으로 설정됩니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->CreateCouponPromotion(array(
        'merchant_id' => MERCHANT_ID,
        'request' => array(
            'campaign_code' => 'Sample Campaign',
            'project_id' => '27261',
            'campaign_names' =>
                array(
                    'en' => 'Sample Campaign',
                ),
             'expiration_date' => null,
             'redeems_count' => 1,
             'redeems_count_for_user' => null,
             'campaign_redeems_count_for_user' => null,
             'virtual_currency_amount' => 10,
             'virtual_items' => array (),
             'subscription_coupon' => null
             ),
    ));
    
    POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/coupon_promotions HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "campaign_code": "Sample Campaign",
        "project_id": "27261",
        "campaign_names": {
            "en": "Sample Campaign"
        },
        "expiration_date": null,
        "redeems_count": 1,
        "redeems_count_for_user": null,
        "campaign_redeems_count_for_user": null,
        "virtual_currency_amount": 10,
        "virtual_items": [],
        "subscription_coupon": null
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/coupon_promotions' \
    -X POST \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
        "campaign_code": "Sample Campaign",
        "project_id": "27261",
        "campaign_names": {
            "en": "Sample Campaign"
        },
        "expiration_date": null,
        "redeems_count": 1,
        "redeems_count_for_user": null,
        "campaign_redeems_count_for_user": null,
        "virtual_currency_amount": 10,
        "virtual_items": [],
        "subscription_coupon": null
    }'
    응답
    <?php
    
    $response = array (
        'id' => 8612
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 8612
    }
    {
        "id": 8612
    }

    캠페인에 쿠폰 추가

    쿠폰 캠페인에 쿠폰 코드를 추가합니다.

    HTTP 요청

    POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/coupon_promotions/{campaign_id}/coupons

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다. 필수.
    campaign_id
    integer 캠페인 ID. 필수.
    coupon_code
    string 쿠폰 코드입니다. 필수.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->CreateCoupon(array(
        'merchant_id' => MERCHANT_ID,
        'campaign_id' => CAMPAIGN_ID,
        'request' => array(
            'coupon_code' => '1029384756'
         ),
    ));
    
    POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/coupon_promotions/{campaign_id}/coupons HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "coupon_code": "1029384756"
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/coupon_promotions/{campaign_id}/coupons' \
    -X POST \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
        "coupon_code": "1029384756"
    }'
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No content

    프로모션에 캠페인 연결

    특정 프로모션에 쿠폰 캠페인을 연결합니다.

    HTTP 요청

    PUT https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/coupons

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다. 필수.
    promotion_id
    integer 프로모션 ID입니다. 필수.
    campaigns
    array of integers 캠페인 ID 배열입니다. 필수.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->UpdatePromotionCampaigns(array(
        'merchant_id' => MERCHANT_ID,
        'promoiton_id' => PROMOTION_ID,
        'request' => array(
            'id' => '12345',
            'campaigns' =>
                array(
                    7863,
                    7180
                ),
         ),
    ));
    
    PUT https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/coupons  HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "id": "12345",
        "campaigns": [
             7863,
             7180
        ]
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/coupons' \
    -X PUT \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
        "id": "12345",
        "campaigns": [
             7863,
             7180
        ]
    }'
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No content

    프로모션

    새 프로모션 생성

    새 프로모션을 생성합니다.

    HTTP 요청

    POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    technical_name
    string 프로모션의 기술명입니다.
    label
    array of strings 지역화된 레이블의 배열입니다. 결제 UI에 표시됩니다.
    name
    array of strings 지역화된 프로모션 이름의 배열입니다.
    description
    array of strings 지역화된 프로모션 설명의 배열입니다.
    project_id
    integer 프로젝트 ID.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->CreatePromotion(array(
        'request' => array (
             'technical_name' => 'Sample Promotion',
             'label' =>
                  array (
                      'en' => '30% SAVE',
                  ),
             'name' =>
                 array (
                     'en' => '30% PayPal Discount',
                 ),
             'description' =>
                 array (
                     'en' => '30% PayPal Discount Sample',
                 ),
             'project_id' => 1,
        )
    ));
    
    POST /merchant/v2/merchants/{merchant_id}/promotions HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "technical_name": "Sample Promotion",
        "label": {
            "en": "30% SAVE"
        },
        "name": {
            "en": "30% PayPal Discount"
        },
        "description": {
            "en": "30% PayPal Discount Sample"
        },
        "project_id": 1
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions' \
    -X POST \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
            "technical_name": "Sample Promotion",
            "label": {
                "en": "30% SAVE"
            },
            "name": {
                "en": "30% PayPal Discount"
            },
            "description": {
                "en": "30% PayPal Discount Sample"
            },
            "project_id": 1
        }'
    응답
    <?php
    
    // example response
    $response = array (
        'id' => 1
    );
    
    HTTP/1.1 201 Created
    
    {
        "id": 1
    }
    {
        "id": 1
    }

    프로모션 대상 가져오기

    프로모션을 대상 가져옵니다.

    HTTP 요청

    GET https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->GetPromotion(array(
        'promotion_id' => 'PROMOTION_ID'
    ));
    
    GET /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id} HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}' \
    -X GET \
    -u merchant_id:merchant_api_key
    응답
    <?php
    
    // example response
    $response = array (
        'id' => 1,
        'project_id' => 1,
        'technical_name' => 'Sample Promotion',
        'name' =>
            array (
                'en' => '30% PayPal Discount'
            ),
        'description' =>
            array (
                'en' => '30% PayPal Discount Sample'
            ),
        'read_only' => false,
        'enabled' => false
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "project_id": 1,
        "technical_name": "Sample Promotion",
        "label": {
            "en": "30% SAVE"
        },
        "name": {
            "en": "30% PayPal Discount"
        },
        "description": {
            "en": "30% PayPal Discount Sample"
        },
        "read_only": false,
        "enabled": false
    }
    {
        "id": 1,
        "project_id": 1,
        "technical_name": "Sample Promotion",
        "label": {
            "en": "30% SAVE"
        },
        "name": {
            "en": "30% PayPal Discount"
        },
        "description": {
            "en": "30% PayPal Discount Sample"
        },
        "read_only": false,
        "enabled": false
    }

    프로모션 업데이트

    프로모션을 업데이트합니다. 프로모션이 읽기 전용(read_only = true)이라면, "project_id" 파라미터를 변경할 수 없습니다.

    HTTP 요청

    PUT https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    technical_name
    string 프로모션의 기술명입니다.
    label
    array of strings 지역화된 레이블의 배열입니다. 결제 UI에 표시됩니다.
    name
    array of strings 지역화된 프로모션 이름의 배열입니다.
    description
    array of strings 지역화된 프로모션 설명의 배열입니다.
    project_id
    integer 프로젝트 ID.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->UpdatePromotion(array(
        'request' => array (
             'technical_name' => 'Sample Promotion',
             'label' =>
                  array (
                      'en' => '30% SAVE',
                  ),
             'name' =>
                 array (
                     'en' => '30% PayPal Discount',
                 ),
             'description' =>
                 array (
                     'en' => '30% PayPal Discount Sample',
                 ),
             'project_id' => 1,
         )
    ));
    
    PUT /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id} HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "technical_name": "Sample Promotion",
        "label": {
            "en": "30% SAVE"
        },
        "name": {
            "en": "30% PayPal Discount"
        },
        "description": {
            "en": "30% PayPal Discount Sample"
        },
        "project_id": 1
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}' \
    -X PUT \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
            "technical_name": "Sample Promotion",
            "label": {
                "en": "30% SAVE"
            },
            "name": {
                "en": "30% PayPal Discount"
            },
            "description": {
                "en": "30% PayPal Discount Sample"
            },
            "project_id": 1
        }'
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No Content

    프로모션 검토

    프로모션을 활성화할 준비가 되었는지 확인합니다. 이 방법은 오류 목록을 리턴합니다(존재할 경우).

    HTTP 요청

    GET https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/review

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->ReviewPromotion(array(
        'promotion_id' => 'PROMOTION_ID'
    ));
    
    GET /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/review HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/review' \
    -X GET \
    -u merchant_id:merchant_api_key
    응답
    <?php
    
    // example response
    $response = array (
        array (
            'component' => 'rewards',
            'message' => 'You didn\'t select any reward'
        ),
        array (
            'component' => 'periods',
            'message' => 'Please set the promotion time periods.'
        )
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
      {
        "component": "rewards",
        "message": "You didn't select any reward"
      },
      {
        "component": "periods",
        "message": "Please set the promotion time periods."
      }
    ]
    [
      {
        "component": "rewards",
        "message": "You didn't select any reward"
      },
      {
        "component": "periods",
        "message": "Please set the promotion time periods."
      }
    ]

    프로모션 설정/해제

    프로모션을 설정 또는 해제합니다. 프로모션 상태를 활성화에서 비활성화로 변경하거나 역으로 변경합니다.

    HTTP 요청

    PUT https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/toggle

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->TogglePromotion(array(
        'promotion_id' => 'PROMOTION_ID'
    ));
    
    PUT /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/toggle HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/toggle' \
    -X PUT \
    -u merchant_id:merchant_api_key \
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No Content

    프로모션 삭제

    프로모션을 삭제합니다. 비활성화된 프로모션만 삭제할 수 있습니다(enabled = false).

    HTTP 요청

    DELETE https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->DeletePromotion(array(
        'promotion_id' => 'PROMOTION_ID'
    ));
    
    DELETE /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id} HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}' \
    -X DELETE \
    -u merchant_id:merchant_api_key
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No Content

    프로모션 목록 가져오기

    모든 프로모션을 나열합니다.

    HTTP 요청

    GET https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->ListPromotions(array(
    ));
    
    GET /merchant/v2/merchants/{merchant_id}/promotions HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions' \
    -X GET \
    -u merchant_id:merchant_api_key
    응답
    <?php
    
    // example response
    $response = array (
        array (
            'id' => 1,
            'project' =>
                array (
                    'id' => 1,
                    'localized_name' => 'Demo Project'
                ),
            'technical_name' => '25% bonus',
            'read_only' => true,
            'enabled' => true,
            'is_active' => false,
            'datetime' =>
                array (
                    'from' => '2014-10-15T00:00:00+04:00',
                    'to' => '2014-10-16T23:59:59+04:00'
                )
        )
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "project": {
                "id": 1,
                "localized_name": "Demo Project"
            },
            "technical_name": "25% bonus",
            "read_only": true,
            "enabled": true,
            "is_active": false,
            "datetime": {
                "from": "2014-10-15T00:00:00+04:00",
                "to": "2014-10-16T23:59:59+04:00"
            }
        }
    ]
    [
        {
            "id": 1,
            "project": {
                "id": 1,
                "localized_name": "Demo Project"
            },
            "technical_name": "25% bonus",
            "read_only": true,
            "enabled": true,
            "is_active": false,
            "datetime": {
                "from": "2014-10-15T00:00:00+04:00",
                "to": "2014-10-16T23:59:59+04:00"
            }
        }
    ]

    프로모션 대상 설정

    프로모션 대상을 설정합니다. 프로모션이 읽기 전용(read_only = true)이라면, 대상을 업데이트할 수 없습니다. 프로모션 대상은 다음과 같은 값을 가질 수 있습니다: 'purchase' 또는 'items' 또는 'packages'.

    HTTP 요청

    PUT https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/subject

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    purchase
    boolean 프로모션이 전체 구매에 적용되는지 여부를 나타냅니다.
    items
    array 나열된 가상 항목에 프로모션이 적용됩니다.
    items.sku
    string 아이템 SKU.
    packages
    array 나열된 가상 통화 패키지에 프로모션이 적용됩니다.
    subscriptions
    object 프로모션이 적용되는 정기결제 플랜 또는 제품에 대한 데이터가 포함된 개체입니다.
    subscriptions.plans
    array 프로모션이 적용되는 정기결제 플랜의 배열입니다.
    subscriptions.products
    array 프로모션이 적용되는 정기결제 제품의 배열입니다.
    subscriptions.max_charges_count
    integer 프로모션이 적용되는 최대 요금 수입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->SetPromotionSubject(array(
        'request' => array (
            'purchase' => false,
            'items' => array (
                array (
                    'sku' => 't-43-3-unique-id'
                )
            ),
            'packages' => null,
            'subscriptions' =>
                array (
                    'plans' =>
                    array (
                        array (
                                'id' => 123456
                              )
                    ),
                    'products' =>
                    array (
                        654321
                    ),
                    'max_charges_count' => null,
                ),
            'digital_contents' =>
                array (
                    array (
                        'id' => 1,
                        'localized_name' => 'test',
                        'drm' =>
                            array (
                                array (
                                    'id' => 1,
                                    'name' => 'Steam',
                                ),
                                array (
                                    'id' => 2,
                                    'name' => 'Playstation',
                                )
                            )
                    )
                )
        )
    ));
    
    PUT /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/subject HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "purchase": false,
        "items": [
            {
                "sku":"t-43-3-unique-id"
            }
        ],
        "packages": null,
        "subscriptions": {
            "plans": [
                {
                    "id":123456
                }
            ],
            "products": [
                654321
            ],
            "max_charges_count": null
        },
        "digital_contents":[
            {
                "id":1,
                "localized_name":"test",
                "drm":[
                    {
                        "id":1,
                        "name":"Steam"
                    },
                    {
                        "id":2,
                        "name":"Playstation"
                    }
                ]
            }
        ]
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/subject' \
    -X PUT \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
            "purchase": false,
            "items": [
                {
                    "sku":"t-43-3-unique-id"
                }
            ],
            "packages": null,
            "subscriptions": {
                "plans": [
                {
                    "id":123456
                }
                ],
                "products": [
                    654321
                ],
                "max_charges_count": null
            },
            "digital_contents":[
                {
                    "id":1,
                    "localized_name":"test",
                    "drm":[
                        {
                            "id":1,
                            "name":"Steam"
                        },
                        {
                            "id":2,
                            "name":"Playstation"
                        }
                    ]
                }
            ]
        }'
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No Content

    프로모션 대상 가져오기

    프로모션 대상을 가져옵니다.

    HTTP 요청

    GET https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/subject

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->GetPromotionSubject(array(
        'promotion_id' => 'PROMOTION_ID'
    ));
    
    GET /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/subject HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/subject' \
    -X GET \
    -u merchant_id:merchant_api_key
    응답
    <?php
    
    // example response
    $response = array (
        'id' => 1,
        'purchase' => false,
        'items' =>
            array (
                't-43-3-unique-id'
            ),
        'packages' => null,
        'subscriptions' =>
            array (
                'plans' =>
                array (
                    array (
                            'id' => 123456,
                            'localized_name' => 'Subscription plan',
                            'external_id' => '894db422'
                          )
                ),
                'products' =>
                array (
                    654321
                ),
                'max_charges_count' => null,
            ),
        'digital_contents' => null
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "purchase": false,
        "items": null,
        "packages": null,
        "subscriptions": {
            "plans": [
                {
                    "id":123456,
                    "localized_name":"Subscription plan",
                    "external_id":"894db422"
                }
            ],
            "products": [
                654321
            ],
            "max_charges_count": null
        },
        "digital_contents": null
    }
    {
        "id": 1,
        "purchase": false,
        "items": null,
        "packages": null,
        "subscriptions": {
            "plans": [
                {
                    "id":123456,
                    "localized_name":"Subscription plan",
                    "external_id":"894db422"
                }
            ],
            "products": [
                654321
            ],
            "max_charges_count": null
        },
        "digital_contents": null
    }

    결제방식 설정

    프로모션 결제 방식을 설정합니다. 결제방식 목록이 비어있을 경우,모든 결제방식에 프로모션이 적용됩니다. 프로모션이 읽기 전용(read_only = true)이라면, 이 명령을 호출할 수 없습니다.

    HTTP 요청

    PUT https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/payment_systems

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    payment_systems
    array 결제 방식 데이터 관련 배열입니다.
    ID.
    integer 결제 시스템 ID.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->SetPromotionPaymentSystems(array(
        'request' => array(
             'payment_systems' => array(
                 array('id' => 24)
             )
        )
    ));
    
    PUT /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/payment_systems HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "payment_systems": [
            {
                "id": 24
            },
            {
                "id": 26
            }
        ]
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/payment_systems' \
    -X PUT \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
            "payment_systems": [
                {
                    "id": 24
                },
                {
                    "id": 26
                }
            ]
        }'
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No Content

    결제 방식 가져오기

    프로모션 결제 방식을 가져옵니다. 결제방식 목록이 비어있을 경우,모든 결제방식에 프로모션이 적용됩니다.

    HTTP 요청

    GET https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/payment_systems

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->GetPromotionPaymentSystems(array(
        'promotion_id' => 'PROMOTION_ID'
    ));
    
    GET /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/payment_systems HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/payment_systems' \
    -X GET \
    -u merchant_id:merchant_api_key
    응답
    <?php
    
    // example response
    $response = array (
        'id' => 1,
        'payment_systems' =>
            array (
                array (
                    'id' => 24,
                    'name' => 'PayPal'
                ),
                array (
                    'id' => 26,
                    'name' => 'Visa / MasterCard'
                )
            )
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "payment_systems": [
            {
                "id": 24,
                "name": "PayPal"
            },
            {
                "id": 26,
                "name": "Visa / MasterCard"
            }
        ]
    }
    {
        "id": 1,
        "payment_systems": [
            {
                "id": 24,
                "name": "PayPal"
            },
            {
                "id": 26,
                "name": "Visa / MasterCard"
            }
        ]
    }

    보상 설정

    프로모션 보상을 설정합니다. 프로모션이 읽기 전용(read_only = true)이라면, 보상을 업데이트할 수 없습니다.

    HTTP 요청

    PUT https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/rewards

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    purchase
    object 전체 구매에 대한 보상을 설정합니다.
    purchase.discount_percent
    float 할인율 수치입니다.
    package
    object 게임머니 패키지 구매에 보너스를 설정합니다.
    package.bonus_percent
    float 보너스율 수치입니다.
    package.bonus_amount
    float 게임머니 보너스 금액입니다.
    item
    object 게임 아이템에 보너스를 설정합니다.
    item.discount
    array 게임 아이템 구매에 보너스를 설정합니다.
    item.discount[].sku
    string 아이템 SKU.
    item.discount[].discount_percent
    float 할인율 수치입니다.
    item.discount[].max_amount
    integer 프로모션이 적용되는 게임 아이템의 최대 수량입니다.
    item.bonus
    array 보너스를 여분의 게임 아이템으로 설정합니다.
    item.bonus[].sku
    string 아이템 SKU.
    item.bonus[].amount
    integer 게임 아이템 항목 금액입니다.
    subscription
    object 구독에 대한 리워드를 설정합니다.
    subscription.trial_days
    integer 평가 기간(일)입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->SetPromotionRewards(array(
        'request' => array (
            'purchase' => array (
                'discount_percent' => 10
            ),
            'package' => array (
                 'bonus_percent' => 5,
                 'bonus_amount' => 5
            ),
            'item' => array (
                'discount' => array (
                   array (
                     'sku' => 't-43-3-unique-id',
                     'name' => 'T-34-3',
                     'max_amount' => 10,
                     'discount_percent' => 5
                   )
                ),
                 'bonus' => array (
                    array (
                         'sku' => 't-43-3-unique-id',
                         'name' => 'T-34-3',
                         'amount' => 2
                    )
                 )
            ),
            'subscription' =>
                array (
                   'trial_days' => 30
                )
        )
    ));
    
    PUT /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/rewards HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "purchase": {
            "discount_percent": 10
        },
        "package": {
            "bonus_percent": 5,
            "bonus_amount": 5
        },
        "item": {
            "discount": [
                {
                    "sku": "t-43-3-unique-id",
                    "name": "T-34-3",
                    "max_amount": 10,
                    "discount_percent": 5
                }
            ],
            "bonus": [
                {
                    "sku": "t-43-3-unique-id",
                    "name": "T-34-3",
                    "amount": 2
                }
            ]
        },
        "subscription": {
            "trial_days": 30
        }
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/rewards' \
    -X PUT \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
            "purchase": {
                "discount_percent": 10
            },
            "package": {
                "bonus_percent": 5,
                "bonus_amount": 5
            },
            "item": {
                "discount": [
                    {
                        "sku": "t-43-3-unique-id",
                        "name": "T-34-3",
                        "max_amount": 10,
                        "discount_percent": 5
                    }
                ],
                "bonus": [
                    {
                        "sku": "t-43-3-unique-id",
                        "name": "T-34-3",
                        "amount": 2
                    }
                ]
            },
            "subscription": {
                "trial_days": 30
            }
        }'
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No Content

    보상 가져오기

    프로모션의 보상을 가져옵니다.

    HTTP 요청

    GET https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/rewards

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->GetPromotionRewards(array(
        'promotion_id' => 'PROMOTION_ID'
    ));
    
    GET /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/rewards HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/rewards' \
    -X GET \
    -u merchant_id:merchant_api_key
    응답
    <?php
    
    // example response
    $response = array (
        'id' => 1,
        'purchase' =>
            array (
                'discount_percent' => 10
            ),
        'package' =>
            array (
                'bonus_percent' => 5,
                'bonus_amount' => 5
            ),
        'item' =>
            array (
                'discount' =>
                    array (
                        array (
                            'sku' => 't-43-3-unique-id',
                            'localized_name' => 'T-34-3',
                            'max_amount' => 10,
                            'discount_percent' => 5
                        )
                    ),
                'bonus' =>
                    array (
                        array (
                            'sku' => 't-43-3-unique-id',
                            'localized_name' => 'T-34-3',
                            'amount' => 2
                        )
                    )
            ),
        'subscription' =>
            array (
               'trial_days' => 30
            )
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "purchase": {
            "discount_percent": 10
        },
        "package": {
            "bonus_percent": 5,
            "bonus_amount": 5
        },
        "item": {
            "discount": [
                {
                    "sku": "t-43-3-unique-id",
                    "localized_name": "T-34-3",
                    "max_amount": 10,
                    "discount_percent": 5
                }
            ],
            "bonus": [
                {
                    "sku": "t-43-3-unique-id",
                    "localized_name": "T-34-3",
                    "amount": 2
                }
            ]
        },
        "subscription": {
            "trial_days": 30
        }
    }
    {
        "id": 1,
        "purchase": {
            "discount_percent": 10
        },
        "package": {
            "bonus_percent": 5,
            "bonus_amount": 5
        },
        "item": {
            "discount": [
                {
                    "sku": "t-43-3-unique-id",
                    "localized_name": "T-34-3",
                    "max_amount": 10,
                    "discount_percent": 5
                }
            ],
            "bonus": [
                {
                    "sku": "t-43-3-unique-id",
                    "localized_name": "T-34-3",
                    "amount": 2
                }
            ]
        },
        "subscription": {
            "trial_days": 30
        }
    }

    기간 설정

    프로모션 기간을 설정합니다. 프로모션이 읽기 전용(read_only = true)이라면, 기존 기간은 편집할 수 없고 새 기간을 추가할 수만 있습니다.

    HTTP 요청

    PUT https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/periods

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    periods
    array 시간 범위의 배열입니다.
    from
    datetime 날짜 범위의 시작입니다.
    to
    datetime 날짜 범위의 끝입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->SetPromotionPeriods(array(
        'request' => array(
             'periods' => array(
                 array(
                     'from' => $dateTime->format(\DateTime::ISO8601),
                     'to' => $dateTime->modify('+ 1 month')->format(\DateTime::ISO8601)
                 )
             )
        )
    ));
    
    PUT /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/periods HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    
    {
        "periods": [
            {
                "from": "2014-10-14T00:00:00+04:00",
                "to": "2014-10-15T00:00:00+04:00"
            }
        ]
    }
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/periods' \
    -X PUT \
    -u merchant_id:merchant_api_key \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
            "periods": [
                {
                    "from": "2014-10-14T00:00:00+04:00",
                    "to": "2014-10-15T00:00:00+04:00"
                }
            ]
        }'
    응답
    <?php
    
    $response = null;
    
    HTTP/1.1 204 No Content

    기간 가져오기

    프로모션 기간을 가져옵니다.

    HTTP 요청

    GET https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/periods

    파라미터 유형 설명
    merchant_id
    integer 판매자 ID입니다.
    promotion_id
    integer 프로모션 ID입니다.
    Copy
    Full screen
    • php
    • http
    • curl
    요청
    <?php
    
    $response = $xsollaClient->GetPromotionPeriods(array(
        'promotion_id' => 'PROMOTION_ID'
    ));
    
    GET /merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/periods HTTP/1.1
    User-Agent: xsolla-api-client/1.0
    Host: api.xsolla.com
    Accept: application/json
    Authorization: Basic ZGVtb0B4c29sbGEuY29tOmRlbW8=
    Content-Type: application/json
    $ curl -v 'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/promotions/{promotion_id}/periods' \
    -X GET \
    -u merchant_id:merchant_api_key
    응답
    <?php
    
    // example response
    $response = array (
        'id' => 1,
        'periods' =>
            array (
                'offset' => '+05:00',
                'from' => '2014-10-14T00:00:00+04:00',
                'to' => '2014-10-15T00:00:00+04:00'
            )
    );
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "periods": [
            {
                "offset": "+05:00",
                "from": "2014-10-14T00:00:00+04:00",
                "to": "2014-10-15T00:00:00+04:00"
            }
        ]
    }
    {
        "id": 1,
        "periods": [
            {
                "offset": "+05:00",
                "from": "2014-10-14T00:00:00+04:00",
                "to": "2014-10-15T00:00:00+04:00"
            }
        ]
    }