# Digital Distribution Hub

# 概览 {% #overview %}

Digital Distribution Hub是一个全新的艾克索拉解决方案，旨在通过推送支付(Push payments)技术和电子商务来联结数字与现金支付。

本参考指南合并介绍了用于以下两个艾克索拉产品的API端点：[游戏内商店](https://developers.xsolla.com\/zh/doc/in-game-store/)和[支付中心](https://developers.xsolla.com\/zh/doc/pay-station/)。基础URL有两个：

* `https://store.xsolla.com/api` ，用于**常用**、**目录**、**购物车**和**订单**组。
* `https://ps.xsolla.com`，用于**通知**组。

**目录**组中的API端点不需要授权。

要使用**购物车**和**订单**组中的操作，需通过[创建用户令牌](https://developers.xsolla.com\/zh/digital-distribution-hub/common/user-token/create-user-token)来生成一个令牌。

<div class='note'><b>注：</b><br><br>本参考展示的是未来可能的API设计，并非已经完全运作的界面。目前只支持尝试<b>目录</b>和<b>通知</b>组端点。如想向我们提供反馈，请发送邮件至<a href="mailto:techdoc@xsolla.com">techdoc@xsolla.com</a>。</div>

Version: 1.0.0

## Servers

```
https://store.xsolla.com/api
```

## Security

### AuthForClient

使用[创建用户令牌](https://developers.xsolla.com\/zh/api/digital-distribution-hub/operation/create-user-token)端点生成令牌。

Type: http
Scheme: bearer

### basicAuth

Xsolla API使用基本认证。所有发送到API的请求必须包含`Authorization: Basic <your_authorization_basic_key>`头，其中`your_authorization_basic_key`是根据Base64标准加密的`distribution_hub_id:api_key`对。 

请联系您的帐户经理获取`distribution_hub_id`和`api_key`。

Type: http
Scheme: basic

## Download OpenAPI description

[Digital Distribution Hub](https://xsolla.redocly.app/_bundle/@l10n/zh/api/digital-distribution-hub/index.yaml)

## 购物车

### 获取当前用户的购物车

 - [GET /v2/project/{project_id}/cart](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/get-user-cart.md): 返回当前用户的购物车。

### 从当前购物车中删除所有购物车商品

 - [PUT /v2/project/{project_id}/cart/clear](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/cart-clear.md): 删除所有购物车商品。

### 在购物车里添加商品

 - [PUT /v2/project/{project_id}/cart/fill](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/cart-fill.md): 用商品填充购物车。如果购物车中已有具有相同SKU的商品，则现有商品将被传入的值替换。

### 从当前购物车中删除购物车商品

 - [DELETE /v2/project/{project_id}/cart/item/{item_sku}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/delete-item.md): 从购物车中删除一个商品。

### 更新当前购物车的商品

 - [PUT /v2/project/{project_id}/cart/item/{item_sku}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/put-item.md): 更新现有的购物车商品或在购物车中创建商品。

### 按购物车ID获取购物车

 - [GET /v2/project/{project_id}/cart/{cart_id}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/get-cart-by-id.md): 按购物车ID返回用户的购物车。

### 按购物车ID删除所有购物车商品

 - [PUT /v2/project/{project_id}/cart/{cart_id}/clear](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/cart-clear-by-id.md): 删除所有购物车商品。

### 在指定购物车里添加商品

 - [PUT /v2/project/{project_id}/cart/{cart_id}/fill](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/cart-fill-by-id.md): 用商品填充指定购物车。如果购物车中已有具有相同SKU的商品，则现有商品位置将被传入的值替换。

### 按购物车ID删除购物车商品

 - [DELETE /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/delete-item-by-cart-id.md): 从购物车中删除一个商品。

### 按购物车ID更新购物车商品

 - [PUT /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/cart/put-item-by-cart-id.md): 更新现有的购物车商品或在购物车中创建商品。

## 游戏密钥

### 获取游戏列表

 - [GET /v2/project/{project_id}/items/game](https://xsolla.redocly.app/zh/api/digital-distribution-hub/game-keys/get-games-list.md): 获取用于构建目录的游戏列表。

注意：所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50项。要逐页获取更多数据，请使用limit和offset字段。

### 获取DRM列表

 - [GET /v2/project/{project_id}/items/game/drm](https://xsolla.redocly.app/zh/api/digital-distribution-hub/game-keys/get-drm-list.md): 获取可用DRM的列表。

### 按指定组获取游戏列表

 - [GET /v2/project/{project_id}/items/game/group/{external_id}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/game-keys/get-games-group.md): 从指定组中获取游戏列表以构建目录。

注意：所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应 50项。要逐页获取更多数据，请使用limit和offset字段。

### 按指定组获取游戏列表

 - [GET /v2/project/{project_id}/items/game/key/group/{external_id}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/game-keys/get-game-keys-group.md): 从指定组中获取游戏密钥列表以构建目录。

注意：所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50个商品。要逐页获取更多数据，请使用limit和offset字段。

### 获取用于目录的游戏

 - [GET /v2/project/{project_id}/items/game/key/sku/{item_sku}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/game-keys/get-game-key-by-sku.md): 获取用于目录的游戏。

### 获取用于目录的游戏

 - [GET /v2/project/{project_id}/items/game/sku/{item_sku}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/game-keys/get-game-by-sku.md): 获取用于目录的游戏。

## 虚拟物品和货币

### 获取项目组列表

 - [GET /v2/project/{project_id}/items/groups](https://xsolla.redocly.app/zh/api/digital-distribution-hub/virtual-items-and-currency/get-item-groups.md): 获取用于构建目录的商品组列表。

### 获取虚拟货币列表

 - [GET /v2/project/{project_id}/items/virtual_currency](https://xsolla.redocly.app/zh/api/digital-distribution-hub/virtual-items-and-currency/get-virtual-currency.md): 获取用于构建目录的虚拟货币列表。

注意：所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50项。要逐页获取更多数据，请使用limit和offset字段。

### 获取虚拟货币套餐列表

 - [GET /v2/project/{project_id}/items/virtual_currency/package](https://xsolla.redocly.app/zh/api/digital-distribution-hub/virtual-items-and-currency/get-virtual-currency-package.md): 获取用于构建目录的虚拟货币套餐列表。

注意：所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50项。要逐页获取更多数据，请使用limit和offset字段。

### 获取虚拟物品列表

 - [GET /v2/project/{project_id}/items/virtual_items](https://xsolla.redocly.app/zh/api/digital-distribution-hub/virtual-items-and-currency/get-virtual-items.md): 获取用于构建目录的虚拟物品列表。

注意：所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50项。要逐页获取更多数据，请使用limit和offset字段。

### 按指定组获取商品列表

 - [GET /v2/project/{project_id}/items/virtual_items/group/{external_id}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/virtual-items-and-currency/get-virtual-items-group.md): 从指定组获取商品列表以构建目录。

注意：所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50项。要逐页获取更多数据，请使用limit和offset字段。

## 捆绑包

### 获取捆绑包列表

 - [GET /v2/project/{project_id}/items/bundle](https://xsolla.redocly.app/zh/api/digital-distribution-hub/bundles/get-bundle-list.md): 获取用于构建目录的捆绑包列表。

注意：所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50项。

### 获取指定的捆绑包

 - [GET /v2/project/{project_id}/items/bundle/sku/{sku}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/bundles/get-bundle.md): 获取指定的捆绑包。

## 用户令牌

### 创建用户令牌

 - [POST /v2/project/{project_id}/distribution_hub/user/auth](https://xsolla.redocly.app/zh/api/digital-distribution-hub/user-token/create-user-token.md): 验证用户是否存在于游戏中并创建用户令牌。

## 通知

### 取消通知

 - [POST /push-payments/cancel](https://xsolla.redocly.app/zh/api/digital-distribution-hub/notifications/cancel-notification.md): 在以下情况下发送支付取消通知：
 - 支付未完成
 - 支付已退款

### 支付通知

 - [POST /push-payments/pay](https://xsolla.redocly.app/zh/api/digital-distribution-hub/notifications/pay-notification.md): 成功向用户扣款后发送此通知。

## 订单

### 获取订单

 - [GET /v2/project/{project_id}/distribution_hub/order/{order_id}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/order/get-order.md): 检索指定的订单。

### 使用当前购物车中的所有商品创建订单

 - [POST /v2/project/{project_id}/distribution_hub/payment/cart](https://xsolla.redocly.app/zh/api/digital-distribution-hub/order/create-order.md): 使用购物车中的所有商品创建订单。创建的订单将获得new订单状态。

### 使用指定购物车中的所有商品创建订单

 - [POST /v2/project/{project_id}/distribution_hub/payment/cart/{cart_id}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/order/create-order-by-cart-id.md): 使用指定购物车中的所有商品创建订单。创建的订单将获得new订单状态。

### 使用指定商品创建订单

 - [POST /v2/project/{project_id}/distribution_hub/payment/item/{item_sku}](https://xsolla.redocly.app/zh/api/digital-distribution-hub/order/create-order-with-item.md): 使用指定商品创建订单。创建的订单将获得new订单状态。

