API接入基础文档
文档介绍
每个接口包含的请求参数
参数名称 |
类型 |
是否必需 |
描述 |
appId |
string |
是 |
openId,由虎牙分配 |
sign |
string |
是 |
签名,详见“签名机制” |
timestamp |
int |
是 |
秒级时间戳 |
data |
string |
是 |
接口参数,按键名升序的json格式,包括具体接口的所有请求参数,详见各接口参数说明 |
返回结构
参数名称 |
类型 |
是否必需 |
描述 |
statusCode |
int |
是 |
状态码,详见状态码说明 |
statusMsg |
string |
是 |
返回说明,失败时有失败说明 |
data |
object |
是 |
返回结果,详见各接口返回说明 |
状态码说明
状态码 |
描述 |
200 |
成功 |
401 |
未登陆 |
407 |
签名未通过 |
422 |
参数验证不通过 |
503 |
服务器错误 |
其他 |
待定 |
签名机制
采用MD5加密,待加密的java语言字符串为 "data=" + data + "&key=" + key + "×tamp=" + timestamp,获取字节使用“UTF-8”编码;data结构为json字符串形式的接口参数。key为虎牙平台分配的secretId。若data参数为空,则对java语言字符串 "data=" + "\"\"" + "&key=" + key + "×tamp=" + timestamp 字符串进行MD5加密。
代码示例
PHP
//若 data={"roomId":xxxx},key=123acbde
$data = '{"roomId":xxxx}';
$time = time();
if($data){
$str = $data;
}else{
$str = '""';
}
$sign = md5("data={$str}&key=123acbde×tamp={$time}");
JAVA
//若 data={"roomId":xxxx},key=123acbde
String jsonStr = "\"\"";
String key = "123acbde";
int timestamp = getSecondTimestamp();//获取秒级时间戳
Map<String, Object> paramMap = new TreeMap<String, Object>();
paramMap.put("roomId", xxxx);//data={"roomId":xxxx}
Gson gson = new Gson();
if(!paramMap.isEmpty()){
jsonStr = gson.toJson(paramMap);
}
String sign = getMD5("data=" + jsonStr + "&key=" + key + "×tamp=" + timestamp); //生成小写的md5