请求结构
**简要描述:**
API支持基于URL发起HTTP/HTTPS GET请求。请求参数需要包含在URL中。本文列举了GET请求中的结构解释,并提供了服务器的服务接入地址
**通信方式:**
以下为Start一条未编码的URL请求示例:
https://www.qg.net/api/
/?<公共参数>
&productId=117
&appid=**
&time=1585280982
&domain=www.qg.net
&sign=*
https指定了请求通信协议。
qg.net指定了ECS的服务接入地址。
api类型根据API类型的不同,分为三大类,分别是operate(业务操作类,如开机,关机),product(产品操作类,如下单,续费,升级等等),business(产品信息类,如产品同步)
action指定了要调用的API
productId指的是产品ID
appid指的是用户在后台API信息申请的appid
time指的是用户请求API时的时间戳
domain指的是用户请求API的服务器域名
sign指的是根据appid,domain,time,以及appkey通过md5加密生成的一串秘钥
md5(appid + domain + time + appkey)
**通信协议:**
支持HTTP或HTTPS协议请求通信。为了获得更高的安全性,推荐您使用HTTPS协议发送请求
**请求参数:**
您需要通过Action参数指定目标操作,例如Action=Start。还需要指定接口的其他参数以及公共请求参数,详情请参见公共请求参数。
**字符编码:**
请求及返回结果都使用UTF-8字符集编码
返回结果
- 返回结果主要有JSON 格式,您可以指定公共请求参数 Format 变更返回结果的格式。更多详情,请参阅 公共参数。为了便于查看和美观,API 文档返回示例均有换行和缩进等处理,实际返回结果无换行和缩进处理。
**正常返回示例:**
- 接口调用成功后会返回接口返回参数和请求 ID,我们称这样的返回为正常返回。HTTP 状态码为 2xx。
JSON示例
```
{
"RequestId":"4C467B38-3910-447D-87BC-AC049166F216",
"Code" : "200"
}
```
**异常返回示例:**
- 接口调用出错后,会返回错误码、错误信息和请求 ID,我们称这样的返回为异常返回。HTTP 状态码为 4xx 或者 5xx。
您可以根据接口错误码,参考 公共错误码 以及 API 错误中心 排查错误。当您无法排查错误时,可以 提交工单 联系我们,并在工单中注明 RequestId。
JSON示例
```
{
"RequestId": "4C467B38-3910-447D-87BC-AC049166F216",
"Code" : "-2"
"Message":"xxxxxxx"
}
```
**备注**
- 更多返回错误代码请看公共API栏目下的[公共错误代码][001]文档描述
[001]: https://www.qg.net/doc/251.html "公共错误代码"
公共错误码
**简要描述:**
- 本文档用于API公共错误码的说明:
Code = 0: 正确返回
Code > 0: 调用OpenAPI时发生错误,需要开发者进行相应的处理
-50 <= Code <= -1: 接口调用不能通过接口代理机校验,需要开发者进行相应的处理
Code <-50: 系统内部错误,请通过企业QQ联系技术支持,调查问题原因并获得解决方案
**返回示例:**
```
{
"RequestId": "wwwdaxxas",
"Code": 0,
"Message" : "返回内容"
}
```
**返回参数说明**
|参数名|类型|说明|
|:----- |:-----|----- |
|200 |integer |正确返回 |
|1 |integer |请求参数错误 |
|2 |integer |用户没有开通API权限 |
|1000 |integer |用户未经授权 |
|1001 |integer |服务器繁忙,通常是后台出错 |
|1002 |integer |用户没有登录状态 |
|1003 |integer |用户被锁定 |
|1004 |integer |用户余额不足 |
|-4 |integer |访问频率受限 |
|-9 |integer |Api不存在 (错误的API名称) |
|-5 |integer |请求的内容不存在 |