下载文档

最后更新时间: 2021-02-04 03:12:47 PM

游戏登录

文档说明

本文档为游戏接入登录模块提供指引,游戏登录是玩家在GTarcade平台进入游戏服务器的唯一入口。


前端接入

前端在启动游戏时会进行传参,游戏方可根据传参信息进行登陆操作。登录期间,游戏方需要发起关联游戏的请求,微端会将本地token发给游戏,从而将游戏登录成功或失败的信息告知平台。


关联请求(必接)

主要是为了微端精准的识别每一个游戏,防止用户在平台打开多个游戏时,相互之间的通信不会出现错误

通信方式: 游戏传给微端的参数(TCP) 加密方式: AES 数据格式: JSON 参数内容:

参数名 必选 类型 说明
account Str 账号
g_id Str 游戏 ID
s_id Str 服务器 ID
op_id Str 渠道 ID
msg_id Str 本地通信的消息 ID,用于分辨每次通信接口,写死9


游戏登录(必接)

游戏登录成功后,游戏返回的状态,是为了微端本地记录游戏的状态,方便管理游戏

通信方式: 微端发送给游戏的(TCP) 加密方式: AES 数据格式: JSON 参数内容:

参数名 必选 类型 说明
gta_id Str 每次启动 gta 的唯一 ID
client_id Str 每一个游戏分配的通信 ID
msg_id Str 本地通信的消息 ID,用于分辨每次通信接口,写死1
code Str 登录状态

返回结果

    {        
    	errcode: 1, // 0 表示登录成功,其他表示登录失败,并在 msg中返回登录失败详细原因       
    	msg: "获取成功", // 成功、失败信息        
    	data:[{                
    		"account": "帐号", // 帐号                
    		"g_id": 9, // 游戏 ID                
    		"s_id": "1308440003", // 服务器ID                
    		"op_id": 503, // 渠道 ID                
    		"gta_id": "1212",// 每次启动 gta的唯一 ID                
    		"client_id": "1", // 每一个游戏分配的通信 ID                
    		"msg_id": "1" //本地通信的消息 ID,用于分辨每次通信接口,写死1        
    	}]    
    }

登录进游戏流程如下

img


后端接入

返回示例

由微端客户端请求并透传该返回值给游戏客户端,游戏客户端在登入游戏服之前进行二次校验,校验后以此account登入游戏服

  {
    code: 0, 
    message: "success",
    data: {
        account: "0060015_1603261287587442417267131", //平台用户账号, 游戏方以此账号为准,登入游戏
        game_id: 3000219,//游戏id
        game_name: "MU Legend", //游戏名
        type: "micro",//游戏接入类型
        time: 1608621455,//当前服务器时间戳
        sign: "16f08edd1d703dcd16b52736d5215002",//校验签名,只有game_data字段不参与签名生成,其它返回的参数均参与签名,返回字段数不固定
        game_data: {
            server_id: 2793420001,
            server_url: "xxx.24.112.xxx:1001",
            server_name: "QA测试服"
        } //返回登录游戏基本信息
    }
}

备注

1、sign加密方式:

    public static function genVerify($data, $signKey)
    {
        ksort($data);
        $items = array();
        foreach ($data as $key => $value) {
            $items[] = $key . "=" . $value;
        }
        return md5(join("&", $items) . $signKey);
    }

通过以上加密函数,跟返回结果中的sign进行对比,一致则通过校验,加密$signKey在接入之前单独申请, 每个游戏单独生成。

2、接口信息有效性,建议5min以内,游戏根据time和签名sign自己实现

返回参数说明

参数名 类型 说明
code int 0,成功,其它失败
msg string 返回状态
data array 返回数据