# 自動發放禮包2.0接口文檔
### 一、需求背景
當前用戶領取禮包需要由cp提供禮包碼,在后臺配置禮包,再由用戶領取禮包時復制禮包碼到游戲內領取,此步驟對用戶來說過于繁瑣、體驗不佳,通過與CP方對接自動發放禮包接口,實現禮包自動發放的功能,高用戶體驗;
### 二、實現方案
由cp提供游戲道具庫給我方,我方運營在后臺針對禮包選擇配置不同的道具及數量,配置好后,用戶通過喵頭選擇好領取區服角色后,點擊領取禮包,我方提供相應的道具id及數量,由cp發放到指定區服角色下。
### 三、接口詳情
#### 1\. 保存或更新道具信息
**描述:**為保證兩邊道具庫內容一致,在cp更新道具時,調用此更新接口更新道具。
**接口名稱:**web/sign/saveOrUpdateGameProps(接口名會變更)
**參數類型:**json格式
**請求方式:**POST
**請求參數:**
| 參數名 | 必選 | 類型 | 說明 |
| --- | --- | --- | --- |
| saveList | 否 | List\<GameItems> | 保存道具集合(單次限制個數100個) |
| updateList | 否 | List\<GameItems> | 更新道具集合(單次限制個數100個) |
| deleteList | 否 | List\<GameItems> | 刪除道具集合(單次限制個數100個) |
| libraryId | 是 | String |道具庫標識|
GameItems屬性
| 參數名 | 必選 | 類型 | 說明 |
| --- | --- | --- | --- |
| itemId | 是 | String | 道具id |
| itemName | 是 | String | 道具名稱 |
**請求示例:**
```
{
"saveList": [{
"itemId": "1001",
"itemName": "元寶"
}],
"updateList": [{
"itemId": "1001",
"itemName": "元寶1"
}],
"deleteList": [{
"itemId": "1001",
"itemName": "元寶"
}],
"libraryId":"111"
}
```
**接口返回:**
| 參數名 | 必選 | 類型 | 描述 |
| --- | --- | --- | --- |
| code | 是 | String | 錯誤碼 |
| message | 是 | String | 錯誤原因 |
| data | 是 | boolean | 領取結果 |
**返回示例:**
~~~
{
"code":?"200",
"message":?"成功",
"data":?true
}
~~~
### 2\. 根據用戶id獲取角色及區服信息(用于判斷禮包領取賬戶)
**描述**:提供用戶id,查詢該用戶在該游戲下每個區服創建的角色,玩家在領取禮包時,選定領取到指定的區服后,才能領取禮包。
**接口名稱**:/getPlayerInfoByUid(接口名稱可自定義)
**請求方式:**POST
**請求示例:**
{"uid":"957232"}
**請求參數:**
| 參數名 | 必選 | 類型 | 描述 |
| --- | --- | --- | --- |
| uid | 是 | String | 用戶登錄時,由融合返回的userId |
**接口返回:**
| 參數名 | 必選 | 類型 | 描述 |
| --- | --- | --- | --- |
| aid | 是 | String | 賬號編號 |
| players | 否 | String | 賬號下的角色 |
players數據格式
| 參數名 | 必選 | 類型 | 描述 |
| --- | --- | --- | --- |
| pid | 是 | String | 玩家角色id |
| playerName | 是 | String | 玩家名稱 |
| serverId | 是 | String | 區服id |
| serverName | 是 | String | 區服名稱 |\*\* 返回示例:\*\*
~~~
{
"aid":?"1993749"
"players": [{
"pid":?"100",
"playerName":?"玩家1",
?"serverId":?"200"
? "serverName":"1區"
},
{
"pid":?"101",
"playerName":?"玩家2",
?"serverId":?"201"
? "serverName":"2區"
}
]
}
~~~
### 3\. 獲取道具
**描述:**用戶點擊領取道具,選擇區服角色之后請求道具發放接口,cp根據請求參數發放指定數量的道具至指定的玩家區服郵箱中。
**接口名稱:**/deliverGameItems
**請求方式:POST**
**驗簽規則:aid+pid+serverId+secret取32位MD5加密結果(secret為自定義密鑰,規則可自定義)**
**請求示例:**
~~~
{
?"sign":"1",
?"pid":"1",
?"serverId":"1",
?"aid":"1",
?"items":"{\"40013\":2,\"40012\":1}"
}
~~~
**請求參數:**
| 參數名 | 必選 | 類型 | 描述 |
| --- | --- | --- | --- |
| aid | 是 | String | 賬號編號 |
| pid | 是 | String | 玩家角色id |
| serverId | 是 | String | 區服id |
| sign | 是 | String | 驗簽(規則待定) |
| items | 是 | String | 道具(道具id和對應數量鍵值對,道具種類不超過10個) |
**接口返回:**
| 參數名 | 必選 | 類型 | 描述 |
| --- | --- | --- | --- |
| code | 是 | String | 錯誤碼,成功是為固定200,失敗可自定義 |
| message | 是 | String | 錯誤原因,成功是為success,失敗可自定義 |
| data | 是 | boolean | 領取結果,成功為true,失敗為false |