多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 接口规范 ## 接口地址及示例 1. 接口地址一般形式如下: GET > http://host.domain/path/method?timestamp=1468997543&signature=2d82262741090a52af52782e35c3e75646b46c4a&parameter1=value1&....... POST > URL: http://host.domain/path/method > JSON: { "userid":"ae48", "passwordenc":"bXV5dXRv", "ip":"1.1.1.1", "timestamp":"1468997543, "signature":"2d82262741090a52af52782e35c3e75646b46c4a" } 2. 开发测试环境主机域名为: > http://opensdk.ilifeceo.cn/hotel/ * * * * * ## 接口公共参数 >1. timestamp, 整数,为调用接口时的系统时间戳,要求调用接口的客户端设备时钟与接口服务器的时钟一致,误差不超过2秒。建议使用时钟同步机制,具体设置方法请自行百度; >2. signature, 字符串,具体生成方法参看下文[接口安全机制] * * * * * ## 接口安全机制 >1. 接口要求支持HTTP BasicAuthorization(基本认证),即所有接口请求必须设置相关的Header。Header内容与格式如下:key=Authorization, value=Basic base64(username:password)。[Basic与base64加密串中间有空格] >2. 部分接口由于数据的安全性要求,启用签名机制。签名规则及步骤如下: 参与签名的字段包括公共字段timestamp, 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式拼接成字符串string1。[这里需要注意的是所有参数名与参数值均需转化为小写字符。字段名和字段值根据"RFC 3986"编码,空格会被百分号编码(%20)]然后对string1附加密钥作sha1加密,即signature=sha1(string1+'&key='+{authkey})。 >3. 示例: 参数Json如: { "userid":"ae48", "passwordenc":"bXV5dXRv", "ip":"1.1.1.1", } >步骤一:对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。结果如下: ip=1.1.1.1&passwordenc=bxv5dxrv&timestamp=1468997543&userid=ae48 >步骤二:对string1进行sha1签名(示例附加密钥&key=n6pvxqesvqh8nagidcbjj-fpgl30qywi),得到signature: 45a018de86606737c23a4b913852287e5acb3870 >步骤三:最后提交的实际参数如: * GET > http://host.domain/path/method?userid=ae48&passwordenc=bxv5dxrv&ip=1.1.1.1&timestamp=1468997543&signature=45a018de86606737c23a4b913852287e5acb3870 * POST >{ "userid":"ae48", "passwordenc":"bXV5dXRv", "ip":"1.1.1.1", "timestamp":1468997543, "signature":"45a018de86606737c23a4b913852287e5acb3870" }