7.6 KiB

卡牌游戏接口说明

一. 说明

所有接口均需上传sessionid

通用返回JSON结构, 接口Response的数据结构说明只包含data部分

{
    "errcode": 0, //0:成功 2: 缺少必要参数(accountid, sessionid) 4: 帐号被封, 5: 帐号未找到 100: 所有未定义的错误
    "errmsg": "", //错误描述
    "data": {}, 	// 数据
}

二. 客户端接口列表

1. 玩家资料

  1. Method: POST
  2. URI: /api/:accountid/uinfo
字段 说明
accountid 帐号id
  1. Response: JSON
{
    accountid: '',
    cards: [number],
    heros: [{
        heroid: number,
        owned: true,                // 是否已拥有
        usetype: 1,             // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
        level: number,              // 等级
        exp: number,            // 当前的经验值
        free: false,              // 是否免费
        free_expire: 1609919293,  // 免费到期时间, 0: 说明是永久免费 
    }],
    moneys: {
        'coin': 0,      // 金币
        'diamond': 0,   // 钻石
        'hero_shard': 0, // 通用英雄碎片
        'hero_exp': 0,  // 通用英雄经验
        'hero_shard_heroid': 0, // 英雄专用碎片
        'hero_exp_heroid': 0, // 英雄专用经验
        'card_scroll': 0, //抽卡卷轴
    },
    normal_stat: [0, 0, 0, 0] //匹配: 胜利场数, 失败场数, 平局场数, 掉线场数
    season_stat: [0, 0, 0, 0] // 当前赛季状态
    season_rank: 1  // 当前赛季排名
}

2. 可用卡牌信息

  1. Method: POST
  2. URI: /api/:accountid/cards
字段 说明
accountid 帐号id
  1. Response: JSON

说明: 匹配模式可以用的卡: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 2) 赛季排位模式可以用的卡: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 1)

[{
    cardid: 1022,					// 卡牌id
    owned: true,				// 是否已拥有
    ban: false,					// 是否被禁用
    usetype: 1,    			// 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
    free: false,			  // 是否免费
    free_expire: 1609919293  // 免费到期时间   
}]

3. 可用英雄列表

这个接口用户信息中的英雄列表最大的不同, 这里返回所有可用英雄, 用户信息中只返回永久免费和玩家拥有的英雄

  1. Method: POST
  2. URI: /api/:accountid/heros
字段 说明
accountid 帐号id
  1. Response: JSON

说明: 匹配模式可以用的英雄: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 2) 赛季排位模式可以用的英雄: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 1)

[{
    heroid: 1022,				// 英雄id
    owned: true,				// 是否已拥有
    ban: false,					// 是否被禁用
    usetype: 1,    			// 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
    free: false,			  // 是否免费
    free_expire: 1609919293  // 免费到期时间, 0: 说明是永久免费 
    level: 1,						// 等级
  	exp: 0,							// 当前的经验值
}]

4. 自定义卡组列表

  1. Method: POST
  2. URI: /api/:accountid/card_group/:heroid
字段 说明
accountid 帐号id
heroid 英雄id, 不传的话, 获取该玩家所有可用卡组
  1. Response: JSON
[{
    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参数

字段 说明
cards [cardid] 卡牌id的数组
  1. Response: JSON

根据errcode判断成功or失败

6. 删除卡组

  1. Method: POST
  2. URI: /api/:accountid/card_group/delete/:gid
字段 说明
accountid 帐号id
gid 卡组id, 不能为空
  1. Response: JSON

根据errcode判断成功or失败

7. 解锁英雄

  1. Method: POST
  2. URI: /api/:accountid/hero/unlock/:heroid
字段 说明
accountid 帐号id
heroid 英雄id

POST参数

字段 说明
type 类型 0: 碎片, 1: 代币购买 2: 试用
moneyid 代币的item id
  1. Response: JSON

根据errcode判断成功or失败

8. 抽卡

  1. Method: POST
  2. URI: /api/:accountid/card/draw/:count
字段 说明
accountid 帐号id
count 抽卡数量
  1. Response: JSON
[{
    cardid: 1022,		// 卡牌id
    isnew: true,		// 是否是新获得的卡
    expdust: '',		// 分解可获得的英雄经验的item id
    dustcount: 100	// 可获得数量 
}]

9. 对战记录列表

  1. Method: POST
  2. URI: /api/:accountid/records
字段 说明
accountid 帐号id
  1. Response: JSON

10. 升级英雄

  1. Method: POST
  2. URI: /api/:accountid/hero/update/:heroid
字段 说明
accountid 帐号id
heroid 英雄id

POST参数

字段 说明
moneyid 代币的item id
count 试用数量
  1. Response: JSON
{
    exp: 1022,		// 当前经验值
    exp_POST: 100, // 本次获得的经验
    level: 1		  // 当前等级
}

三. 服务端接口列表

1. 上传对战记录(服务端调用)

  1. Method: POST
  2. URI:
字段 说明
accountid 帐号id
  1. Response: JSON