<dependency>
<groupId>com.jcsk</groupId>
<artifactId>saas-openapi-sdk</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency><!-- Hutool 版本属性 -->
<properties>
<hutool.version>5.8.35</hutool.version>
<bouncycastle.version>1.78.1</bouncycastle.version>
</properties>
<!-- Hutool 工具库(HTTP / 加密 / JSON) -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- BouncyCastle(JDK 8 环境提供 SM4 算法支持) -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>${bouncycastle.version}</version>
</dependency>| 配置项 | 必填 | 默认值 | 说明 |
|---|---|---|---|
| baseUrl | 是 | - | 服务端基础地址,由平台分配 |
| appKey | 是 | - | 平台分配的应用标识 |
| appSecret | 是 | - | 平台分配的应用密钥,长度须为 16 字节(SM4 密钥要求) |
| version | 否 | "1" | 接口版本号 |
| timeout | 否 | 10000 | HTTP 请求超时时间(毫秒) |
postJson 参数说明:api:接口地址,由用户传入。以 http 开头时视为完整 URL 直接请求;否则自动拼接到 baseUrl 之后(是否以 / 开头均可)params:业务参数,支持 Map、JSONObject、JavaBean 或 JSON 字符串timeout(可选):本次请求超时时间(毫秒),不传时取配置值(默认 10000)data 为 SM4 加密串,SDK 自动解密后返回明文):{
"code": 200,
"data": "SM4 加密后的 Base64 字符串",
"msg": "处理成功",
"success": true
}OpenApiResponse 提供以下方法:| 方法 | 返回类型 | 说明 |
|---|---|---|
getCode() | int | 响应码 |
getMsg() | String | 响应消息 |
isSuccess() | boolean | 是否成功(取响应中的 success 字段) |
getData() | Object | 业务数据(解密后的明文 JSON 字符串) |
getDataJSON() | JSONObject | 业务数据转 JSONObject,便于直接取字段 |
OpenApiException(RuntimeException):success=false)不抛异常,需通过 isSuccess() 判断。com.jcsk.openapi 包的日志级别调为 DEBUG 即可:<logger name="com.jcsk.openapi" level="DEBUG"/>sign = MD5(appKey + appSecret + encryptStr + timestamp + iv)appKey、version、encryptStr(加密后的业务参数)、iv、timestamp、signdata 为 SM4 加密串(与请求同一密钥/IV),SDK 解密后返回明文