# 扩展功能
## 文档说明
本文档为游戏接入GTarcade平台的扩展模块提供指引。扩展模块包括:窗口大小设置、游戏通知用户、异常处理接口等,游戏接入方可选择需要的模块接入。
## 重新登录
> 当游戏在某些情况下(修改语言、变更了设置),需要重新刷新游戏
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | :---------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(2) |
**返回结果**
```
{
“code”:”登录状态”,
“gta_id”:”每次启动 gta 的唯一 ID”,//每次启动 gta 的唯一 ID
”client_id”:”同上”,//每一个游戏分配的通信 ID
”msg_id”:”2”//写死2
}
```
## 重新启动游戏
> 关掉游戏,再重新启动游戏
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :--------- | :--- | :--- | :---------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(4) |
| needupdate | 是 | Str | 游戏是否需要更新 |
## 微端奖励
> 设定的一段时间内,在游戏窗口领取微端专属奖励,主要是为了鼓励用户使用微端
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | --------------------------------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID,用于分辨每次通信接口,写死7 |
## 刷新
> 微端刷新当前游戏
**通信方式:** 微端向游戏请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | :---------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(8) |
## 游戏关闭
> 微端关闭当前游戏
**通信方式:** 微端向游戏请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | :---------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(10) |
## 打开新的窗口
> 游戏传输一个url打开微端的webview
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | :---------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(11) |
| ”url” | 是 | Str | 需要打开的链接 |
## 游戏通知用户
> Window右下角通知,有回调
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :------------- | :--- | :--- | :------------------------------------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(12) |
| notify_id | 是 | Str | 按钮点击 id |
| wnd_title | 是 | Str | 窗口标题 |
| wnd_text | 是 | Str | 主体文字 |
| icon_url | 是 | Str | icon 的下载路径 |
| button_text | 是 | Str | 按钮文字 |
| leve | 是 | Str | 推送的重要程度 |
| activewnd_show | 是 | Str | 是否在游戏窗口活跃的时候显示(1 是肯定,0 是否定) |
**返回结果**
```
{
“gta_id”:”每次启动 gta 的唯一 ID”,//每次启动 gta 的唯一 ID
”client_id”:”同上”,//每一个游戏分配的通信 ID
”msg_id”:”12”//写死12
“notify_id”:""//按钮点击 id
}
```
## 窗口大小设置
> 设置游戏的窗口大小
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | :---------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(14) |
| width | 是 | Str | 宽度 |
| height | 是 | Str | 高度 |
## 是否关闭游戏
> 当用户关闭游戏(微端)窗口时的通知,主要作用是当用户关闭游戏时,可弹出一个挽留窗口
**通信方式:** 微端向游戏请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | :--------------------------------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID,用于分辨每次通信接口,写死15 |
## 游戏通知平台关闭游戏
> 与“是否关闭游戏”接口一起使用,当用户选择关闭游戏时的通知
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | :---------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(16) |
| closegame | 是 | Str | 1 关闭/0 不关闭 |
## 异常处理接口(可扩展)
> 为了防止游戏方获取不到token,游戏方可主动多次请求微端平台的token
> 如果游戏版本不对时,通知微端前端更新游戏版本
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :---------- | :--- | :--- | :---------------------- |
| account | 是 | Str | 账 号 |
| g_id | 是 | Str | 游 戏 ID |
| s_id | 是 | Str | 服务器ID |
| op_id | 是 | Str | 渠道 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(17) |
| error_state | 是 | Str | 错误类型 |
**返回结果**
```
{
“gta_id”:”每次启动 gta 的唯一 ID”,//每次启动 gta 的唯一 ID
”client_id”:”同上”,//每一个游戏分配的通信 ID
”msg_id”:”12”//本地通信的消息 ID,用于分辨每次通信接口,写死17
“error_code”:""//错误码
“code”:"token"//token
}
```
语言对应字段
```
error_code==0:已经发送过 token
error_code==1:正在请求 token
error_code==2:token 请求失败
error_code==3:token 发送失败
error_code==4: token 请求成功,但未发送
error_code==5:未知原因
```
## 游客模式通知用户绑定
> 用户如果以游客身份进入游戏,触发游戏绑定用户条件,通知微端进行绑定操作
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | :---------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(18) |
## 游客模式用户是否绑定成功
> 游客模式用户绑定是否成功
**通信方式:** 微端向游戏请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :--------- | :--- | :--- | :--------------------------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(18) |
| bind_state | 是 | Str | 0:成功;其他: 失败。 |
| user_id | 是 | Str | 绑定用户新的user_id 用于校验是否成功绑定 |
## 获取机器相关设备信息
> 游客模式用户绑定是否成功
**通信方式:** 游戏向微端发起请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :---------- | :--- | :--- | :--------------------------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(19) |
| device_type | 是 | Str | 请求设备信息类型 |
| user_id | 是 | Str | 绑定用户新的user_id 用于校验是否成功绑定 |
device_type格式:
可扩展字符串“0000”类型
0001:获取微端唯一id
0010:获取CPU序列号
0100:获取当前网卡序列号
1000:获取当前操作系统
可同时使用,例如同时获取微端唯一id和CPU序列号可以使用:“0011”字符串
#### 返回字段
| 参数名 | 必选 | 类型 | 说明 |
| :--------- | :--- | :--- | :--------------------------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID(19) |
| gta_client | 是 | Str | gta的clientid,唯一设备号 |
| gta_cpu | 是 | Str | cpu序列号 |
| gta_mac | 是 | Str | 网卡id |
| gta_os | 是 | Str | 操作系统 |
| user_id | 是 | Str | 绑定用户新的user_id 用于校验是否成功绑定 |