跳转到内容

概述

  • 版本: 2.0.0
  • 服务器https://store.xsolla.com/api
  • 通过邮件联系我们
  • 联系URL: https://xsolla.com/
  • 必需的TLS版本: 1.2

商品目录API支持在艾克索拉侧配置游戏内商品目录,并在您的商店中向用户展示目录内容。

通过该API可管理以下目录实体:

  • 虚拟物品 — 游戏内物品,例如武器、皮肤、增益道具。
  • 虚拟货币 — 用于购买虚拟商品的虚拟货币。
  • 虚拟货币套餐 — 预定义的虚拟货币捆绑包。
  • 捆绑包 — 虚拟物品、货币或游戏激活码的组合套餐,以单个SKU形式出售。
  • 游戏密钥 — 适用于Steam等平台或其他DRM提供商分发的游戏和DLC激活码。
  • — 用于在目录中组织和排序商品的逻辑分组。

API调用

API分为以下组别:

  • Admin — 用于创建、更新、删除和配置目录商品及分组的调用。通过基本认证方式验证身份,需使用您的商户或项目凭据。不适用于商店前端调用。
  • Catalog — 用于检索商品并构建面向最终用户的自定义商店前端。专为高负载场景设计。支持可选的用户JWT授权,可返回个性化数据,例如用户特定限制和当前进行中的促销活动。
下载 OpenAPI 描述
语言
服务器
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/zh/api/catalog/
操作

更新虚拟货币Server-sideAdmin

请求

更新虚拟货币。

安全
basicAuth
路径
project_idinteger必需

项目ID。您可以在您的发布商帐户项目名称旁边找到。

示例: 44056
virtual_currency_skustring必需

虚拟货币SKU。

示例: crystal
正文application/json
attributesArray of objects(Virtual-Items-Currency_admin-post-put-attributes)<= 20 items

属性列表。

注意:为每个商品指定的属性不能超过20个。任何超出限制的尝试都会导致错误。
custom_attributesobject(json)(item-custom-attributes)<= 500 characters

包含商品属性和值的JSON对象。属性允许您向商品添加更多信息,例如玩家使用该商品所需的等级。属性可丰富游戏的内部逻辑,并且可以通过专用的GET方法和webhook进行访问。

description(two-letter (object or null)) or (five-letter (object or null))(description-localization-object)

包含本地化商品描述的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的区域设置代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

One of:

包含本地化商品描述的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的区域设置代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

groupsArray of objects(Virtual-Items-Currency_admin-groups-response)

商品所属分组。

默认值 []
示例: [{"external_id":"horror","name":{"en":"Horror"}}]
image_urlstring(Virtual-Items-Currency_admin-image_url)
is_deletedboolean(Virtual-Items-Currency_is_deleted)
is_enabledboolean(Virtual-Items-Currency_is_enabled)
is_freeboolean(value-is_free)

如果为true,则该商品为免费。

默认值 false
示例: false
is_hardboolean(Virtual-Items-Currency_is_hard)
is_paid_randomized_rewardboolean(value-is_paid_randomized_reward)

该商品是否为随机付费奖励,例如宝箱。

默认值 false
示例: false
is_show_in_storeboolean(Virtual-Items-Currency_is_show_in_store)
limitsobject(Virtual-Currency-item-limit)

商品限制。

long_description(two-letter (object or null)) or (five-letter (object or null))(long-description-localization-object)

包含商品详细本地化描述的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的区域设置代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

Any of:

包含商品详细本地化描述的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的区域设置代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

media_listArray of objects(Virtual-Items-Currency_admin-media_list)

商品的附加资源,例如屏幕截图、游戏视频等。

示例: [{"type":"image","url":"https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"}]
name(two-letter (object or null)) or (five-letter (object or null))(name-localization-object)必需

包含商品本地化名称的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的语言代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

One of:

包含商品本地化名称的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的语言代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

name.​arstring or null

阿拉伯语

name.​bgstring or null

保加利亚语

name.​cnstring or null

中文(简体)

name.​csstring or null

捷克语

name.​destring or null

德语

name.​enstring or null

英语

name.​esstring or null

西班牙语(西班牙)

name.​frstring or null

法语

name.​hestring or null

希伯来语

name.​idstring or null

印度尼西亚语

name.​itstring or null

意大利语

name.​jastring or null

日语

name.​kmstring or null

高棉语

name.​kostring or null

韩语

name.​lostring or null

老挝语

name.​mystring or null

缅甸语

name.​nestring or null

尼泊尔语

name.​phstring or null

菲律宾语

name.​plstring or null

波兰语

name.​ptstring or null

葡萄牙语

name.​rostring or null

罗马尼亚语

name.​rustring or null

俄语

name.​thstring or null

泰语

name.​trstring or null

土耳其语

name.​twstring or null

中文(繁体)

name.​vistring or null

越南语

orderinteger(Virtual-Items-Currency_order)

定义排列顺序。

示例: 1
periodsArray of objects or null(item-periods)

商品促销时间段。

pre_orderobject(Virtual-Items-Currency_admin-pre_order)
pricesArray of objects(Virtual-Items-Currency_admin-prices)
示例: [{"amount":10.5,"country_iso":"US","currency":"USD","is_default":true,"is_enabled":true}]
regionsArray of objects(Virtual-Items-Currency_admin-regions)
skustring(Virtual-Items-Currency_sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$必需

唯一商品ID。 SKU只能包含大小写英文字母和数字字符、句点、破折号和下划线。

示例: "booster_mega_1"
vc_pricesArray of objects(Virtual-Items-Currency_admin-create-vc_prices)
示例: [{"amount":10,"is_default":true,"is_enabled":true,"sku":"com.xsolla.gold_1"}]
curl -i -X PUT \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_currency/sku/crystal \
  -H 'Content-Type: application/json' \
  -d '{
    "attributes": [
      {
        "external_id": "material",
        "name": {
          "en-US": "Material"
        },
        "values": [
          {
            "external_id": "gold",
            "value": {
              "en-US": "Gold"
            }
          }
        ]
      }
    ],
    "custom_attributes": {
      "attr": "value",
      "purchased": 0
    },
    "description": {
      "de-DE": "Die Hauptwährung deines Königreichs",
      "en-US": "The main currency of your kingdom"
    },
    "groups": [
      "gold"
    ],
    "is_enabled": true,
    "is_free": false,
    "is_paid_randomized_reward": false,
    "limits": {
      "per_item": 10000,
      "per_user": 5
    },
    "name": {
      "de-DE": "Goldmünze",
      "en-US": "Gold coin"
    },
    "order": 1,
    "periods": [
      {
        "date_from": "2020-08-11T10:00:00+03:00",
        "date_until": "2020-08-11T20:00:00+03:00"
      }
    ],
    "prices": [
      {
        "amount": 100,
        "currency": "USD",
        "is_default": true,
        "is_enabled": true
      }
    ],
    "sku": "com.xsolla.coin_1"
  }'

响应

虚拟货币更新成功。

正文
响应
无内容

获取虚拟物品列表Server-sideAdmin

请求

获取项目中的虚拟物品列表以进行管理。

注意

不要使用此端点来构建商店目录。
安全
basicAuth
路径
project_idinteger必需

项目ID。您可以在您的发布商帐户项目名称旁边找到。

示例: 44056
查询
limitinteger>= 1

页面上元素数量的限制。

示例: limit=50
offsetinteger>= 0

元素编号,从该元素开始生成列表(从0开始数)。

示例: offset=0
curl -i -X GET \
  -u <username>:<password> \
  'https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_items?limit=50&offset=0'

响应

已成功收到虚拟物品列表。

正文application/json
itemsArray of objects(Virtual-Items-Currency_admin-virtual-item)
响应
application/json
{ "items": [ {}, {}, {}, {}, {} ] }

创建虚拟物品Server-sideAdmin

请求

创建虚拟物品。

安全
basicAuth
路径
project_idinteger必需

项目ID。您可以在您的发布商帐户项目名称旁边找到。

示例: 44056
正文application/json
attributesArray of objects(Virtual-Items-Currency_admin-post-put-attributes)<= 20 items

属性列表。

注意:为每个商品指定的属性不能超过20个。任何超出限制的尝试都会导致错误。
custom_attributesobject(json)(item-custom-attributes)<= 500 characters

包含商品属性和值的JSON对象。属性允许您向商品添加更多信息,例如玩家使用该商品所需的等级。属性可丰富游戏的内部逻辑,并且可以通过专用的GET方法和webhook进行访问。

description(two-letter (object or null)) or (five-letter (object or null))(description-localization-object)

包含本地化商品描述的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的区域设置代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

One of:

包含本地化商品描述的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的区域设置代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

groupsArray of strings(Virtual-Items-Currency_admin-groups-create)

商品所属的组。

注:字符串值引用组`external_id`。
image_urlstring(Virtual-Items-Currency_schemas-admin-image_url)

图像URL。

示例: "https://image.example.com"
is_deletedboolean(Virtual-Items-Currency_is_deleted)
is_enabledboolean(Virtual-Items-Currency_is_enabled)
is_freeboolean(value-is_free)

如果为true,则该商品为免费。

默认值 false
示例: false
is_paid_randomized_rewardboolean(value-is_paid_randomized_reward)

该商品是否为随机付费奖励,例如宝箱。

默认值 false
示例: false
is_show_in_storeboolean(Virtual-Items-Currency_is_show_in_store)
limitsobject(Virtual-Item-item-limit)

商品限制。

long_description(two-letter (object or null)) or (five-letter (object or null))(long-description-localization-object)

包含商品详细本地化描述的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的区域设置代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

Any of:

包含商品详细本地化描述的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的区域设置代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

media_listArray of objects(Virtual-Items-Currency_admin-media_list)

商品的附加资源,例如屏幕截图、游戏视频等。

示例: [{"type":"image","url":"https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"}]
name(two-letter (object or null)) or (five-letter (object or null))(name-localization-object)

包含商品本地化名称的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的语言代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

One of:

包含商品本地化名称的对象。值接受以下两种格式之一:两个小写字母的语言代码(例如,en)或五个字符的语言代码(例如,en-US)。虽然两种格式都可作为输入接受,但响应会返回两个小写字母的语言代码。当为同一种语言提供了两种输入时(例如:enen-US),将存储最后提供的值。您可以在文档中找到支持语言的完整列表。

orderinteger(Virtual-Items-Currency_order)

定义排列顺序。

示例: 1
periodsArray of objects or null(item-periods)

商品促销时间段。

pre_orderobject(Virtual-Items-Currency_admin-pre_order)
pricesArray of objects(Virtual-Items_admin-prices)
示例: [{"amount":10.5,"currency":"USD","is_default":true,"is_enabled":true}]
regionsArray of objects(Virtual-Items-Currency_admin-regions)
skustring(Virtual-Items-Currency_sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$

唯一商品ID。 SKU只能包含大小写英文字母和数字字符、句点、破折号和下划线。

示例: "booster_mega_1"
vc_pricesArray of objects(Virtual-Items-Currency_admin-create-vc_prices)
示例: [{"amount":10,"is_default":true,"is_enabled":true,"sku":"com.xsolla.gold_1"}]
curl -i -X POST \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_items \
  -H 'Content-Type: application/json' \
  -d '{
    "attributes": [
      {
        "external_id": "craft-materials",
        "name": {
          "en": "Craft materials"
        },
        "values": [
          {
            "external_id": "steel",
            "value": {
              "en-US": "5"
            }
          },
          {
            "external_id": "leather",
            "value": {
              "en-US": "1"
            }
          }
        ]
      }
    ],
    "custom_attributes": {
      "attr": "value",
      "purchased": 0
    },
    "description": {
      "de": "Ein Schwert ist eine Nahkampfwaffe mit Klinge, die zum Schneiden oder Stechen bestimmt ist, länger als ein Messer oder Dolch ist und aus einer langen Klinge besteht, die an einem Griff befestigt ist.",
      "en": "A sword is a bladed melee weapon intended for cutting or thrusting that is longer than a knife or dagger, consisting of a long blade attached to a hilt."
    },
    "groups": [
      "weapons"
    ],
    "is_enabled": true,
    "is_free": false,
    "is_paid_randomized_reward": true,
    "is_show_in_store": true,
    "limits": {
      "per_item": 100,
      "per_user": 5
    },
    "name": {
      "de": "Schwert",
      "en": "Sword"
    },
    "order": 1,
    "periods": [
      {
        "date_from": "2020-08-11T10:00:00+03:00",
        "date_until": "2020-08-11T20:00:00+03:00"
      }
    ],
    "prices": [
      {
        "amount": 100,
        "currency": "USD",
        "is_default": true,
        "is_enabled": true
      },
      {
        "amount": 200,
        "country_iso": "CZ",
        "currency": "CZK",
        "is_default": true,
        "is_enabled": false
      }
    ],
    "sku": "com.xsolla.sword_1",
    "vc_prices": []
  }'

响应

虚拟物品已成功创建。

正文application/json
skustring
示例: "com.xsolla.item_1"
响应
application/json
{ "sku": "com.xsolla.item_1" }
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作

目录

本API允许获取任意类型的可售商品或指定商品。

操作
操作
操作