- [API说明](##1)
- [授权认证](##2)
- [IP白名单](##3)
<a name = "#1"></a>
## API说明
1. 授权认证,调用接口需要将 Appid,CurTime, Param 和 CheckSum 信息放在 HTTP 请求头中;
2. 接口统一为 UTF-8 编码;
3. 接口支持 http 和 https;
4. 请求方式为POST。
<a name = "#2"></a>
## 授权认证
在调用所有业务接口时,都需要在<span style="color:red"> Http Request Header </span>中配置以下参数用于授权认证:
|参数|格式|说明|必须|
|:-------|:---------|:--------|:---------|
|X-Appid|string|讯飞开放平台注册申请应用的应用ID(appid)|是|
|X-CurTime|string|当前UTC时间戳,从1970年1月1日0点0 分0 秒开始到现在的秒数|是|
|X-Param|string|相关参数JSON串经Base64编码后的字符串,见各接口详细说明|是|
|X-CheckSum|string|令牌,计算方法:MD5(apiKey + curTime + param),三个值拼接的字符串,进行MD5哈希计算(32位小写),其中apiKey由讯飞提供,调用方管理。 |是|
*注:*
* apiKey:接口密钥,由讯飞开放平台提供,调用方注意保管,如泄露,可联系讯飞技术人员重置;
* checkSum 有效期:出于安全性考虑,每个 checkSum 的有效期为 5 分钟(用 curTime 计算),同时 curTime 要与标准时间同步,否则,时间相差太大,服务端会直接认为 curTime 无效;
* BASE64 编码采用 MIME 格式,字符包括大小写字母各26个,加上10个数字,和加号 + ,斜杠 / ,一共64个字符。
*checkSum *生成示例:
~~~
String apiKey="abcd1234";
String curTime="1502607694";
String param="eyAiYXVmIjogImF1ZGlvL0wxNjtyYXR...";
String checkSum=MD5(apiKey+curTime+param);
~~~
<a name = "#3"></a>
## IP白名单
在调用所有业务接口时,授权认证通过后,检查调用方 ip 是否在讯飞开放平台配置的 ip白名单 中。存在通过,否则拒绝提供服务。
*注:*
* IP白名单 可联系讯飞技术人员设置;
* 拒绝提供服务返回值:
~~~
{
"code":"10105",
"desc":"illegal access|illegal client_ip",
"data":"",
"sid":"xxxxxx"
}
~~~