# 签名工具

## 1. 工具概览
开发者可以通过该工具，填写应用、接口相关信息后，直接在线生成接口调用所需的签名。使用此工具可大幅提高开发对接、问题排障等工作的效率。

## 2. 使用入口
[点击跳转立即使用](https://open.wps.cn/sign-tool/)

## 3. 使用步骤
以下以公网 WPS365 版本作为参考，私网仅签名算法不同，工具使用方式无差异。

### 选择签名方式
开放平台支持 **KSO-1**、**WPS-3（公网）**、**WPS-4（私网）** 等多种不同的签名方式。在接口调用时，请通过 API 文档查看其签名要求。在生成工具页面，你也可以通过 tab 页切换，选择想要使用的签名方式。 

<img
    src="https://cloudcdn.qwps.cn/open/_img/7cd2262c7d.png"
    alt="DEJLM3Y5AAQGC"
/>
<img
    src="https://cloudcdn.qwps.cn/open/_img/95ba5040e8.png"
    alt="DEJLM3Y5AAQGC"
/>
请注意，只有在开启 **【开发者后台-安全设置-接口签名】** 配置项时，应用调用接口时才需要在请求头附加签名信息。

<img
    src="https://cloudcdn.qwps.cn/open/_img/474fecb6d7.png"
    alt="DEJLM3Y5AAQGC"
/>

### 填写签名所需参数

签名主要通过 APP 信息参数与想要调用的接口参数计算而出，你可以通过该工具，在线填写相关参数后生成签名。  
以下以 **KSO-1 签名** 为例，说明相关参数：
<img
    src="https://cloudcdn.qwps.cn/open/_img/8d442c8720.png"
    alt="DEJLM3Y5AAQGC"
/>
- **APPID**：你可通过开发者后台查看想要调用接口的真实 APPID，也可以随意填写，仅做了解签名算法使用  
- **APPKEY**：你可通过开发者后台查看想要调用接口的真实 APPKEY，也可以随意填写，仅做了解签名算法使用 

 <img
    src="https://cloudcdn.qwps.cn/open/_img/d6768f4d42.png"
    alt="DEJLM3Y5AAQGC"
/>
- **请求方法**：接口的 HTTP 请求方式  
- **请求地址**：接口的请求地址，不包含请求域名 `openapi.wps.cn`，如 `/v7/users/{user_id}`

<img
    src="https://cloudcdn.qwps.cn/open/_img/bb4e2deb9e.png"
    alt="DEJLM3Y5AAQGC"
/>  
- **查询参数**：接口的 query 参数，如 `page_size=20&page_token=aabb`，如不含可不填写  

<img
    src="https://cloudcdn.qwps.cn/open/_img/05533fae4b.png"
    alt="DEJLM3Y5AAQGC"
/>
- **Content-Type**：根据接口要求填写，通常为 `application/json` 

<img
    src="https://cloudcdn.qwps.cn/open/_img/a3d341ec75.png"
    alt="DEJLM3Y5AAQGC"
/>
- **KsoDate**：签名时间，请按照 **RFC1123 格式**填写，如 `Wed, 23 Jan 2013 06:43:08 GMT`

### 示例代码
在填写参数的过程中，工具右侧会实时生成示例代码，当前支持 **GO**、**Java**、**Python** 三种开发语言。

<img
    src="https://cloudcdn.qwps.cn/open/_img/29886e0041.png"
    alt="DEJLM3Y5AAQGC"
/>

### 生成签名
填写必填信息后，在工具右侧区域生成经过拼接、计算后的签名相关信息：

- **RequestURI**：请求地址、查询参数拼接后的 RequestURI，计算签名时需以此计算  
- **sha256（RequestBody）**：对请求体进行 sha256 计算后的值，计算签名时需以此计算  
- **signature**：根据输入信息生成的签名值  
- **X-Kso-Authorization**：调用接口时，在请求头中需要附加的信息，由签名算法、APPID、签名值拼接而出  

<img
    src="https://cloudcdn.qwps.cn/open/_img/596572ea49.png"
    alt="DEJLM3Y5AAQGC"
/>