监控后台封禁API说明
<p>[TOC]</p>
<h3>1、封禁API</h3>
<h5>1.1 请求地址</h5>
<p><a href="http://chat.llewan.com/v1/ChatLimit/set">http://chat.llewan.com/v1/ChatLimit/set</a></p>
<h5>1.2 请求方式</h5>
<ul>
<li>POST application/x-www-form-urlencoded</li>
</ul>
<h5>1.3 请求参数</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必含</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">game_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>乐玩平台子游戏标识(马甲包),如xxx-weixin</td>
</tr>
<tr>
<td style="text-align: left;">user_id </td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>角色ID</td>
</tr>
<tr>
<td style="text-align: left;">server_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>区服ID</td>
</tr>
<tr>
<td style="text-align: left;">user_name</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>角色昵称</td>
</tr>
<tr>
<td style="text-align: left;">player_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>用户ID(子游戏维度下用户的唯一标识)</td>
</tr>
<tr>
<td style="text-align: left;">type</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">integer</td>
<td>操作类型,1:禁言,2:封号(按账号维度封禁,同时让角色下线),3:解除禁言,4:解除封号</td>
</tr>
<tr>
<td style="text-align: left;">account_type</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">integer</td>
<td>账号维度,1:角色,2:账号,不传默认为1(角色)</td>
</tr>
<tr>
<td style="text-align: left;">limit_time</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">integer</td>
<td>封禁时间,单位:min</td>
</tr>
<tr>
<td style="text-align: left;">timestamp</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">integer</td>
<td>发起请求时间戳,单位:s</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>签名,签名方式见下说明</td>
</tr>
</tbody>
</table>
<h5>响应结果说明</h5>
<ul>
<li><strong>响应结果示例</strong></li>
</ul>
<pre><code>// 成功
{"code":1,"msg":"success","d":[]}
// 异常
{"code":-1,"msg":"check sign fail","d":[]}
</code></pre>
<h3>2、查询角色信息</h3>
<h5>2.1 请求地址</h5>
<p><a href="http://chat.llewan.com/v1/ChatLimit/getRoleInfo">http://chat.llewan.com/v1/ChatLimit/getRoleInfo</a></p>
<h5>2.2 请求方式</h5>
<ul>
<li>GET </li>
</ul>
<h5>2.3 请求参数</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必含</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">game_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>乐玩平台子游戏标识(马甲包),如xxx-weixn</td>
</tr>
<tr>
<td style="text-align: left;">user_id </td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>角色ID,多个角色用英文逗号【,】分隔,最多支持一次查询100个角色</td>
</tr>
<tr>
<td style="text-align: left;">timestamp</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">integer</td>
<td>发起请求时间戳,单位:s</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>签名,签名方式见下说明</td>
</tr>
</tbody>
</table>
<h5>2.4 响应结果说明</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必含</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">code</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">integer</td>
<td>状态码:1成功,-1异常</td>
</tr>
<tr>
<td style="text-align: left;">msg </td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>响应结果说明</td>
</tr>
<tr>
<td style="text-align: left;">d</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">object</td>
<td>响应结果数据</td>
</tr>
<tr>
<td style="text-align: left;">d.roles</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">object</td>
<td>角色信息列表,响应成功时返回</td>
</tr>
<tr>
<td style="text-align: left;">d.roles.player_id</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>用户ID(子游戏维度下用户的唯一标识),成功时返回</td>
</tr>
<tr>
<td style="text-align: left;">d.roles.role_id</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>角色ID,成功时返回</td>
</tr>
<tr>
<td style="text-align: left;">d.roles.server_id</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>服务器ID,成功时返回</td>
</tr>
<tr>
<td style="text-align: left;">d.roles.server_name</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>服务器名称,成功时返回</td>
</tr>
<tr>
<td style="text-align: left;">d.roles.last_login_time</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">integer</td>
<td>最后登录时间,时间戳,单位:s</td>
</tr>
<tr>
<td style="text-align: left;">d.roles.create_time</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">integer</td>
<td>角色注册时间,时间戳,单位:s</td>
</tr>
</tbody>
</table>
<ul>
<li><strong>响应结果示例</strong></li>
</ul>
<pre><code>// 成功
{"code":1,"msg":"success","d":{"roles":{"492583356731710":{"player_id":8,"server_id":"560001","server_name":"","role_id":"492583356731710","role_name":"S1.戒躁┗汉正","last_login_time":0,"create_time":1586200000},"492583356731711":{"player_id":9,"server_id":"560001","server_name":"","role_id":"492583356731711","role_name":"S1.北觅№文蓓","last_login_time":0,"create_time":1586200000}}}}
// 异常
{"code":-1,"msg":"check sign fail","d":[]}
</code></pre>
<h4>- 签名方式说明</h4>
<ul>
<li><strong>参与签名字段说明</strong>
以上请求参数除sign外都需要参与签名</li>
<li><strong>签名规则</strong>
1、签名串规则:所有参与签名的参数,按参数名(key)字典序升序排序,以key=value格式,并用【&】连接组成签名串,最后连接服务端签名秘钥
2、对签名串进行MD5加密得到签名(32位小写字符串),PHP示例如下:</li>
</ul>
<pre><code><?php
function getSign($params, $secret)
{
//剔除sign字段
if (isset($params['sign'])) unset($params['sign']);
//对数组按key升序排序
ksort($params);
//拼接签名串
$formatStr = '';
foreach ($params as $key => $v) {
$formatStr .= $key . '=' . $v . '&';
}
return md5(substr($formatStr, 0, -1) . $secret);
}
$secret = 'abc'; //服务端签名秘钥
$params = [
'game_id' => 'aaa-weixin',
'role_id' => '1520001',
'server_id' => '10001',
'user_name' => '昵称',
...
]; //请求参数
$sign = getSign($params, $secret); //签名
</code></pre>