企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 文档说明 本文档使用前,需线下申请**appId、appSecret、privateKey**以及**publicKey**和接口 提供方的**publicKey(公钥)** 请求参数详见请求示例, 加密通用规则 **加密:通过从线下拿到的私钥进行 RSA 加密** ## 签名生成通用规则 **签名原文组装说明:** 无论是请求还是响应,签名原文组装规则如下: #### 1\. 除 sign 字段外,所有参数按照字段名的 ASCII 字码从小到大排序。排序完成之后,再把所有键值对以“&”字符连接起来(如 key1=value1&key2=value2)。 #### 2\. 如果参数值是一个子 JSON Object,则先将子 JSON 按照字段名的 ASCII 字码从小到大排序,把子 JSON 中的所有键值对以“&”字符连接起来,以此作为该参数的值,再进行拼接。 #### 3\. 所有参数是指实际出现的所有非空参数,即使是没有事先描述的非空字段,也需要参与签名组串。 #### 4\. 签名原始串中,各字段和字段值都采用原始值,不进行 URLEncoder。 #### 5\. 参数名区分大小写。 ## 签名(sign)生成通用步骤: 对上述拼接好的 data\_to\_sign 使用商户的私钥进行 RSA 签名 示例如下: **假设传递的 json 串如下:** ~~~ { "area":"郑州", "email":"1234567@qq.com", "frimname":"张三", "idNumber":"320206198611222555", "name":"赵六", "phone":"17839949869" } ~~~ # 1、拼接的待签原文(data\_to\_sign): `email=[1234567@qq.com](mailto:1234567@qq.com)&frimname =张三&idNumber=320206198611222555&name=赵六&phone=17839949869` ## 2、使用线下拿到的私钥进行签名,sign = sign(data\_to\_sign, 私钥); ## 3、执行成功后,会得到一个 sign,是由接口返回的签名,再用 data\_to\_sign 和服务商的公钥验证签名,保证数据没被篡改。