# Digital Distribution Hub
# 概览
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)来生成一个令牌。
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`是根据Base64标准加密的`distribution_hub_id:api_key`对。
请联系您的帐户经理获取`distribution_hub_id`和`api_key`。
Type: http
Scheme: basic
## Download OpenAPI description
[Digital Distribution Hub](https://developers.xsolla.com/_bundle/@l10n/zh/api/digital-distribution-hub/index.yaml)
## 购物车
### 获取当前用户的购物车
- [GET /v2/project/{project_id}/cart](https://developers.xsolla.com/zh/api/digital-distribution-hub/cart/get-user-cart.md): 返回当前用户的购物车。
### 从当前购物车中删除所有购物车商品
- [PUT /v2/project/{project_id}/cart/clear](https://developers.xsolla.com/zh/api/digital-distribution-hub/cart/cart-clear.md): 删除所有购物车商品。
### 在购物车里添加商品
- [PUT /v2/project/{project_id}/cart/fill](https://developers.xsolla.com/zh/api/digital-distribution-hub/cart/cart-fill.md): 用商品填充购物车。如果购物车中已有具有相同SKU的商品,则现有商品将被传入的值替换。
### 从当前购物车中删除购物车商品
- [DELETE /v2/project/{project_id}/cart/item/{item_sku}](https://developers.xsolla.com/zh/api/digital-distribution-hub/cart/delete-item.md): 从购物车中删除一个商品。
### 更新当前购物车的商品
- [PUT /v2/project/{project_id}/cart/item/{item_sku}](https://developers.xsolla.com/zh/api/digital-distribution-hub/cart/put-item.md): 更新现有的购物车商品或在购物车中创建商品。
### 按购物车ID获取购物车
- [GET /v2/project/{project_id}/cart/{cart_id}](https://developers.xsolla.com/zh/api/digital-distribution-hub/cart/get-cart-by-id.md): 按购物车ID返回用户的购物车。
### 按购物车ID删除所有购物车商品
- [PUT /v2/project/{project_id}/cart/{cart_id}/clear](https://developers.xsolla.com/zh/api/digital-distribution-hub/cart/cart-clear-by-id.md): 删除所有购物车商品。
### 在指定购物车里添加商品
- [PUT /v2/project/{project_id}/cart/{cart_id}/fill](https://developers.xsolla.com/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://developers.xsolla.com/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://developers.xsolla.com/zh/api/digital-distribution-hub/cart/put-item-by-cart-id.md): 更新现有的购物车商品或在购物车中创建商品。
## 游戏密钥
### 获取游戏列表
- [GET /v2/project/{project_id}/items/game](https://developers.xsolla.com/zh/api/digital-distribution-hub/game-keys/get-games-list.md): 获取用于构建目录的游戏列表。
注意:所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50项。要逐页获取更多数据,请使用limit和offset字段。
### 获取DRM列表
- [GET /v2/project/{project_id}/items/game/drm](https://developers.xsolla.com/zh/api/digital-distribution-hub/game-keys/get-drm-list.md): 获取可用DRM的列表。
### 按指定组获取游戏列表
- [GET /v2/project/{project_id}/items/game/group/{external_id}](https://developers.xsolla.com/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://developers.xsolla.com/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://developers.xsolla.com/zh/api/digital-distribution-hub/game-keys/get-game-key-by-sku.md): 获取用于目录的游戏。
### 获取用于目录的游戏
- [GET /v2/project/{project_id}/items/game/sku/{item_sku}](https://developers.xsolla.com/zh/api/digital-distribution-hub/game-keys/get-game-by-sku.md): 获取用于目录的游戏。
## 虚拟物品和货币
### 获取项目组列表
- [GET /v2/project/{project_id}/items/groups](https://developers.xsolla.com/zh/api/digital-distribution-hub/virtual-items-and-currency/get-item-groups.md): 获取用于构建目录的商品组列表。
### 获取虚拟货币列表
- [GET /v2/project/{project_id}/items/virtual_currency](https://developers.xsolla.com/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://developers.xsolla.com/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://developers.xsolla.com/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://developers.xsolla.com/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://developers.xsolla.com/zh/api/digital-distribution-hub/bundles/get-bundle-list.md): 获取用于构建目录的捆绑包列表。
注意:所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50项。
### 获取指定的捆绑包
- [GET /v2/project/{project_id}/items/bundle/sku/{sku}](https://developers.xsolla.com/zh/api/digital-distribution-hub/bundles/get-bundle.md): 获取指定的捆绑包。
## 用户令牌
### 创建用户令牌
- [POST /v2/project/{project_id}/distribution_hub/user/auth](https://developers.xsolla.com/zh/api/digital-distribution-hub/user-token/create-user-token.md): 验证用户是否存在于游戏中并创建用户令牌。
## 通知
### 取消通知
- [POST /push-payments/cancel](https://developers.xsolla.com/zh/api/digital-distribution-hub/notifications/cancel-notification.md): 在以下情况下发送支付取消通知:
- 支付未完成
- 支付已退款
### 支付通知
- [POST /push-payments/pay](https://developers.xsolla.com/zh/api/digital-distribution-hub/notifications/pay-notification.md): 成功向用户扣款后发送此通知。
## 订单
### 获取订单
- [GET /v2/project/{project_id}/distribution_hub/order/{order_id}](https://developers.xsolla.com/zh/api/digital-distribution-hub/order/get-order.md): 检索指定的订单。
### 使用当前购物车中的所有商品创建订单
- [POST /v2/project/{project_id}/distribution_hub/payment/cart](https://developers.xsolla.com/zh/api/digital-distribution-hub/order/create-order.md): 使用购物车中的所有商品创建订单。创建的订单将获得new订单状态。
### 使用指定购物车中的所有商品创建订单
- [POST /v2/project/{project_id}/distribution_hub/payment/cart/{cart_id}](https://developers.xsolla.com/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://developers.xsolla.com/zh/api/digital-distribution-hub/order/create-order-with-item.md): 使用指定商品创建订单。创建的订单将获得new订单状态。