修订记录
文档版本 | 更新日期 | 更新内容 |
---|---|---|
1.0.0.0105 | 2022.01.05 | 初始化 |
请求参数说明
-
1 接口参数为“数组”的说明
需要填写枚举范围数据源获取地址,HTTP 请求方式为GET,返回的参数为固定的id和name,表示id和名称。
参数说明:
参数名 | 类型 | 长度 | 说明 | 是否必传 |
---|---|---|---|---|
ts | int | 11 | 时间戳 | 是 |
sig | string | 32 | 签名 | 是 |
获取枚举范围请求示例:
http://{HOST}:{PORT}/serverList?ts=1535198961&sig=0bebc8ef5313b9f9b73194e138a6ee50
响应示例:
{
"status":1,
"msg":"success",
"data":[
{
"id":"1",
"name":"区服1"
},
{
"id":"2",
"name":"区服2"
}
]
}
- 2 "per_page"和"page"预置用于支持查询结果的分页,可用可不用
- 3 "ts"和"sig"字段会在请求gm接口时带上,用于签名校验。gm接口要有校验签名的逻辑,确保正确的请求,签名规则见“签名规则”
返回参数说明
- 1 接口要统一返回以下固定格式,当data有数据时,返回什么字段就会在页面展示对应的字段
参数名 | 类型 | 长度 | 说明 | 是否必传 |
---|---|---|---|---|
status | int | 1 | 返回状态码 | 是 |
msg | string | 32 | 返回信息说明 | 是 |
data | array | 32 | 返回数据 | 是,可为空 |
示例:
{
"status":1,
"msg":"success",
"data":[
]
}
- 2 当不分页,返回全部数据时
示例:
{
"status":1,
"msg":"success",
"data":[
{
"xx":"1",
"yy":"区服1"
},
{
"xx":"2",
"yy":"区服2"
}
]
}
- 3 当返回分页结果,data内要有total参数,表示一共几页,内容放在content参数
示例:
{"status":1,"msg":"success","data": {
"total": 2,
"content": [{
"xx": "fdf34",
"yy": "aaa1"
},
{
"xx": "fefr",
"yy": "ccc"
}
]
}}
签名规则
秘钥
见 对接中心-SDK列表-App Key
MD5步骤说明
1 待签名参数 :除去 sig ,其他参数(包含空值的参数)都要参加验签。
2 对所有待签名参数按照字段名的ASCII码从小到大排序。
3 使用键值对的格式(key1=value1&key2=value2)拼接成字符串;进行urlencode编码(PHP使用rawurlencode),获得$source字符串。
4 将步骤3的$source字符与秘钥通过&符号进行拼接:$source&$key。
5 将步骤4的字符串进行md5哈希签名得到最终sign值。
签名样例(PHP版本):
ksort($data);//1 按照健值从小到大排序
$query_string = array();//2 键值对按照'='拼接,排除sign参数
foreach ($data as $key => $val) {
if ($key == 'sig') continue;
array_push($query_string, $key . '=' . $val);
}
$query_string = join('&', $query_string);//3 将上述数组按照&拼接
$source = rawurlencode($query_string);//4 将拼接结果用rawurlencode编码
$sign= md5($source.'&'. $app_secret);//md5 hash计算签名