- [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"
}
~~~