接口描述
1.请求参数
能力开放平台的 URL由baseURL和方法路径(/api/xxx)两部分组成,其中baseURL为http://yoyo.toptolink.com 。
能力开放平台的所有服务 URL的请求参数分为系统级参数和业务级参数两部分,系统级参数是所有服务API都拥有的参数,而业务级参数由具体服务 API定义。
系统参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
appKey | String | 是 | appKey开放平台用以确定客户端应用的身份,如10001,10002等。应用键对应一个密钥 secret。要基于服务平台开发应用,必须事先通过申请获取 appKey/secret 后,才能进行应用的开发。物联云平台通过appKey账号来实现统一鉴权。 |
timestamp | Long | 是 | 当前时间戳,10位数字 |
nonce | Int | 是 | 5位随机正整数 |
sign | String | 是 | 签名串,请求参数的签名,服务平台通过它验证请求数据的合法性。 |
2.签名(sign)算法
签名(sign)算法描述如下:
- 所有请求参数按参数名升序排序;
- 按请求参数名及参数值相互连接组成一个字符串:
…; - 将应用密钥分别添加到以上请求参数串的头部和尾部:
<请求参数字符串> ; - 对该字符串进行SHA1 运算,得到一个二进制数组;
- 将该二进制数组转换为十六进制的字符串,该字符串即是这些请求参数对应的签名;
该签名值使用sign系统级参数一起和其它请求参数一起发送给服务开放平台。 假设服务有3个业务级参数,分别为userName 、 age及sex。
这些业务级参数和系统级参数的值如下表所示:
系统级参数名称 | 参数值 | 业务级参数名称 | 参数值 |
---|---|---|---|
appKey | 000001 | userName | tomson |
timestamp | 1465185768 | age | 24 |
nonce | 11886 | sex | 1 |
根据签名算法,首先按字母顺序将所有参数名和参数值拼装成一个字符串:
age24appKey000001nonce11886sex1timestamp1465185768userNametomson假设,appKey为 000001的secret(应用密钥)是"abcdef",则将"abcdef" 分别添加到以上请求参数串的头部和尾部,得到:
abcdefage24appKey000001nonce11886sex1timestamp1465185768userNametomsonabcdef
对以上字符串进行SHA1签名运算,将签名值转换为十六进制的编码串,并转化成大写的字符串,得到: CCF029C20E607D9E7D27D275A25900DAEED05A57
最后,客户端即可使用如下的URL请求串对服务方法发起请求:
baseURL/api/xxx?appKey=000001&…&sign=CCF029C20E607D9E7D27D275A25900DAEED05A57