`是用户令牌。该令牌用于识别用户,并提供对个性化数据的访问权限。
或者,您也可以使用[用于打开支付UI的令牌](/zh/api/pay-station/token/create-token)。
2. **不带Authorization请求头的简化模式。** 此模式仅适用于未完成身份认证的用户,且仅可用于[游戏Key销售](/zh/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users)请求中不使用令牌,而必须包含以下请求头:
- `x-unauthorized-id`,值为请求ID
- `x-user`,值为使用Base64编码的用户电子邮件地址
## 实用链接 {% #authentication-useful-links %}
- [按交互模型划分的API调用](/zh/api/getting-started/#api_interaction_model)
- [接口类型](/zh/api/getting-started/#api_endpoint_types)
- [错误处理](/zh/api/getting-started/#api_errors_handling)
- [API密钥](/zh/api/getting-started/#api_keys_overview)
- [Webhook](/zh/webhooks/overview)
# 核心实体结构 {% #core-entity-structure %}
所有类型的商品(虚拟物品、捆绑包、虚拟货币和密钥)都使用类似的数据结构。了解基本结构有助于简化API使用,并帮助您更轻松地查阅文档。
注:
部分调用可能包含其他字段,但这些字段不会改变基本结构。
**标识信息**
- `merchant_id` — [发布商帐户](https://publisher.xsolla.com/)中的公司ID
- `project_id` — 发布商帐户中的项目ID
- `sku` — 商品SKU,在项目内唯一
**商店显示**
- `name` — 商品名称
- `description` — 商品描述
- `image_url` — 图片URL
- `is_enabled` — 商品可用性
- `is_show_in_store` — 商品是否显示在商品目录中
有关在商品目录中管理商品可用性的更多信息,请参阅[文档](/zh/items-catalog/catalog-features/items-availability/)。
**组织方式**
- `type` — 商品类型,例如虚拟物品(`virtual_item`)或捆绑包(`bundle`)
- `groups` — 商品所属的组
- `order` — 在商品目录中的显示顺序
**销售条件**
- `prices` — 以真实货币或虚拟货币表示的价格
- `limits` — 购买限制
- `periods` — 可用时间段
- `regions` — 区域限制
**核心实体结构示例:**
```json
{
"attributes": [],
"bundle_type": "virtual_currency_package",
"content": [
{
"description": {
"en": "Main in-game currency"
},
"image_url": "https://.../image.png",
"name": {
"en": "Crystals",
"de": "Kristalle"
},
"quantity": 500,
"sku": "com.xsolla.crystal_2",
"type": "virtual_currency"
}
],
"description": {
"en": "Crystals x500"
},
"groups": [],
"image_url": "https://.../image.png",
"is_enabled": true,
"is_free": false,
"is_show_in_store": true,
"limits": {
"per_item": null,
"per_user": null,
"recurrent_schedule": null
},
"long_description": null,
"media_list": [],
"name": {
"en": "Medium crystal pack"
},
"order": 1,
"periods": [
{
"date_from": null,
"date_until": "2020-08-11T20:00:00+03:00"
}
],
"prices": [
{
"amount": 20,
"country_iso": "US",
"currency": "USD",
"is_default": true,
"is_enabled": true
}
],
"regions": [],
"sku": "com.xsolla.crystal_pack_2",
"type": "bundle",
"vc_prices": []
}
```
# 基本购买流程 {% #basic-purchase-flow %}
艾克索拉API可用于实现游戏内购商店逻辑,包括获取商品目录、管理购物车、创建订单以及跟踪订单状态。根据集成场景,API调用分为**管理**和**商品目录**子部分,使用不同的[身份认证方案](/zh/api/catalog/authentication)。
以下示例展示了从创建商品到完成购买的商店设置和运营基本流程。
## 创建商品和组(管理) {% #create-items-and-groups-admin %}
为您的商店创建商品目录,例如虚拟物品、捆绑包或虚拟货币。
API调用示例:
- [创建虚拟物品](/zh/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)
- [创建捆绑包](/zh/api/catalog/bundles-admin/admin-create-bundle)
- [创建虚拟货币](/zh/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)
## 设置促销、奖励链和限制(管理) {% #set-up-promotions-chains-and-limits-admin %}
配置用户拉新和赢利工具,例如折扣、赠品、每日奖励或优惠链。
API调用示例:
- [创建买赠促销活动](/zh/api/liveops/promotions-bonuses/create-bonus-promotion)
- [创建每日奖励](/zh/api/liveops/daily-chain-admin/admin-create-daily-chain)
- [创建唯一商品目录优惠促销活动](/zh/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)
## 获取商品信息(客户端) {% #get-item-information-client %}
在您的应用程序中配置商品显示。
提示
请勿使用管理子部分中的API调用来构建用户商品目录。这些API调用存在
速率限制,并不适用于用户流量。
API调用示例:
- [获取虚拟物品列表](/zh/api/catalog/virtual-items-currency-catalog/get-virtual-items)
- [获取商品组列表](/zh/api/catalog/virtual-items-currency-catalog/get-item-groups)
- [获取捆绑包列表](/zh/api/catalog/bundles-catalog/get-bundle-list)
- [获取可售商品列表](/zh/api/catalog/common-catalog/get-sellable-items)
注:
默认情况下,商品目录API调用会返回请求时商店中当前可用的商品。如需获取尚未可用或已不再可用的商品,请在商品目录请求中包含参数"show_inactive_time_limited_items": 1。
## 销售商品 {% #sell-items %}
您可以使用以下方法销售商品:
- 快速购买 — 多次销售同一SKU。
- 购物车购买 — 用户可在同一订单中向购物车添加商品、移除商品并更新数量。
如果商品使用虚拟货币而非真实货币购买,请使用[创建包含指定商品的订单](/zh/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency) API调用。由于扣款会在执行API调用时处理,因此无需支付UI。
如需购买免费商品,请使用[使用指定商品创建订单](/zh/api/catalog/free-item/create-free-order-with-item) API调用或[使用免费购物车创建订单](/zh/api/catalog/free-item/create-free-order) API调用。无需支付UI — 订单会立即设置为done状态。
### 快速购买 {% #fast-purchase %}
使用客户端API调用[使用指定商品创建订单](/zh/api/catalog/payment-client-side/create-order-with-item)。该调用会返回用于打开支付UI的令牌。
注:
用户只能在支付UI中查看折扣信息。不支持兑换码。
### 购物车购买 {% #cart-purchase %}
可以在客户端或服务器侧设置购物车并完成购买。
**在客户端设置和购买购物车商品**
您需要自行实现添加和移除商品的逻辑。在调用用于设置购物车的API之前,您无法获知哪些促销活动会应用于本次购买。这意味着您无法提前获知总费用以及添加的赠品的详细信息。
实现以下购物车逻辑:
1. 玩家在购物车加购后,使用[向购物车添加商品](/zh/api/shop-builder/operation/cart-fill/) API调用。该调用会返回所选商品的当前信息(折扣前后价格、赠品)。
2. 根据用户操作更新购物车内容:
- 如需添加商品或更改商品数量,请使用[按购物车ID更新购物车商品](/zh/api/shop-builder/operation/put-item-by-cart-id/) API调用。
- 如需移除商品,请使用[按购物车ID删除购物车商品](/zh/api/shop-builder/operation/delete-item-by-cart-id/) API调用。
注:
如需获取购物车的当前状态,请使用“获取当前用户的购物车”API调用。
3. 使用[创建包含当前购物车中所有商品的订单](/zh/api/shop-builder/operation/create-order/) API调用。该调用返回订单ID和支付令牌。新创建的订单默认设置为new状态。
**在服务器侧设置和购买购物车商品**
这种设置方式可能需要更长的购物车设置时间,因为每次更改购物车都必须伴随API调用。
实现以下购物车逻辑:
1. 玩家在购物车加购后,使用[向购物车添加商品](/zh/api/catalog/cart-server-side) API调用。该调用会返回所选商品的当前信息(折扣前后价格、赠品)。
2. 使用[创建包含当前购物车中所有商品的订单](/zh/api/shop-builder/operation/create-order/) API调用。该调用会返回订单ID和支付令牌。新创建的订单默认设置为new状态。
## 打开支付UI {% #open-payment-ui %}
使用返回的令牌在新窗口中打开支付UI。有关打开支付UI的其他方式,请参阅[文档](/zh/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui)。
| 操作 | 接口 |
|:--------------------------------|:--------------------------------------------------------------------------|
| 在生产环境中打开。 | https://secure.xsolla.com/paystation4/?token={token} |
| 在沙盒模式中打开。 | https://sandbox-secure.xsolla.com/paystation4/?token={token} |
注:
请在开发和测试期间使用沙盒模式。测试购买不会对真实帐户扣款。您可以使用
测试银行卡。
完成第一笔真实支付后,严格的沙盒支付策略将生效。沙盒模式下的支付仅对[发布商帐户 > 公司设置 > 用户](https://publisher.xsolla.com/0/settings/users)中指定的用户可用。
只有在与艾克索拉签署许可协议后,才能使用真实货币购买虚拟货币和商品。如需签署协议,请在[发布商帐户](https://publisher.xsolla.com/)中前往**协议与税务 > 合同与协议**,填写协议表单并等待确认。协议审核最多可能需要3个工作日。
如需启用或禁用沙盒模式,请在快速购买和购物车购买请求中更改`sandbox`参数的值。沙盒模式默认关闭。
可能的订单状态:
- `new` — 订单已创建
- `paid` — 已收到付款
- `done` — 商品已交付
- `canceled` — 订单已取消
- `expired` — 订单已过期
使用以下任一方式跟踪订单状态:
- [您服务器上配置的Webhook](/zh/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)
- [短轮询](/zh/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_short_polling)
- [WebSocket API](/zh/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_websocket_api)
## 实用链接 {% #basic-purchase-flow-useful-links %}
- 身份认证
- [按交互模型划分的API调用](/zh/api/catalog/authentication)
- [支付测试](/zh/dev-resources/testing/general-info/#general_overview)
- [设置订单状态跟踪](/zh/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)
- [Webhook](/zh/webhooks/overview)
- [速率限制](/zh/api/login/rate-limits)
- [错误处理](/zh/api/getting-started/#api_errors_handling)
- [API密钥](/zh/api/getting-started/#api_keys_overview)
# 分页 {% #pagination %}
返回大量记录的API调用(例如构建商品目录时)会按页返回数据。分页是一种限制单个API响应中返回商品数量的机制,并允许您按顺序获取后续页面。
使用以下参数控制返回的商品数量:
- `limit` — 每页商品数量
- `offset` — 页面中第一个商品的索引(从0开始编号)
- `has_more` — 指示是否还有下一页
- `total_items_count` — 商品总数
请求示例:
```
GET /items?limit=20&offset=40
```
响应示例:
```json
{
"items": [...],
"has_more": true,
"total_items_count": 135
}
```
建议发送后续请求,直到响应返回`has_more = false`。
# 日期和时间格式 {% #date-and-time-format %}
日期和时间值以[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)格式传递。
支持以下内容:
- UTC偏移量
- 当商品显示没有时间限制时使用`null`值
- 部分字段使用的[Unix时间戳](https://www.unixtimestamp.com/)(以秒为单位)
格式:`YYYY-MM-DDTHH:MM:SS±HH:MM`
示例:`2026-03-16T10:00:00+03:00`
# 本地化 {% #localization %}
艾克索拉支持对商品名称、描述等面向用户的字段进行本地化。本地化值以对象形式传递,其中语言代码作为键。支持的完整语言列表,请参阅[文档](/zh/doc/shop-builder/references/supported-languages/)。
**支持的字段**
可为以下参数指定本地化内容:
- `name`
- `description`
- `long_description`
**区域格式**
语言区域键可使用以下任一格式指定:
- 两字母语言代码:`en`、`ru`
- 五字母语言代码:`en-US`、`ru-RU`、`de-DE`
**示例**
两字母语言代码示例:
```json
{
"name": {
"en": "Starter Pack",
"ru": "Стартовый набор"
}
}
```
五字母语言代码示例:
```json
{
"description": {
"en-US": "Premium bundle",
"de-DE": "Premium-Paket"
}
}
```
# 国家/地区和货币确定 {% #country-and-currency-determination %}
用户所在国家/地区决定商品目录价格、支付货币以及支付界面中的可用支付方式。根据API调用的不同,国家/地区按以下方式确定:
- 在客户端侧API调用中,国家/地区根据请求的IP地址确定。
- 在服务器侧API调用中,国家/地区根据
user.country.value参数的值或X-User-Ip标头中的用户IP地址确user.country.value参数为准。
注:
仅支持使用
IPv4地址确定国家/地区。
传入
IPv6地址可能会导致国家/地区和货币检测不正确。如果您使用服务器侧API调用且无法提供用户的IPv4地址,请在
user.country.value参数中传入国家/地区。
# 错误响应格式 {% #error-response-format %}
如果发生错误,API会返回HTTP状态和JSON响应正文。商店相关错误的完整列表,请参阅[文档](/zh/dev-resources/references/errors/store-errors/)。
**响应示例:**
```json
{
"errorCode": 1102,
"errorMessage": "Validation error",
"statusCode": 422,
"transactionId": "c9e1a..."
}
```
- `errorCode` — 错误代码。
- `errorMessage` — 简短的错误描述。
- `statusCode` — HTTP响应状态。
- `transactionId` — 请求ID。仅在部分情况下返回。
- `errorMessageExtended` — 其他错误详情,例如请求参数。仅在某些情况下返回。
**扩展响应示例:**
```json
{
"errorCode": 7001,
"errorMessage": "Chain not found",
"errorMessageExtended": {
"chain_id": "test_chain_id",
"project_id": "test_project_id",
"step_number": 2
},
"statusCode": 404
}
```
**常见HTTP状态代码**
- `400` — 请求无效
- `401` — 身份认证错误
- `403` — 权限不足
- `404` — 资源未找到
- `422` — 验证错误
- `429` — 超出速率限制
**建议**
- 结合HTTP状态和响应正文一起处理。
- 使用`errorCode`处理与应用程序逻辑相关的错误。
- 分析错误时,使用`transactionId`更快定位请求。
Version: 2.0.0
## Servers
```
https://store.xsolla.com/api
```
## Security
### basicAuth
服务器侧调用使用`basicAuth`身份认证方案。向API发送的所有请求都必须包含`Authorization: Basic `请求头,其中`your_authorization_basic_key`是根据Base64标准编码的`project_id:api_key`对。
如有需要,您可以使用`merchant_id`代替`project_id`。这不会影响功能。
前往[发布商帐户](https://publisher.xsolla.com/)查找参数值:
* `merchant_id`显示在:
* **公司设置 > 公司**部分
* 任意发布商帐户页面的浏览器地址栏URL中。URL格式为:`https://publisher.xsolla.com/`。
* `api_key`仅会在创建时于发布商帐户中显示一次,必须由您在己侧保存。您可以在以下部分创建新密钥:
* [公司设置 > API密钥](https://publisher.xsolla.com/0/settings/api_key)
* [项目设置 > API密钥](https://publisher.xsolla.com/0/projects/0/edit/api_key)
{% html name="div" attrs={"class": "notice"} %}
**提示**
如果所需的API调用不包含`project_id`路径参数,请使用对公司所有项目均有效的API密钥进行授权。
{% /html %}
* `project_id`显示在:
* 发布商帐户中项目名称旁边。
* 发布商帐户中项目页浏览器地址栏中的URL中。URL格式为:`https://publisher.xsolla.com//projects/`。
有关使用API密钥的更多信息,请参阅[API参考](https://developers.xsolla.com/zh/api/getting-started/#api_keys_overview)。
Type: http
Scheme: basic
### XsollaLoginUserJWT
客户端侧调用使用`XsollaLoginUserJWT`身份认证方案。请求须在`Authorization`请求头中包含用户JWT,格式为:Bearer ``。令牌用于识别用户并提供个性化数据访问权限。有关令牌创建方法,请参阅[艾克索拉登录管理器API文档](/zh/api/login/authentication-schemes#getting-user-token)。
或者,您也可以使用[用于打开支付UI的令牌](/zh/api/pay-station/token/create-token)。
Type: http
Scheme: bearer
Bearer Format: JWT
### AuthForCart
`AuthForCart`身份认证方案用于购物车购买,支持两种模式:
1. 使用用户JWT进行身份认证。 令牌通过Authorization请求头按以下格式传递:`Authorization: Bearer `,其中``是用户令牌。该令牌用于识别用户,并提供对个性化数据的访问权限。
或者,您也可以使用[用于打开支付UI的令牌](/zh/api/pay-station/token/create-token)。
2. 不带`Authorization`请求头的简化模式。此模式仅适用于未完成身份认证的用户,且仅可用于[游戏Key销售](/zh/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users)请求中不使用令牌,而必须包含以下请求头:
* `x-unauthorized-id`,值为请求ID
* `x-user`,值为使用Base64编码的用户电子邮件地址。
Type: http
Scheme: bearer
### basicMerchantAuth
服务器侧调用使用`basicMerchantAuth`身份认证方案。向API发送的所有请求都必须包含`Authorization: Basic `请求头,其中`your_authorization_basic_key`是根据Base64标准编码的`merchant_id:api_key`对。
前往[发布商帐户](https://publisher.xsolla.com/)查找参数值:
* `merchant_id`显示在:
* **公司设置 > 公司**部分
* 任意发布商帐户页面的浏览器地址栏URL中。URL格式为:`https://publisher.xsolla.com/`。
* `api_key`仅会在创建时于发布商帐户中显示一次,必须由您在己侧保存。您可以在[公司设置 > API密钥](https://publisher.xsolla.com/0/settings/api_key)部分创建新密钥。
有关使用API密钥的更多信息,请参阅[API参考](https://developers.xsolla.com/zh/api/getting-started/#api_keys_overview)。
Type: http
Scheme: basic
## Download OpenAPI description
[商品目录API](https://xsolla.redocly.app/_bundle/@l10n/zh/api/catalog/index.yaml)
## 管理
### 获取虚拟物品列表
- [GET /v2/project/{project_id}/admin/items/virtual_items](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list.md): 获取项目中的虚拟物品列表以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 创建虚拟物品
- [POST /v2/project/{project_id}/admin/items/virtual_items](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-create-virtual-item.md): 创建虚拟物品。
### 按照指定组的外部ID获取虚拟物品列表
- [GET /v2/project/{project_id}/admin/items/virtual_items/group/external_id/{external_id}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list-by-group-external-id.md): 获取组中的虚拟物品列表以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 按照指定组ID获取虚拟物品列表
- [GET /v2/project/{project_id}/admin/items/virtual_items/group/id/{group_id}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list-by-group-id.md): 获取组中的虚拟物品列表以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 获取虚拟物品
- [GET /v2/project/{project_id}/admin/items/virtual_items/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-get-virtual-item.md): 获取项目中的虚拟物品以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 更新虚拟物品
- [PUT /v2/project/{project_id}/admin/items/virtual_items/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-update-virtual-item.md): 更新虚拟物品。
### 删除虚拟物品
- [DELETE /v2/project/{project_id}/admin/items/virtual_items/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-delete-virtual-item.md): 删除虚拟物品。
### 获取虚拟货币列表
- [GET /v2/project/{project_id}/admin/items/virtual_currency](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-get-virtual-currencies-list.md): 获取项目中的虚拟货币列表以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 创建虚拟货币
- [POST /v2/project/{project_id}/admin/items/virtual_currency](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency.md): 创建虚拟货币。
### 获取虚拟货币
- [GET /v2/project/{project_id}/admin/items/virtual_currency/sku/{virtual_currency_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-get-virtual-currency.md): 获取项目中的虚拟货币以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 更新虚拟货币
- [PUT /v2/project/{project_id}/admin/items/virtual_currency/sku/{virtual_currency_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-update-virtual-currency.md): 更新虚拟货币。
### 删除虚拟货币
- [DELETE /v2/project/{project_id}/admin/items/virtual_currency/sku/{virtual_currency_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-delete-virtual-currency.md): 删除虚拟货币。
### 获取虚拟货币套餐列表(管理)
- [GET /v2/project/{project_id}/admin/items/virtual_currency/package](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-get-virtual-currency-packages-list.md): 获取项目中虚拟货币套餐的列表以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 创建虚拟货币套餐
- [POST /v2/project/{project_id}/admin/items/virtual_currency/package](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency-package.md): 创建虚拟货币套餐。
### 更新虚拟货币套餐
- [PUT /v2/project/{project_id}/admin/items/virtual_currency/package/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-update-virtual-currency-package.md): 更新虚拟货币套餐。
### 删除虚拟货币套餐
- [DELETE /v2/project/{project_id}/admin/items/virtual_currency/package/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-delete-virtual-currency-package.md): 删除虚拟货币套餐。
### 获取虚拟货币套餐
- [GET /v2/project/{project_id}/admin/items/virtual_currency/package/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-admin/admin-get-virtual-currency-package.md): 获取项目中的虚拟货币套餐以进行管理。
注:请勿使用此接口来构建商店商品目录。
## 商品目录
### 获取虚拟物品列表
- [GET /v2/project/{project_id}/items/virtual_items](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-virtual-items.md): 获取用于构建商品目录的虚拟物品列表。
提示
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
另请参阅:用于客户端侧搜索或索引的 获取所有虚拟物品列表API调用。
### 按SKU获取虚拟物品
- [GET /v2/project/{project_id}/items/virtual_items/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-virtual-items-sku.md): 按SKU获取用于构建商品目录的虚拟物品。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 获取所有虚拟物品列表
- [GET /v2/project/{project_id}/items/virtual_items/all](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-all-virtual-items.md): 获取所有虚拟物品列表,用于客户端侧搜索。
提示
仅返回商品SKU、名称、组和描述。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
另请参阅:用于分页获取详细商品数据的获取虚拟物品列表API调用。
### 获取虚拟货币列表
- [GET /v2/project/{project_id}/items/virtual_currency](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-virtual-currency.md): 获取用于构建商品目录的虚拟货币列表。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按SKU获取虚拟货币
- [GET /v2/project/{project_id}/items/virtual_currency/sku/{virtual_currency_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-virtual-currency-sku.md): 按SKU获取用于构建商品目录的虚拟货币。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 获取虚拟货币套餐列表
- [GET /v2/project/{project_id}/items/virtual_currency/package](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package.md): 获取用于构建商品目录的虚拟货币套餐列表。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按SKU获取虚拟货币套餐
- [GET /v2/project/{project_id}/items/virtual_currency/package/sku/{virtual_currency_package_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package-sku.md): 按SKU获取用于构建商品目录的虚拟货币套餐。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按指定组获取商品列表
- [GET /v2/project/{project_id}/items/virtual_items/group/{external_id}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-virtual-items-group.md): 从指定组获取商品列表以构建商品目录。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按指定组获取虚拟货币列表
- [GET /v2/project/{project_id}/items/virtual_currency/group/{external_id}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-virtual-currency-group.md): 获取指定组中的虚拟货币列表,用于构建商品目录。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按指定组获取虚拟货币套餐列表
- [GET /v2/project/{project_id}/items/virtual_currency/package/group/{external_id}](https://xsolla.redocly.app/zh/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package-group.md): 获取指定组中的虚拟货币套餐列表,用于构建商品目录。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
## 虚拟支付
### 使用以虚拟货币购买的指定商品创建订单
- [POST /v2/project/{project_id}/payment/item/{item_sku}/virtual/{virtual_currency_sku}](https://xsolla.redocly.app/zh/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency.md): 创建使用虚拟货币购买的商品订单。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
## 商品目录
### 获取游戏列表
- [GET /v2/project/{project_id}/items/game](https://xsolla.redocly.app/zh/api/catalog/game-keys-catalog/get-games-list.md): 获取用于构建商品目录的游戏列表。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按指定组获取游戏列表
- [GET /v2/project/{project_id}/items/game/group/{external_id}](https://xsolla.redocly.app/zh/api/catalog/game-keys-catalog/get-games-group.md): 从指定组获取用于构建商品目录的游戏列表。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 获取商品目录中的游戏
- [GET /v2/project/{project_id}/items/game/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/game-keys-catalog/get-game-by-sku.md): 获取用于商品目录的游戏。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 获取商品目录中的游戏Key
- [GET /v2/project/{project_id}/items/game/key/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/game-keys-catalog/get-game-key-by-sku.md): 获取用于商品目录的游戏Key。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按指定组获取游戏Key列表
- [GET /v2/project/{project_id}/items/game/key/group/{external_id}](https://xsolla.redocly.app/zh/api/catalog/game-keys-catalog/get-game-keys-group.md): 从指定组获取用于构建商品目录的游戏Key列表。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 获取DRM列表
- [GET /v2/project/{project_id}/items/game/drm](https://xsolla.redocly.app/zh/api/catalog/game-keys-catalog/get-drm-list.md): 获取可用DRM的列表。
## 权益
### 获取用户拥有的游戏列表
- [GET /v2/project/{project_id}/entitlement](https://xsolla.redocly.app/zh/api/catalog/game-keys-entitlement/get-user-games.md): 获取用户拥有的游戏列表。响应将包含指定用户拥有的一组游戏。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 通过客户端兑换游戏Key
- [POST /v2/project/{project_id}/entitlement/redeem](https://xsolla.redocly.app/zh/api/catalog/game-keys-entitlement/redeem-game-pin-code.md): 根据提供的游戏Key授予权益。
提示
仅可为DRM free平台兑换游戏Key。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 授予权益(管理)
- [POST /v2/project/{project_id}/admin/entitlement/grant](https://xsolla.redocly.app/zh/api/catalog/game-keys-entitlement/grant-entitlement-admin.md): 向用户授予权益。
注意:仅可授予DRM free平台的游戏Key或游戏。
### 撤销权益(管理)
- [POST /v2/project/{project_id}/admin/entitlement/revoke](https://xsolla.redocly.app/zh/api/catalog/game-keys-entitlement/revoke-entitlement-admin.md): 撤销用户的权益。
注意:仅可撤销DRM free平台的游戏Key或游戏。
## 管理
### 创建游戏
- [POST /v2/project/{project_id}/admin/items/game](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-create-game.md): 在项目中创建游戏。
### 获取游戏列表(管理)
- [GET /v2/project/{project_id}/admin/items/game](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-get-game-list.md): 获取项目中的游戏列表以进行管理。
游戏由可供用户购买的游戏Key组成。
注:请勿使用此接口来构建商店商品目录。
### 获取游戏(管理)
- [GET /v2/project/{project_id}/admin/items/game/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-get-game-by-sku.md): 获取游戏以进行管理。
游戏由可供用户购买的游戏Key组成。
注:请勿使用此接口来构建商店商品目录。
### 按SKU更新游戏
- [PUT /v2/project/{project_id}/admin/items/game/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-update-game-by-sku.md): 根据SKU更新项目中的游戏。
### 按SKU删除游戏
- [DELETE /v2/project/{project_id}/admin/items/game/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-delete-game-by-sku.md): 根据SKU删除项目中的游戏。
### 通过ID获取游戏(管理)
- [GET /v2/project/{project_id}/admin/items/game/id/{item_id}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-get-game-by-id.md): 获取游戏以进行管理。
游戏由可供用户购买的游戏Key组成。
注:请勿使用此接口来构建商店商品目录。
### 通过ID更新游戏
- [PUT /v2/project/{project_id}/admin/items/game/id/{item_id}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-update-game-by-id.md): 通过ID更新项目中的游戏。
### 通过ID删除游戏
- [DELETE /v2/project/{project_id}/admin/items/game/id/{item_id}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-delete-game-by-id.md): 根据ID删除项目中的游戏。
### 上传游戏Key
- [POST /v2/project/{project_id}/admin/items/game/key/upload/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-upload-codes-by-sku.md): 按游戏Key SKU上传游戏Key。
### 按ID上传游戏Key
- [POST /v2/project/{project_id}/admin/items/game/key/upload/id/{item_id}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-upload-codes-by-id.md): 按游戏Key ID上传游戏Key。
### 获取游戏Key加载会话信息
- [GET /v2/project/{project_id}/admin/items/game/key/upload/session/{session_id}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-get-codes-session.md): 获取游戏Key加载会话信息。
### 获取游戏Key
- [GET /v2/project/{project_id}/admin/items/game/key/request/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-get-codes-by-sku.md): 按游戏Key SKU获取指定数量的游戏Key。
### 按ID获取游戏Key
- [GET /v2/project/{project_id}/admin/items/game/key/request/id/{item_id}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-get-codes-by-id.md): 按游戏Key ID获取指定数量的游戏Key。
### 删除游戏Key
- [DELETE /v2/project/{project_id}/admin/items/game/key/delete/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-delete-codes-by-sku.md): 按游戏Key SKU删除所有游戏Key。
### 按ID删除游戏Key
- [DELETE /v2/project/{project_id}/admin/items/game/key/delete/id/{item_id}](https://xsolla.redocly.app/zh/api/catalog/game-keys-admin/admin-delete-codes-by-id.md): 按游戏Key ID删除所有游戏Key。
## 管理
### 获取捆绑包列表
- [GET /v2/project/{project_id}/admin/items/bundle](https://xsolla.redocly.app/zh/api/catalog/bundles-admin/admin-get-bundle-list.md): 获取项目中的捆绑包列表以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 创建捆绑包
- [POST /v2/project/{project_id}/admin/items/bundle](https://xsolla.redocly.app/zh/api/catalog/bundles-admin/admin-create-bundle.md): 创建捆绑包,即作为一个单位销售的一组商品。捆绑包可以包含虚拟物品、虚拟货币套餐、游戏Key以及其他捆绑包。有关更多信息,请参阅捆绑包部分。
提示content数组中的所有商品都必须提前在您的项目中创建。如果指定的SKU不存在,系统将返回错误。
### 按指定组ID获取捆绑包列表
- [GET /v2/project/{project_id}/admin/items/bundle/group/id/{group_id}](https://xsolla.redocly.app/zh/api/catalog/bundles-admin/admin-get-bundle-list-in-group-by-id.md): 获取组内捆绑包的列表以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 按指定组的外部ID获取捆绑包列表
- [GET /v2/project/{project_id}/admin/items/bundle/group/external_id/{external_id}](https://xsolla.redocly.app/zh/api/catalog/bundles-admin/admin-get-bundle-list-in-group-by-external-id.md): 获取组内捆绑包的列表以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 更新捆绑包
- [PUT /v2/project/{project_id}/admin/items/bundle/sku/{sku}](https://xsolla.redocly.app/zh/api/catalog/bundles-admin/admin-update-bundle.md): 更新捆绑包。此调用会完整替换该捆绑包——请在请求体中传入所有必填字段,而不仅是要更改的字段。有关更多信息,请参阅捆绑包部分。
提示content数组中的所有商品都必须提前在您的项目中创建。如果指定的SKU不存在,系统将返回错误。
### 删除捆绑包
- [DELETE /v2/project/{project_id}/admin/items/bundle/sku/{sku}](https://xsolla.redocly.app/zh/api/catalog/bundles-admin/admin-delete-bundle.md): 删除捆绑包。
### 获取捆绑包
- [GET /v2/project/{project_id}/admin/items/bundle/sku/{sku}](https://xsolla.redocly.app/zh/api/catalog/bundles-admin/admin-get-bundle.md): 获取项目中的捆绑包以进行管理。
注:请勿使用此接口来构建商店商品目录。
### 在商品目录中显示捆绑包
- [PUT /v2/project/{project_id}/admin/items/bundle/sku/{sku}/show](https://xsolla.redocly.app/zh/api/catalog/bundles-admin/admin-show-bundle.md): 在商品目录中显示捆绑包。
### 在商品目录中隐藏捆绑包
- [PUT /v2/project/{project_id}/admin/items/bundle/sku/{sku}/hide](https://xsolla.redocly.app/zh/api/catalog/bundles-admin/admin-hide-bundle.md): 在商品目录中隐藏捆绑包。
## 商品目录
### 获取捆绑包列表
- [GET /v2/project/{project_id}/items/bundle](https://xsolla.redocly.app/zh/api/catalog/bundles-catalog/get-bundle-list.md): 获取用于构建商品目录的捆绑包列表。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 获取指定的捆绑包
- [GET /v2/project/{project_id}/items/bundle/sku/{sku}](https://xsolla.redocly.app/zh/api/catalog/bundles-catalog/get-bundle.md): 获取指定的捆绑包。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 获取指定组的捆绑包列表
- [GET /v2/project/{project_id}/items/bundle/group/{external_id}](https://xsolla.redocly.app/zh/api/catalog/bundles-catalog/get-bundle-list-in-group.md): 获取组内的捆绑包列表以构建商品目录。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
## 购物车(客户端侧)
使用本部分中的调用在客户端侧管理购物车。
### 按购物车ID获取购物车
- [GET /v2/project/{project_id}/cart/{cart_id}](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/get-cart-by-id.md): 按购物车ID返回用户的购物车。
### 获取当前用户的购物车
- [GET /v2/project/{project_id}/cart](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/get-user-cart.md): 返回当前用户的购物车。
### 按购物车ID删除所有购物车商品
- [PUT /v2/project/{project_id}/cart/{cart_id}/clear](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/cart-clear-by-id.md): 删除所有购物车商品。
### 删除当前购物车中的所有商品
- [PUT /v2/project/{project_id}/cart/clear](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/cart-clear.md): 删除所有购物车商品。
### 向购物车添加商品
- [PUT /v2/project/{project_id}/cart/fill](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/cart-fill.md): 向购物车添加商品。如果购物车中已有具有相同SKU的商品,则现有商品将被传入的值替换。
### 向指定购物车添加商品
- [PUT /v2/project/{project_id}/cart/{cart_id}/fill](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/cart-fill-by-id.md): 向指定购物车添加商品。如果购物车中已有具有相同SKU的商品,则现有商品位置将被传入的值替换。
### 按购物车ID更新购物车商品
- [PUT /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/put-item-by-cart-id.md): 更新现有的购物车商品或在购物车中创建商品。
### 按购物车ID删除购物车商品
- [DELETE /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/delete-item-by-cart-id.md): 从购物车中移除商品。
### 更新当前购物车的商品
- [PUT /v2/project/{project_id}/cart/item/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/put-item.md): 更新现有的购物车商品或在购物车中创建商品。
### 删除当前购物车中的商品
- [DELETE /v2/project/{project_id}/cart/item/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/cart-client-side/delete-item.md): 从购物车中移除商品。
## 购物车(服务器侧)
使用本部分中的调用在服务器侧管理购物车。
### 向购物车添加商品
- [PUT /v2/admin/project/{project_id}/cart/fill](https://xsolla.redocly.app/zh/api/catalog/cart-server-side/admin-cart-fill.md): 向当前购物车添加商品。如果购物车中已有具有相同SKU的商品,则现有商品将被传入的值替换。
### 按购物车ID向购物车添加商品
- [PUT /v2/admin/project/{project_id}/cart/{cart_id}/fill](https://xsolla.redocly.app/zh/api/catalog/cart-server-side/admin-fill-cart-by-id.md): 按购物车ID向购物车添加商品。如果购物车中已有具有相同SKU的商品,则现有商品将被传入的值替换。
## 支付(客户端侧)
使用本部分中的调用在客户端侧创建支付令牌。
### 创建包含指定购物车中所有商品的订单
- [POST /v2/project/{project_id}/payment/cart/{cart_id}](https://xsolla.redocly.app/zh/api/catalog/payment-client-side/create-order-by-cart-id.md): 用于客户端到服务器的集成。创建包含指定购物车中所有商品的订单,并为该订单生成支付令牌。创建后的订单状态为new。
客户端IP用于确定用户所在国家/地区,进而为订单应用对应的货币和可用支付方式。
如需在新窗口中打开支付UI,请使用以下链接:https://secure.xsolla.com/paystation4/?token={token},其中{token}是收到的令牌。
如要进行测试,请使用以下URL:https://sandbox-secure.xsolla.com/paystation4/?token={token}`。
提示由于此方法会根据IP确定用户所在国家/地区,并为订单选择货币,因此请务必仅在客户端侧使用此方法,不要在服务器侧使用。从服务器侧使用此方法可能导致货币判断不准确,并影响支付收银台中可用的支付方式。
### 创建包含当前购物车中所有商品的订单
- [POST /v2/project/{project_id}/payment/cart](https://xsolla.redocly.app/zh/api/catalog/payment-client-side/create-order.md): 用于客户端到服务器集成。创建包含购物车中所有商品的订单,并为该订单生成支付令牌。创建后的订单状态为new。
客户端IP用于确定用户所在国家/地区,进而为订单应用对应的货币和可用支付方式。
如需在新窗口中打开支付UI,请使用以下链接:https://secure.xsolla.com/paystation4/?token={token},其中{token}是收到的令牌。
如要进行测试,请使用以下URL:https://sandbox-secure.xsolla.com/paystation4/?token={token}`。
提示由于此方法会根据IP确定用户所在国家/地区,并为订单选择货币,因此请务必仅在客户端侧使用此方法,不要在服务器侧使用。从服务器侧使用此方法可能导致货币判断不准确,并影响支付收银台中可用的支付方式。
### 创建包含指定商品的订单
- [POST /v2/project/{project_id}/payment/item/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/payment-client-side/create-order-with-item.md): 用于客户端到服务器集成。创建包含指定商品的订单,并为该订单生成支付令牌。创建后的订单状态为new。
客户端IP用于确定用户所在国家/地区,进而为订单应用对应的货币和可用支付方式。
如需在新窗口中打开支付UI,请使用以下链接:https://secure.xsolla.com/paystation4/?token={token},其中{token}是收到的令牌。
如要进行测试,请使用以下URL:https://sandbox-secure.xsolla.com/paystation4/?token={token}`。
提示由于此方法会根据IP确定用户所在国家/地区,并为订单选择货币,因此请务必仅在客户端侧使用此方法,不要在服务器侧使用。从服务器侧使用此方法可能导致货币判断不准确,并影响支付收银台中可用的支付方式。
提示
此API调用使用用户JWT进行授权。
请在Authorization请求头中包含令牌,格式为:Bearer <user_JWT>。有关用户JWT的更多信息,请参阅此调用的安全性部分。
## 支付(服务器侧)
使用本部分中的调用在服务器侧创建支付令牌。
### 创建购买支付令牌
- [POST /v3/project/{project_id}/admin/payment/token](https://xsolla.redocly.app/zh/api/catalog/payment-server-side/admin-create-payment-token.md): 生成订单及其支付令牌。订单根据请求正文中传递的商品生成。
如需在新窗口中打开支付UI,请使用以下链接:https://secure.xsolla.com/paystation4/?token={token},其中{token}是收到的令牌。
如要进行测试,请使用以下URL:https://sandbox-secure.xsolla.com/paystation4/?token={token}`。
注意
为确保该方法正常工作,请传入user.country.value参数(国家/地区代码)或X-User-Ip标头(如果国家/地区未知,则传入用户的IPv4地址)。传入的数据将用于确定支付货币。
不支持IPv6地址。所选货币将用于艾克索拉支付UI中的支付方式。
## 订单
使用本部分中的调用获取订单信息。
### 获取订单
- [GET /v2/project/{project_id}/order/{order_id}](https://xsolla.redocly.app/zh/api/catalog/order/get-order.md): 获取指定订单。
### 获取指定时间段内的订单列表
- [POST /v3/project/{project_id}/admin/order/search](https://xsolla.redocly.app/zh/api/catalog/order/admin-order-search.md): 获取订单列表,并按创建日期从早到晚排列。
## 免费商品
使用本部分中的调用向用户发放免费商品。
### 创建免费购物车订单
- [POST /v2/project/{project_id}/free/cart](https://xsolla.redocly.app/zh/api/catalog/free-item/create-free-order.md): 创建包含免费购物车中所有商品的订单。创建后的订单状态将为done。
### 创建指定免费购物车订单
- [POST /v2/project/{project_id}/free/cart/{cart_id}](https://xsolla.redocly.app/zh/api/catalog/free-item/create-free-order-by-cart-id.md): 创建包含指定免费购物车中所有商品的订单。创建后的订单状态将为done。
### 创建包含指定免费商品的订单
- [POST /v2/project/{project_id}/free/item/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/free-item/create-free-order-with-item.md): 创建包含指定免费商品的订单。创建后的订单状态将为done。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
## 管理
### 刷新指定用户的所有购买限制
- [DELETE /v2/project/{project_id}/admin/user/limit/item/all](https://xsolla.redocly.app/zh/api/catalog/user-limits-admin/reset-all-user-items-limit.md): 刷新指定用户在所有商品上的全部购买次数限制,使其能够再次购买这些商品。
用户限制API允许您限量销售商品。如需配置购买限制,请前往所需商品类型模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
### 刷新购买限制
- [DELETE /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}/all](https://xsolla.redocly.app/zh/api/catalog/user-limits-admin/reset-user-item-limit.md): 刷新商品的购买限制,以便用户可以再次购买。如果user参数为null,此调用会为所有用户刷新此限制。
用户限制API允许您限量销售商品。如需配置购买限制,请前往所需商品类型模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
### 获取指定用户可购买的商品剩余数量
- [GET /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/user-limits-admin/get-user-item-limit.md): 获取在已应用的数量限制内,指定用户仍可购买的商品剩余数量。
用户限制API允许您限量销售商品。如需配置购买限制,请前往所需商品类型模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
### 增加指定用户可购买的商品剩余数量
- [POST /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/user-limits-admin/add-user-item-limit.md): 在已应用的数量限制内,增加指定用户可购买的商品剩余数量。
用户限制API允许您限量销售商品。如需配置购买限制,请前往所需商品类型模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
### 设置指定用户可购的商品数量
- [PUT /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/user-limits-admin/set-user-item-limit.md): 在已应用的数量限制经过增加或减少后,设置指定用户可购买的商品数量。
用户限制API允许您限量销售商品。如需配置购买限制,请前往所需商品类型模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
### 减少指定用户可购买的商品剩余数量
- [DELETE /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/user-limits-admin/remove-user-item-limit.md): 在已应用的数量限制内,减少指定用户可购买的商品剩余数量。
用户限制API允许您限量销售商品。如需配置购买限制,请前往所需商品类型模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
## 管理
### 通过JSON文件导入商品
- [POST /v1/projects/{project_id}/import/from_external_file](https://xsolla.redocly.app/zh/api/catalog/connector-admin/import-items-from-external-file.md): 通过指定的URL从JSON文件将商品导入商店。关于从JSON文件导入的更多信息,请参阅文档。
### 获取商品导入状态
- [GET /v1/admin/projects/{project_id}/connectors/import_items/import/status](https://xsolla.redocly.app/zh/api/catalog/connector-admin/get-items-import-status.md): 检索将商品导入项目的进度信息。此API调用检索通过API或发布商帐户执行的最后一次导入的数据。
## 预售
### 获取商品预售限制信息
- [GET /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/common-pre-orders/get-pre-order-limit.md): 获取商品的预售数量限制。
预售限制API允许限量销售商品。如需配置预售本身,请前往所需商品模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
此接口的别名:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}
### 添加商品预售数量限制
- [POST /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/common-pre-orders/add-pre-order-limit.md): 添加商品的预售数量限制。
预售限制API允许限量销售商品。如需配置预售本身,请前往所需商品模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
此接口的别名:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}
### 设置商品预售数量限制
- [PUT /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/common-pre-orders/set-pre-order-limit.md): 设置商品的预售数量限制。
预售限制API允许限量销售商品。如需配置预售本身,请前往所需商品模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
此接口的别名:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}
### 移除商品预售数量限制
- [DELETE /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://xsolla.redocly.app/zh/api/catalog/common-pre-orders/remove-pre-order-limit.md): 取消商品的预售数量限制。
预售限制API允许限量销售商品。如需配置预售本身,请前往所需商品模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
此接口的别名:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}
### 切换商品的预售限制状态
- [PUT /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}/toggle](https://xsolla.redocly.app/zh/api/catalog/common-pre-orders/toggle-pre-order-limit.md): 启用/禁用商品的预售限制。
预售限制API允许限量销售商品。如需配置预售本身,请前往所需商品模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
此接口的别名:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}/toggle
### 移除所有商品预售数量限制
- [DELETE /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}/all](https://xsolla.redocly.app/zh/api/catalog/common-pre-orders/remove-all-pre-order-limit.md): 取消商品的所有预售数量限制。
预售限制API允许限量销售商品。如需配置预售本身,请前往所需商品模块的管理部分:
* 游戏Key
* 虚拟物品和货币
* 捆绑包
此接口的别名:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}/all
## 商户
### 获取项目
- [GET /v2/merchant/{merchant_id}/projects](https://xsolla.redocly.app/zh/api/catalog/common-merchant/get-projects.md): 获取商户项目列表。
提示此API调用不包含project_id路径参数,因此您需要使用在公司所有项目中均有效的API密钥来设置授权。
## 商品目录
此API可用于获取任意类型的可售商品或特定商品。
### 获取可售商品列表
- [GET /v2/project/{project_id}/items](https://xsolla.redocly.app/zh/api/catalog/common-catalog/get-sellable-items.md): 获取用于构建商品目录的可售商品列表。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按ID获取可售商品
- [GET /v2/project/{project_id}/items/id/{item_id}](https://xsolla.redocly.app/zh/api/catalog/common-catalog/get-sellable-item-by-id.md): 按ID获取可售商品。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按SKU获取可售商品
- [GET /v2/project/{project_id}/items/sku/{sku}](https://xsolla.redocly.app/zh/api/catalog/common-catalog/get-sellable-item-by-sku.md): 按SKU获取用于构建商品目录的可售商品。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
### 按指定组获取可售商品列表
- [GET /v2/project/{project_id}/items/group/{external_id}](https://xsolla.redocly.app/zh/api/catalog/common-catalog/get-sellable-items-group.md): 从指定组获取用于构建商品目录的可售商品列表。
注意
所有项目对响应中可获取的商品数量均有限制。默认值和最大值均为每个响应50个商品。如需按页获取更多数据,请使用limit和offset字段。
注:
未经授权使用此API调用时,会返回通用商品目录数据。如需获取
个性化
用户数据,例如与商品相关的数量限制和促销活动,请使用授权。为此,请在Authorization请求头中传递用户JWT。
有关用户JWT的更多信息,请参阅此调用的Security部分。
## 通用区域
区域销售限制用于控制商品可在哪些国家/地区或国家/地区组销售。例如,受授权许可限制时,您可以将某款游戏设置为仅在特定国家/地区销售。
销售限制通过区域进行配置。每个区域使用一个`region_id`标识符关联一个或多个国家/地区。您可以将一个商品关联到一个或多个区域。
商品是否可售按以下规则判断:
* 如果未为商品指定区域,则该商品可在所有国家/地区购买。
* 如果为商品指定了区域,且用户所在国家/地区包含在其中任一区域内,则该商品对该用户可售。
* 如果为商品指定了区域,但用户所在国家/地区不包含在任何指定区域内,则该商品对该用户不可售。
通过**商品目录**子部分中的API调用请求商品目录时,可通过`country`参数传入用户所在国家/地区。如果未传入该参数,系统会根据用户的IP地址判断其所在国家/地区。
系统会在两个环节校验用户所在国家/地区是否符合商品的区域设置:请求商品目录时和创建订单时。不可售商品不会返回在商品目录响应中;包含不可售商品的订单也无法创建。
如需创建、更新或删除区域,请使用**通用区域**组中的API调用。
区域销售限制设置流程:
1. 使用[创建区域](https://developers.xsolla.com/zh/api/catalog/common-regions/admin-create-region/)API调用创建区域,并指定国家/地区列表。响应会返回下一步需要使用的`region_id`。
2. [创建](https://developers.xsolla.com/zh/api/catalog/virtual-items-currency-admin/admin-create-virtual-item/)或[更新](https://developers.xsolla.com/zh/api/catalog/virtual-items-currency-admin/admin-update-virtual-item/)虚拟物品时,在`regions`数组中传入该区域的`region_id`,将虚拟物品关联到该区域。
3. 使用**商品目录**子部分中的API调用向用户展示商品目录,例如[获取虚拟物品列表](https://developers.xsolla.com/zh/api/catalog/virtual-items-currency-catalog/get-virtual-items)API调用。系统会根据`country`参数确定用户所在国家/地区;如果未提供该参数,则根据用户的IP地址判断。用户所在国家/地区不可售的商品不会包含在商品目录响应中。
4. 当用户继续支付商品或购物车时,创建订单:
* 如果商品已添加到购物车,请使用[使用特定购物车中的所有商品创建订单](https://developers.xsolla.com/zh/api/catalog/payment-client-side/create-order)或[使用当前购物车中的所有商品创建订单](https://developers.xsolla.com/zh/api/catalog/payment-client-side/create-order)API调用。
* 如需快速购买单个商品,请使用[使用指定商品创建订单](https://developers.xsolla.com/zh/api/catalog/payment-client-side/create-order-with-item)API调用,并传入商品SKU。
响应中包含用于打开支付UI的令牌。
注:
艾克索拉会检查用户所在国家/地区是否包含在为商品指定的区域中。如果用户所在国家/地区不在该商品的区域范围内,则无法创建订单。
5. 实现支付UI的打开逻辑,以便用户支付订单。

### 获取区域列表
- [GET /v2/project/{project_id}/admin/region](https://xsolla.redocly.app/zh/api/catalog/common-regions/admin-get-regions.md): 获取区域列表。
可使用区域来管理区域限制。
### 创建区域
- [POST /v2/project/{project_id}/admin/region](https://xsolla.redocly.app/zh/api/catalog/common-regions/admin-create-region.md): 创建区域。
可使用区域来管理区域限制。
### 获取区域
- [GET /v2/project/{project_id}/admin/region/{region_id}](https://xsolla.redocly.app/zh/api/catalog/common-regions/admin-get-region.md): 获取特定区域。
可使用区域来管理区域限制。
### 更新区域
- [PUT /v2/project/{project_id}/admin/region/{region_id}](https://xsolla.redocly.app/zh/api/catalog/common-regions/admin-update-region.md): 更新特定区域。
可使用区域来管理区域限制。
### 删除区域
- [DELETE /v2/project/{project_id}/admin/region/{region_id}](https://xsolla.redocly.app/zh/api/catalog/common-regions/admin-delete-region.md): 删除特定区域。
## Webhook
### 更新Webhook版本
- [PUT /v2/project/{project_id}/admin/webhook/version](https://xsolla.redocly.app/zh/api/catalog/common-webhooks/update-webhook-version.md): 更新项目的Webhook版本。版本2会在items数组中包含额外参数。
有关Webhook的更多信息,请参阅设置订单状态跟踪。
## 管理
### 获取属性列表(管理)
- [GET /v2/project/{project_id}/admin/attribute](https://xsolla.redocly.app/zh/api/catalog/attribute-admin/admin-get-attribute-list.md): 获取项目中的属性列表,以用于管理。
### 创建属性
- [POST /v2/project/{project_id}/admin/attribute](https://xsolla.redocly.app/zh/api/catalog/attribute-admin/admin-create-attribute.md): 创建属性。
### 更新属性
- [PUT /v2/project/{project_id}/admin/attribute/{external_id}](https://xsolla.redocly.app/zh/api/catalog/attribute-admin/admin-update-attribute.md): 更新属性。
### 获取指定属性
- [GET /v2/project/{project_id}/admin/attribute/{external_id}](https://xsolla.redocly.app/zh/api/catalog/attribute-admin/admin-get-attribute.md): 获取指定的属性。
### 删除属性
- [DELETE /v2/project/{project_id}/admin/attribute/{external_id}](https://xsolla.redocly.app/zh/api/catalog/attribute-admin/delete-attribute.md): 删除属性。
提示如果删除商品属性,其所有数据及其与商品的关联都将丢失。
### 创建属性值
- [POST /v2/project/{project_id}/admin/attribute/{external_id}/value](https://xsolla.redocly.app/zh/api/catalog/attribute-admin/admin-create-attribute-value.md): 创建一个属性值。
注意:所有项目对属性值数量均有限制。默认值和最大值均为每个属性20个值。
### 删除属性的所有值
- [DELETE /v2/project/{project_id}/admin/attribute/{external_id}/value](https://xsolla.redocly.app/zh/api/catalog/attribute-admin/admin-delete-all-attribute-value.md): 删除该属性的所有值。
提示删除属性值后,该属性与商品之间的所有关联关系将被移除。如需更改商品的属性值,请使用更新属性值API调用,而不是删除该值再创建新值。
### 更新属性值
- [PUT /v2/project/{project_id}/admin/attribute/{external_id}/value/{value_external_id}](https://xsolla.redocly.app/zh/api/catalog/attribute-admin/admin-update-attribute-value.md): 更新属性值。
### 删除属性值
- [DELETE /v2/project/{project_id}/admin/attribute/{external_id}/value/{value_external_id}](https://xsolla.redocly.app/zh/api/catalog/attribute-admin/admin-delete-attribute-value.md): 删除属性值。
提示删除属性值后,该属性与商品之间的所有关联关系将被移除。如需更改商品的属性值,请使用更新属性值API调用,而不是删除该值再创建新值。
## 管理
### 获取商品组列表
- [GET /v2/project/{project_id}/admin/items/groups](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-get-item-group-list.md): 获取项目内完整商品组列表,不分页。用于管理目的。
注:请勿使用此接口来构建商店商品目录。请改用获取商品组列表客户端侧接口。
### 创建商品组
- [POST /v2/project/{project_id}/admin/items/groups](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-create-item-group.md): 在项目内创建商品组。
如需获取用于构建商品目录的商品组,请使用获取商品组列表客户端侧接口。
### 按外部ID获取商品组
- [GET /v2/project/{project_id}/admin/items/groups/{external_id}](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-get-item-group.md): 按外部ID获取商品组,用于管理目的。
注:请勿使用此接口来构建商店商品目录。请改用获取商品组列表客户端侧接口。
### 更新商品组
- [PUT /v2/project/{project_id}/admin/items/groups/{external_id}](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-update-item-group.md): 按外部ID更新商品组。
### 删除商品组
- [DELETE /v2/project/{project_id}/admin/items/groups/{external_id}](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-delete-item-group.md): 按外部ID删除商品组。
### 获取按商品类型筛选的商品组列表
- [GET /v2/project/{project_id}/admin/items/{item_type}/groups](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-get-item-group-list-by-item-type.md): 获取按商品类型筛选后的商品组列表。仅将指定类型的商品计入对应组。此接口类似于获取商品组列表接口,但在统计商品数量时会额外按商品类型进行筛选。
### 按外部ID获取按商品类型筛选的商品组
- [GET /v2/project/{project_id}/admin/items/{item_type}/groups/{external_id}](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-get-item-group-by-item-type.md): 按外部ID获取商品组。仅将指定类型的商品计入对应组。此接口类似于按外部ID获取商品组接口,但在统计商品数量时会额外按商品类型进行筛选。
### 重新排列商品组
- [PUT /v2/project/{project_id}/admin/group/order](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-reorder-item-groups.md): 设置项目内商品组的显示顺序。传入包含新排序值的组数组。
### 重新排列组内商品(按外部ID)
- [PUT /v2/project/{project_id}/admin/group/{external_id}/order/item](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-reorder-items-in-group.md): 设置由外部ID标识的组内商品显示顺序。传入包含新排序值的商品数组。
### 重新排列组内商品(按ID)
- [PUT /v2/project/{project_id}/admin/group/id/{id}/order/item](https://xsolla.redocly.app/zh/api/catalog/item-groups-admin/admin-reorder-items-in-group-by-id.md): 设置由内部数字ID标识的组内商品显示顺序。传入包含新排序值的商品数组。
## 商品目录
### 获取商品组列表
- [GET /v2/project/{project_id}/items/groups](https://xsolla.redocly.app/zh/api/catalog/item-groups-catalog/get-item-groups.md): 获取用于构建商品目录的商品组列表,不分页。
注:商品目录API调用可在未授权情况下使用,但如需获取个性化商品目录,必须在Authorization请求头中传递用户JWT。