# 开放平台用户手册 ## 接入指南 ### 注册用户 * 打开富士行云的开放平台,点击“注册”按钮,填写相关信息,提交注册申请。 * 注册成功后可以登录富士行云开放平台。用于后续的应用开通,接口调用等。 ### 创建应用 #### 创建应用 * 用户登录后,可以创建应用,创建应用需要填写应用名称、应用描述、应用类型、应用回调地址等。 * 创建成功后,等待审批通过。 #### 绑定项目 * 应用审批通过,需要工作人员协助绑定项目。 #### 开通接口 * 绑定项目成功后,可以开通接口。开通哪些接口也是需要工作人员协助开通的。 ### 申请token * 应用开通接口后,可以申请token。申请token需要填写appId、appSecret、timestamp、sign等信息。 * 具体的申请token接口调用方法,请参考接口规范和接口列表 ### 接口调用 * 调用接口在请求头中需要加入token。 * 需要对接口的参数进行签名。签名需要用到应用中的signatureKey。 ## 接口规范 ### 字符集和编码 * 接口请求和响应的字符集和编码统一为UTF-8。 * 接口请求和响应的消息体采用JSON格式。 ### 通讯规范 * 接口采用https协议进行通讯。 * 所有的开放接口都采用post请求。 ### 请求参数 * 所有的请求都需要携带token。token在请求头中加入Authorization字段。 * 所有的请求消息体都在http body中。 * 所有的上行接口请求都需要携带sign字段,用户验证签名。 * 请求中都需要携带timestamp字段,用于验证请求是否超时。 * 请求体示例: ```json { "name": "fujica", "type": 1, "timestamp": 1610123456789, "sign": "12djuhd123fsdas83" } ``` ### 响应参数 * 所有的响应都携带code、msg、data字段。 * code为响应状态码,msg为响应消息,data为响应数据。 * code为1000000表示请求成功,其他表示请求失败。 * 响应体示例: ```json { "code": 1000000, "msg": "操作成功", "data": { "name": "fujica", "type": 1 } } ``` ### 签名算法 * 接口的请求参数,需要加签的字段,会在接口参数中说明。 * 对所有需要加签的参数,按照ASCII码排序,然后拼接成字符串。 * 用应用的signatureKey进行AES加密。 * 加密后的字符串,作为sign参数的值。 * 签名算法示例: * 请求参数: ```json { "name": "fujica", "type": 1, "timestamp": 1610123456789, "sign": "12djuhd123fsdas83" } ``` * 加密字段:name type * 加密后的字符串:fujica1 * 加密后的字符串进行AES加密,加密密钥为应用的signatureKey。假设signatureKey为123456 * 加密结果: ### SDK下载与使用 * 富士行云开放平台后续将提供SDK下载,用户可以根据自己的开发语言,下载对应的SDK。 ### 错误码 * 富士行云开放平台后续会提供错误码,用于接口调用失败时,提供错误原因。 * 错误码表格: | 错误码 | 错误原因 | 解决方案 | | --- |------|-----| | 1000000 | 操作成功 | | | 1000001 | 系统异常 | | | 1000002 | 参数异常 | | | 1000003 | 签名异常 | | ## 接口列表 ### 上行接口 #### 获取token * 接口地址:/open/oauth/token * 请求方式:POST * 请求参数:JSON格式 ```json { "appId": "123456", "appSecret": "123456", "timestamp": 1610123456789, "sign": "123456" } ``` * 响应参数:JSON格式 * 响应示例: ```json { "code": 1000000, "msg": "操作成功", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNjEwMTIzNDU2LCJleHAiOjE2MTA1MjM0NTYsInVzZXJuYW1lIjoiYWRtaW4iLCJpYXQiOjE2MTA1MjM0NTYsImV4cCI6MTYxMDUyMzQ1NiwiaWF0IjoxNjEwMTIzNDU2LCJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" } } ``` ### 下行接口 下行接口需要配置了回调地址的应用才能调用。另外下行接口不加签。