# 自动发放礼包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 |