自定义接口

修订记录

文档版本 更新日期 更新内容
1.0.0.0105 2022.01.05 初始化

请求参数说明

  • 1 接口参数为“数组”的说明
    file

    需要填写枚举范围数据源获取地址,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计算签名