[TOC]
简要描述
前置条件
参数 |
备注 |
game_id |
游戏ID |
api_key |
API MD5加密秘钥 |
encrypt_key |
API AES加密秘钥 |
协议(PROTOCOL)
接入地址(ENDPOINT)
模块(MODULE)
请求方式
请求加密方式
返回加密方式
全局参数
参数名 |
必选 |
类型 |
说明 |
encrypt_data |
是 |
string |
AES加密提交的JSON数据 |
AES加密全局参数
参数名 |
必选 |
类型 |
说明 |
time |
是 |
int |
UNIX时间戳,单位:秒 |
nonce |
是 |
string |
随机字符串 |
sign |
是 |
string |
MD5加密后数据 |
game_id |
是 |
int |
游戏ID |
agent_id |
否 |
int |
渠道ID,默认为0 |
site_id |
否 |
int |
广告位ID,默认为0 |
device_id |
是 |
string |
设备码,安卓为IMEI,iOS为idfa |
android_id |
否 |
string |
安卓ID,安卓必填 |
oaid |
否 |
string |
安卓oaid |
idfv |
否 |
string |
iOS idfv,iOS必填 |
device_brand |
是 |
string |
设备品牌 |
system_version |
是 |
string |
系统版本号 |
model |
是 |
string |
机型 |
network |
是 |
string |
网络类型. 4G wifi unknown |
app_version |
是 |
string |
APP版本号 |
sdk_version |
是 |
string |
SDK版本号 |
package_name |
是 |
string |
包名 |
platform |
是 |
string |
平台。ios、andriod |
user_id |
否 |
int |
登陆后必填,默认为0 |
token |
否 |
string |
登录或者注册后token,用户相关必填 |
返回示例
{
"encrypt_data": "xxxxxxx",
"request_id":"sfdsfdsfdfdsf"
}
encrypt_data解密后返回示例
{
"code": 1,
"message":"ok",
"info": {
},
"lists":[
{
"test":"test"
}
]
}
encrypt_data解密后返回参数说明
参数名 |
类型 |
说明 |
code |
int |
返回码, 返回码 |
message |
string |
返回提示, 返回码 |
info |
object |
object,业务不同返回不同 |
lists |
object[] |
object数组,业务不同返回不同 |
request_id |
string |
请求唯一ID |
登录和注册info加密统一返回
参数名 |
类型 |
说明 |
user_id |
int |
用户ID |
avatar |
string |
用户头像 |
sex |
int |
用户性别。0:未知,1:男,2:女 |
birthday |
string |
出身日期 |
adult |
int |
0:未知,1:未成年,2:已成年 |
token |
string |
访问token |
bind_phone |
int |
是否绑定手机。0:未绑定,1:已经绑定 |
can_upgrade |
int |
账号是否可升级。0:不可升级,1:可以升级 |
加密附录
MD5加密
- 所有非空字段,按照键值ASCII码升序排列,以key=value形式,用&拼接,最后用api_key加拼接在最后生成加密字符串。
$params = [
'time' => time(),
'nonce' => 'xxxxxx',
'game_id' => 'xxxxx',
];
ksort($params);
$signData = [];
foreach ($params as $key => $value){
if(!empty($value)){
array_push($signData, sprintf('%s=%s', $key, $value));
}
}
$signStr = implode('&', $signData) . {api_key};
$params['sign'] = md5($signStr);
AES加解密