接入说明
SDK RSA版本说明
签名算法
开放平台支持RSA加密方式,对参数和响应体进行双向加密双向验证签名,这种方式对数据来说更加安全。使用这种加密方式请求开放平台您需要先了解以下内容。
公私钥作用
- 甲方为 第三方业务调用方
- 乙方为 ChainUp服务提供方
公私钥对作用: 甲方在后台创建应用时,需提前生成一对公私钥,其中公钥(rsa_third_pub)提供给乙方,私钥自己保管,私钥请勿透露给任何人。甲方在请求乙方提供的服务时,通过乙方的公钥来加密请求参数,并用甲方的私钥对MD5后的数据原文进行签名,乙方接受到请求时,通过乙方的私钥解密数据,并用甲方的公钥对MD5后的数据原文进行验签.
账号准备
开发者需要准备如下信息:
- 生成一对公私钥,将公钥通过后台创建应用提交到平台
- 第三方应用服务器IP (可选)
开发者需要保存的信息:
- 提交到平台公钥对应的私钥: rsa_third_pri ;
- 创建应用的唯一标识: app_id;
- 应用对应平台公钥: rsa_saas_pub;
RSA公私钥生成规则:
- 密码长度: 2048
- 密钥格式: PKCS#8
RSA公私钥生成地址(可选满足生成规则即可): RSA工具网站
接口规则
| 传输方式 | https |
|---|---|
| 签名字段 | 除了sign字段,其他所有必填项都需要参与签名 |
| 响应状态码 | 0表示处理成功,非 0 表示请求错误或系统异常 |
| 请求地址 | 域名+接口地址 |
| 加密算法 | Java 加解密Demo |
| 加密工具类 | java 版本的加密工具类 其他开发语言可参考实现 |
接口调用方式
说明:下文中接口文档均使用ak、sk 的接口文档对接口进行说明。这里对rsa方式调用做统一说明。调用实例可参考 请求示例及响应体解密方式
除个别请求中不需要签名的接口外,接口都需要对参数和响应体做加密和验签处理。这里以创建订单的接口 /open/user/registerOrLoginToGetOpenApi 对接口调用方式进行说明。
使用ak/sk加密时 请求参数如下:
{
"appKey": "xxxx",
"countryCode": "+86",
"mobileNumber": "34334342",
"password": "1234qwer",
"sign": "xxxxxxxxxxxxxxxxxxxx"
}
使用rsa 方式请求需要将以上参数进行加密和签名,其中 appKey和sign 不需要参与加密 将其他参数 进行加密和签名 得到 data 和 sign字段。新的请求参数如下: 其中示例中的 oppositePublicKey是应用对应的平台公钥,myPrivateKey是开发者自己生成的RSA私钥。
{
"app_id": "xxxx",
"time": 1715310032,
"data": "xxxxxxxxxxx",
"sign": "xxxxxxxxxxx"
}
参数说明:
- app_id 为ak/sk方式中的appKey参数
- time 为请求时刻的毫秒时间戳
- data 为加密后的参数
- sign 为加密参数sign
返回的响应体
{
"code": "0",
"msg": "succ",
"data": "xxxxxxxxxxx",
"sign": "xxxxxxxxxxx"
}
响应体说明