开发者可通过 **签名** 功能手动进行加签操作。生成 **签名(sign)**后,开发者可与自己代码中请求生成的信息进行对比,了解数据是否正确。
**注意:**暂仅支持新版 OpenAPI 网关接口签名,不支持老版 MAPI 网关接口签名。
# 加签原理
1. 获取所有支付宝开放平台的 post 内容,不包括字节类型参数,如文件、字节流,剔除 sign 字段,剔除值为空的参数;
2. 按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,以此类推;
3. 将排序后的参数与其对应值,组合成 **参数=参数值** 的格式,并且把这些参数用 `&` 字符连接起来,此时生成的字符串为待签名字符串。
# 操作指引
## 请求参数
打开 **密钥工具**,左侧导航栏选择 **签名**,输入传入开放平台的 post 内容(不包括字节类型参数,如文件、字节流,剔除 sign 字段,剔除值为空的参数)。
**注意:**若使用 **公钥证书** 模式签名,在拼接待签名字符串时需添加解析出来的 [应用公钥证书 SN(app_cert_sn)](https://opendocs.alipay.com/support/01raux)和 [支付宝根证书 SN(alipay_root_cert_sn)](https://opendocs.alipay.com/support/01rauy)。
### 示例
```
timestamp=2019-01-01 08:09:33&method=alipay.trade.create
&app_id=20135234674&sign_type=RSA2&biz_content={"total_amount":"10.08", "buyer_id":"2088123456781234", "discount_amount":""}
```
### 参数说明
| **配置参数** | **描述** | **示例值** |
| --- | --- | --- |
| appid | APPID 创建应用后生成。 | 2021*********807 |
| method | 接口名称 | alipay.trade.create |
| charset | 请求和签名使用的字符编码格式,支持 GBK 和 UTF-8。 | 实际开发编码配置。 |
| format | 参数返回格式,只支持 JSON。 | JSON |
| sign_type | 商家生成签名字符串所使用的签名算法类型,目前支持 RSA2。 | RSA2 |
| biz_content | 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档。 | - |
## 应用私钥
开发者需填入应用私钥,[查看密钥/证书](https://opendocs.alipay.com/common/057aqe)。
**注意:**必须与应用 ID 中上传的应用公钥是匹配的,详情可查看 [如何检验 RSA2 密钥是否匹配](https://opendocs.alipay.com/support/01rauv)、[如何检验密钥证书是否匹配](https://opendocs.alipay.com/support/01rauz)。
## 字符集
RSA2 签名支持字符集 UTF-8 和 GBK。
## 签名方式
新建应用请务必使用支持 RSA2 即 2048 位。(目前已使用 RSA 密钥长度即 1024 位密钥长度的应用仍然可以正常调用接口,详情可查看 [开放平台接口签名方式升级公告](https://open.alipay.com/platform/announcement.htm?id=55))。
## 开始签名
1. 输入请求参数及应用私钥后点击按钮 **开始签名**,输出 **待签名内容**(经过格式处理后,最终要签名的内容)及 **签名**(sign)。
