搜索结果
返回
最后更新时间: 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
}]
}
登录进游戏流程如下

返回示例
由微端客户端请求并透传该返回值给游戏客户端,游戏客户端在登入游戏服之前进行二次校验,校验后以此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 | 返回数据 |