[TOC]
1、禁言API说明
需要您提供一个禁言的API接口,以便系统在识别到违规信息之后,调取该API封禁用户。
比如A用户发送拉人广告,系统在判断后,将会调取该API,并发送回用户的相关信息,以及禁言时长(分钟),以此对该用户做出处罚。
- 禁言时长覆盖的问题:
针对大R、大等级用户,系统引入了阶梯禁言机制防止误封,比如1、5、15、60、9999、...分钟。但是随着用户的恶意度增加,可能会在上一次禁言条件未失效的情况下,发送新的禁言时间,此时,您应该是覆盖之前的禁言时长,而不是累加或拒绝。
1.1 我们会按您的API发送如下请求:
请求方式
- POST application/x-www-form-urlencoded
请求参数
参数名 |
必含 |
类型 |
说明 |
game |
是 |
string |
乐玩平台游戏标识,如xxx-weixn |
role_id |
是 |
string |
角色ID |
server_id |
是 |
string |
区服ID |
user_name |
否 |
string |
角色昵称 |
uid |
是 |
string |
乐玩平台用户唯一标识 |
type |
是 |
integer |
操作类型,1:禁言,2:封号(按角色维度封禁,同时让角色下线),3:解除禁言,4:解除封号 |
limit_time |
否 |
integer |
封禁时间,单位:min,0表示永久禁言 |
timestamp |
是 |
integer |
发起请求时间戳,单位:s |
sign |
是 |
string |
签名,签名方式见下说明 |
响应结果说明
接收到封禁请求后,您需要响应以下json,code为1表示成功,非1值表示失败,msg为自定义响应说明
// 成功
{"code":1,"msg":"success"}
// 异常
{"code":-1,"msg":"check sign fail"}
2、H5聊天数据上报
2.1 请求地址
http://graph.llewan.com/v1/MsgCheck/h5ContentSave
2.2 请求方式
- POST application/x-www-form-urlencoded
2.3 请求参数
参数名 |
必含 |
类型 |
说明 |
game |
是 |
string |
乐玩平台子游戏标识(马甲包),如xxx-weixn |
uid |
是 |
string |
乐玩平台账号id |
roleId |
是 |
string |
角色ID |
roleLevel |
是 |
integer |
角色等级 |
content |
是 |
string |
聊天内容 |
channel |
是 |
integer |
参考值,1:世界, 2:国家, 3:团队, 4:公会, 5:队伍, 6:附近, 7:战场, 8:私聊 |
timestamp |
是 |
integer |
发起请求时间戳,单位:s |
sign |
是 |
string |
签名,签名方式见下说明 |
2.4 响应结果说明
参数名 |
必含 |
类型 |
说明 |
code |
是 |
integer |
状态码:1成功,-1异常 |
msg |
是 |
string |
响应结果说明 |
d |
是 |
object |
响应结果数据 |
// 成功
{"code":1,"msg":"success","d":[]}
// 异常
{"code":-1,"msg":"check sign fail","d":[]}
签名方式说明
- 参与签名字段说明
以上请求参数除sign外都需要参与签名
- 签名规则
1、签名串规则:所有参与签名的参数,按参数名(key)字典序升序排序,以key=value格式,并用【&】连接组成签名串,最后连接服务端签名秘钥
2、对签名串进行MD5加密得到签名(32位小写字符串),PHP示例如下:
<?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' => 'aaa-weixin',
'role_id' => '1520001',
'server_id' => '10001',
'user_name' => '昵称',
...
]; //请求参数
$sign = getSign($params, $secret); //签名