691 lines
16 KiB
Markdown
691 lines
16 KiB
Markdown
# 卡牌游戏接口说明
|
|
## 一. 说明
|
|
|
|
所有接口均需上传sessionid
|
|
|
|
通用返回JSON结构, 接口Response的数据结构说明只包含data部分
|
|
``` JSON
|
|
{
|
|
"errcode": 0, //0:成功 2: 缺少必要参数(accountid, sessionid) 4: 帐号被封, 5: 帐号未找到 100: 所有未定义的错误
|
|
"errmsg": "", //错误描述
|
|
"data": {}, // 数据
|
|
}
|
|
```
|
|
|
|
|
|
## 二. 客户端接口列表
|
|
|
|
### 1. 玩家资料
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/uinfo
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| nickname |昵称 |
|
|
| avatar |头像 |
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
{
|
|
accountid: '',
|
|
cards: [number],
|
|
heros: [{
|
|
heroid: number,
|
|
owned: true, // 是否已拥有
|
|
usetype: 1, // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
|
|
level: number, // 等级
|
|
exp: number, // 当前的经验值
|
|
ban: false, // 是否被禁用
|
|
free: false, // 是否免费
|
|
trial: false, // 是否是试用
|
|
trial_expire: 1609919293, // 试用到期时间, 0: 说明是永久
|
|
}],
|
|
moneys: [
|
|
{
|
|
"itemid": 80012, //代币的id
|
|
"itemnum": 140 // 数量
|
|
}
|
|
],
|
|
normal_stat: [0, 0, 0, 0] //匹配: 胜利场数, 失败场数, 平局场数, 掉线场数
|
|
season_rank: 1 // 当前赛季排名
|
|
match_score: 1000 //当前匹配分, 用于匹配时上传
|
|
season_score: 1000 // 排位分, 用于显示
|
|
season_data: {} // 当前赛季统计信息, 内容同接口11
|
|
}
|
|
```
|
|
|
|
### 2. 可用卡牌信息
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/cards
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
3. Response: JSON
|
|
|
|
> 说明: 匹配模式可以用的卡: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 2)
|
|
> 赛季排位模式可以用的卡: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 1)
|
|
|
|
```js
|
|
[{
|
|
cardid: 1022, // 卡牌id
|
|
owned: true, // 是否已拥有
|
|
ban: false, // 是否被禁用
|
|
usetype: 1, // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
|
|
free: false, // 是否免费
|
|
free_expire: 1609919293 // 免费到期时间
|
|
time:1609919293 // 该卡第一次解锁时间
|
|
}]
|
|
```
|
|
|
|
### 3. 可用英雄列表
|
|
|
|
> 这个接口用户信息中的英雄列表最大的不同, 这里返回所有可用英雄, 用户信息中只返回永久免费和玩家拥有的英雄
|
|
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/heros
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
3. Response: JSON
|
|
|
|
|
|
> 说明: 匹配模式可以用的英雄: (owned == true || (trial== true && not expired)) && (usetype == 0 || usetype == 2)
|
|
> 赛季排位模式可以用的英雄: (owned == true || (trial== true && not expired)) && (usetype == 0 || usetype == 1)
|
|
|
|
|
|
```js
|
|
[{
|
|
heroid: 1022, // 英雄id
|
|
owned: true, // 是否已拥有
|
|
ban: false, // 是否被禁用
|
|
usetype: 1, // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
|
|
ban: false, // 是否被禁用
|
|
free: false, // 是否免费
|
|
trial: false, // 是否试用
|
|
trial_expire: 1609919293 // 试用到期时间, 0: 说明是永久
|
|
level: 1, // 等级
|
|
exp: 0, // 当前的经验值
|
|
time: 1609919293 // 该英雄解锁时间
|
|
slot: 1, // 已解锁卡槽数量
|
|
}]
|
|
```
|
|
|
|
### 4. 自定义卡组列表
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/card_group/:heroid
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
| heroid | 英雄id, 不传的话, 获取该玩家所有可用卡组 |
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
[{
|
|
gid: '', // 卡组id
|
|
heroid: '', // 英雄id
|
|
selected: true, // 当前选择的卡组
|
|
isdefault: false, // 是否是默认卡组, 默认卡组不能编辑
|
|
cards: [{
|
|
cardid: '', // 卡牌id
|
|
owned: true, // 是否已拥有
|
|
ban: false, // 是否被禁用
|
|
usetype: 1, // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
|
|
free: false, // 是否免费
|
|
free_expire: 1609919293 // 免费到期时间
|
|
}]
|
|
}]
|
|
```
|
|
|
|
### 5. 保存卡组
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/card_group/save/:gid
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
| gid | 卡组id, 新卡组传 'new' |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| heroid |英雄id |
|
|
| selected |是否设为选中 |
|
|
| cards |[cardid] 卡牌id的数组 |
|
|
|
|
3. Response: JSON
|
|
|
|
根据errcode判断成功or失败
|
|
|
|
### 6. 删除卡组
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/card_group/delete/:gid
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
| gid | 卡组id, 不能为空 |
|
|
|
|
3. Response: JSON
|
|
|
|
根据errcode判断成功or失败
|
|
|
|
|
|
|
|
### 8. 抽卡
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/card/draw
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| count | 类型 1 或 10 |
|
|
|itemid| 抽卡使用的物品id |
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
[{
|
|
id: 11022, // 卡牌id
|
|
used: 1, // 是否已经自动激活卡或英雄, 1: 已自动激活 0: 未激活
|
|
count: 1000, // 数量
|
|
heroid: 111, // 激活的英雄id, 可能为空
|
|
cardid: 100 // 激活的卡id, 可能为空
|
|
}]
|
|
```
|
|
|
|
### 9. 对战记录列表
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/records
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
3. Response: JSON
|
|
|
|
```json
|
|
|
|
```
|
|
|
|
### ~~10. 升级英雄~~
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/hero/update/:heroid
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
| heroid | 英雄id |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| items |使用代币类型和数量, 格式 money0:count\|money1:count1 |
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```json
|
|
{
|
|
exp: 1022, // 升级后当前经验值
|
|
level: 1, // 升级后的等级
|
|
exp_gain: 100, // 本次升级一共获得的经验
|
|
}
|
|
```
|
|
|
|
### 11. 赛季统计信息
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/season_data
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```json
|
|
{
|
|
"0": 477, //最高伤害
|
|
"1": 62, // 最高承伤
|
|
"2": 289, // 最高总战力
|
|
"3": 150, // 最高单体战力
|
|
"4": 6, // 最高每局胡牌数
|
|
"5": 0, // 每局最多送给队友抽牌数
|
|
"0_total": 1071.3, // 所有伤害积分
|
|
"1_total": 86, // 所有承伤积分
|
|
"2_total": 1302, // 最高总战力积分
|
|
"3_total": 1325, // 单体战力总积分
|
|
"4_total": 390, // 所有胡牌数
|
|
"5_total": 0, // 赠送牌数
|
|
"honor_ap": 4174.3, // 历史战功和
|
|
"mvp_ap": 4174.3, // mvp积分和
|
|
"win": 5, // 胜利场数,
|
|
"lost": 0, // 失败场数
|
|
"score": 1281.061909262327, // 当前天体分
|
|
"match_score": 2921.59286389349 // 当前匹配分
|
|
}
|
|
```
|
|
|
|
### 12. 获取邮件附件
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/mail_attachment
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| mail_ids |邮件id列表以","分割 |
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
[ //附件列表
|
|
{
|
|
"id": 0, //道具id
|
|
"count": 0, //道具数量
|
|
"type": 1 //道具类型
|
|
},
|
|
]
|
|
|
|
```
|
|
|
|
### 13. 获取物品列表
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/items
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| type |物品类型, 不传的话就获取背包中所有物品 |
|
|
| items |特定物品id数组 |
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
[ //物品列表
|
|
{
|
|
"id": 0, //道具id
|
|
"count": 0, //道具数量
|
|
"type": 1 //道具类型
|
|
}
|
|
]
|
|
|
|
```
|
|
### 14. 使用物品
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/useitem
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| itemid |物品id |
|
|
| count |使用数量 |
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
[ //物品列表
|
|
{
|
|
"id": 0, //道具id
|
|
"count": 0, //道具数量
|
|
"type": 1 //道具类型
|
|
},
|
|
]
|
|
|
|
```
|
|
|
|
### 15. 解锁英雄卡槽
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/hero/unlockslot/:heroid
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
| heroid | 英雄id |
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
### 16. 购买物品
|
|
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/hero/buyitem
|
|
|
|
| 字段 | 说明 |
|
|
| --------- | ------ |
|
|
| accountid | 帐号id |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| itemid |需要购买的物品id |
|
|
|count|购买数量|
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
{
|
|
"itemid": 1002, //道具id
|
|
"buynum": 1, //道具数量
|
|
"totalnum": 100, //购买成功后总数量
|
|
"priceid": 21231, // 使用代币的id
|
|
"pricenum": 20 // 使用代币数量
|
|
}
|
|
```
|
|
|
|
### 17. 分解卡片
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/card/destory
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | | 说明 |
|
|
| -------- |--| -------------------------------------- |
|
|
|cards |cardid |卡牌id |
|
|
| |count |使用数量 |
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
[ //物品列表
|
|
{
|
|
"id": 0, //道具id
|
|
"count": 0, //道具数量
|
|
},
|
|
]
|
|
|
|
```
|
|
### 18. 刷新随机到的武将
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/randomhero
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
|
|
|
|
```
|
|
|
|
### 19. 拼藏宝图
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/puzzle
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
{
|
|
"id": 0, //道具id
|
|
"count": 0, //道具数量
|
|
"type": 1 //道具类型
|
|
}
|
|
|
|
```
|
|
|
|
### 20. 签到列表
|
|
|
|
> 签到接口不需要手动调用
|
|
|
|
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/sign/list
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
"cfgs": [ //配置列表
|
|
{
|
|
"id": 6,
|
|
"title": "第7天",
|
|
"reward_type": 80013, // 物品id
|
|
"reward_count": 800, // 数量
|
|
"need_type": 1, // 获取奖励物品需要的条件
|
|
"need_count": 7, // 获取奖励物品需要的条件的数量
|
|
"reward_list": [ // 如果奖励物品是多个, 则读取该字段, 如果是单个, 则无此字段
|
|
{
|
|
"reward_type": 80013,
|
|
"reward_count": 2
|
|
},
|
|
{
|
|
"reward_type": 80012,
|
|
"reward_count": 800
|
|
}
|
|
],
|
|
"status": 0 // 领取状态 0: 未开始, 1: 可补签, 2: 可领取, 3: 已领取
|
|
}
|
|
],
|
|
"last": 1611751985, // 最后签到时间
|
|
"betweenDays": 1, // 最后签到时间与当前所隔天数
|
|
"doubleReward": 0, // 是否能双倍领取 0: 可以, 1: 当日已领取单倍, 2: 当日已领取双倍
|
|
"userData": { // 本轮用户领取记录
|
|
"0": 3
|
|
}
|
|
|
|
```
|
|
|
|
### 21. 签到领取物品
|
|
|
|
> 签到接口不需要手动调用
|
|
|
|
|
|
1. Method: POST
|
|
2. URI: /api/:accountid/sign/list
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 |说明 |
|
|
| -------- | -------------------------------------- |
|
|
|type |领取类型 1: 普通领取, 2: 双倍领取, 3: 补签 |
|
|
|id |签到列表中返回的id |
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
[ //物品列表
|
|
{
|
|
"id": 0, //道具id
|
|
"count": 0, //道具数量
|
|
},
|
|
]
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 三. 服务端接口列表
|
|
|
|
### 1. 上传对战记录(服务端调用)
|
|
1. Method: POST
|
|
2. URI:
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
3. Response: JSON
|
|
|
|
```json
|
|
|
|
```
|
|
|
|
### 2. 开始比赛
|
|
1. Method: POST
|
|
2. URI: /svr/:accountid/beginmatch
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| matchid |10_match.xlsx里的id |
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
```js
|
|
|
|
```
|
|
|
|
### 3. 解锁英雄
|
|
1. Method: POST
|
|
2. URI: /svr/:accountid/hero/unlock/:heroid
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
| heroid | 英雄id |
|
|
> POST参数
|
|
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| type | 类型 0: 碎片, 1: 试用 |
|
|
|
|
|
|
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
> 说明: 解锁成功的话, 会返回当前解锁英雄的数据
|
|
|
|
|
|
```js
|
|
[{
|
|
heroid: 1022, // 英雄id
|
|
owned: true, // 是否已拥有
|
|
ban: false, // 是否被禁用
|
|
usetype: 1, // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
|
|
free: false, // 是否免费
|
|
trial: false, // 是否是试用
|
|
trial_expire: 1609919293 // 试用到期时间, 0: 说明是永久
|
|
level: 1, // 等级
|
|
exp: 0, // 当前的经验值
|
|
}]
|
|
```
|
|
|
|
### 4. 获取用户的简要信息
|
|
1. Method: GET
|
|
2. URI: /svr/:accountid/uinfo
|
|
|
|
| 字段 | 说明 |
|
|
| -------- | -------------------------------------- |
|
|
| accountid | 帐号id |
|
|
|
|
3. Response: JSON
|
|
|
|
|
|
|
|
```js
|
|
{
|
|
nickname: '阿三', // 英雄id
|
|
avatar: true, // 头像
|
|
}
|
|
```
|
|
|
|
### 5. 随机获取一个机器人信息
|
|
1. Method: GET
|
|
2. URI: /svr/randomrobot
|
|
|
|
|
|
|
|
|
|
3. Response: JSON
|
|
|
|
|
|
```js
|
|
{
|
|
nickname: '阿三', // 英雄id
|
|
avatar: true, // 头像
|
|
}
|
|
```
|
|
|
|
|
|
|