API调用方法
# API调用方法 #
## 调用流程 ##
根据协议:填充参数 > 生成签名 > 拼装HTTP请求 > 发起HTTP请求> 得到HTTP响应 > 解释json/xml结果
## 调用入口 ##
|环境|服务地址(HTTP)|服务地址(HTTPS)|
|-|-|-|
|正式环境|http://feitang.com/||
|测试环境|http://test.feitang.com/||
## 公共参数 ##
调用任何一个API都必须传入的参数,目前支持的公共参数有:
|参数名称|参数类型|是否必须|参数描述|
|-|-|-|-|
|appId|string|是|分配给应用的AppId|
|timestamp|string|是|时间戳,时区为GMT+8,例如:1619020800。API服务端允许客户端请求最大时间误差为10分钟|
|signMethod|string|是|签名的摘要算法(默认 md5),可选值为:hmac,md5,hmac-sha256|
|platform|string|是|来源平台 tao=淘数据 dou=抖查查 kuai=快手
|sign|string|是|签名|
## 业务参数 ##
API调用除了必须包含公共参数外,如果API本身有业务级的参数也必须传入,每个API的业务级参数请考API文档说明。
## 调用示例 ##
1.设置参数值:
公共参数:
- appId=2605070741
- timestamp=1618971089
- platform=dou
- signMethod=md5
业务参数:
- userNo=215814411854544896
2.按ASCII顺序排序
- appId=2605070741
- platform=dou
- signMethod=md5
- timestamp=1618971089
- userNo=215814411854544896
3.拼接参数名与参数值
```language
appId=2605070741&platform=dou&signMethod=md5×tamp=1618971089&userNo=215814411854544896
```
4.生成签名
假设app的secret为NCDiXZa2k80P7ObWT2Bzbb7Pux93dzEl,则签名结果为:
```language
bin2hex(hash_hmac('md5', 按顺序拼接好的参数名与参数值, NCDiXZa2k80P7ObWT2Bzbb7Pux93dzEl, true))
```
## 数据返回结构 ##
|参数名称|参数类型|是否必须|参数描述|
|-|-|-|-|
|code|string|是|成功响应code=0,失败响应code=-1
|msg|string|是|错误描述信息,错误时返回
|data|object|是|正常的数据信息,根据API的文档返回