搜索结果
返回
最后更新时间: 2021-08-02 05:23:05 PM
本文档为手游接入登录模块提供指引,游戏登录是玩家在GTarcade平台进入游戏服务器的唯一入口。
主要是为了拉起游戏进程,给游戏方传输相关的参数
通信方式: 启动游戏进程微端传给游戏前端的参数 参数内容:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| account | 是 | Str | 账号 |
| g_id | 是 | Str | 游戏 ID |
| s_id | 是 | Str | 服务器 ID |
| op_id | 是 | Str | 渠道 ID |
| port_id | 是 | Str | 端口号 |
| LanguageType | 否 | Str | 语言类型 |
| other | 否 | Str | 如果游戏放需要更多参数,可根据需求补充 |
语言对应字段
zh_CN=简体中文
zh_TW=繁体中文
ar=阿拉伯语
es=西班牙语
en=英语
id=印尼语
it=意大利语
de=德语
pl=波兰语
th=泰语
tr=土耳其语
ru=俄语
pt=葡萄牙语
fr=法语
jp=日语
kr=朝鲜语、韩语
vi=越南语

主要是为了微端精准的识别每一个游戏,防止用户在平台打开多个游戏时,相互之间的通信不会出现错误
通信方式: 游戏传给微端的参数(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", //平台用户账号, 游戏方以此账号为准,登入游戏,跟supersdk登入账号保持一致
game_id: 182,//游戏id
game_name: "legacy of discord", //游戏名
type: "micro",//游戏接入类型
time: 1608621455,//当前服务器时间戳
sign: "16f08edd1d703dcd16b52736d5215002",//校验签名,只有game_data字段不参与签名生成,其它返回的参数均参与签名,返回字段数不固定
game_data: {
ip: "61.174.15.246", //客户端ip
country_code: "CN", //国家
continent_code: "AP", //地区
osdk_ticket: "eyJvc2RrX2dhbWVfaWQiOjQwOCwidXNlcl9pZCI6InZ4eXdhbmdAZ21haWwuY29tIiwibG9naW5fc2RrX25hbWUiOiJtaWNybyIsImFjY291bnRfc3lzdGVtX2lkIjoiMDA2MDAxNSIsIm9zZGtfdXNlcl9pZCI6IjAwNjAwMTVfdnh5d2FuZ0BnbWFpbC5jb20iLCJjaGFubmVsX2lkIjoyNzI4LCJleHRlbmQiOiIiLCJ0aW1lIjoxNjI1NDcyODM1LCJpcCI6IjYxLjE3NC4xNS4yNDYiLCJzaWduIjoiMWJmMDFmNGJiZTE1ZDQ0MzAzOTEzMjhlNTgyOTBkYTcifQ==" //兼容supersdk ticket
}//如有特殊需求可使用透传参数
}
}
数据有效性校验
校验支持2种方式,2选1:
方式1:
校验sign,只有game_data字段不参与签名生成,其它返回的参数均参与签名,返回字段数不固定
加密方式:
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在接入之前单独申请, 每个游戏单独生成, 登录账号采用account字段值;
方式2: 如已接入supersdk,可校验game_data里的osdk_ticket ,生成和解析规则通supersdk,请参考supersdk 文档-osdk_ticket 解析算法: SuperSDK服务端接口文档 私钥由微端侧分配,接入前先找微端开发申请获取私钥,登录账号使用经解密算法校验通过后的得到的osdk_user_id值;
接口实效性: 接口信息有效性,建议5min以内
返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 0,成功,其它失败 |
| msg | string | 返回状态 |
| data | array | 返回数据 |