Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
huang.tao
/
jmai-platform
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
79faae14
authored
Jan 27, 2026
by
zhu.zewen
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
新增云签相关接口
parent
7d26bbe5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
72 additions
and
33 deletions
jmai-physic/src/main/java/com/jmai/physic/cloudsign/CloudsignService.java
jmai-physic/src/main/java/com/jmai/physic/config/CloudSignProperties.java
jmai-physic/src/main/java/com/jmai/physic/cloudsign/CloudsignService.java
View file @
79faae14
...
@@ -197,19 +197,26 @@ public class CloudsignService {
...
@@ -197,19 +197,26 @@ public class CloudsignService {
}
}
/**
/**
* 云签证书数字签名
* 云签证书数字签名
(简化版,使用默认参数)
* @param base64SourceData
* @param base64SourceData
待签名数据的Base64编码
* @return 签名
后的数据
* @return 签名
值
*/
*/
@Deprecated
public
String
sign
(
String
base64SourceData
){
public
String
sign
(
String
base64SourceData
){
// 从当前用户上下文获取工号作为relBizNo
return
sign
(
base64SourceData
,
null
);
String
relBizNo
=
SpringContextUtils
.
getWorkNo
();
}
if
(
ObjectUtil
.
isEmpty
(
relBizNo
))
{
throw
new
ServiceException
(
"当前用户工号为空"
);
/**
}
* 云签证书数字签名(带业务ID参数)
* @param base64SourceData 待签名数据的Base64编码
* @param bizId 业务ID
* @return 签名值
*/
public
String
sign
(
String
base64SourceData
,
String
bizId
){
// 使用默认业务类型和时间戳设置,但使用传入的业务ID
SignDataRequest
request
=
new
SignDataRequest
();
SignDataRequest
request
=
new
SignDataRequest
();
// 不再需要外部传入encryptedToken,改为从数据库获取
// 自动填充业务参数
if
(
cloudSignProperties
.
getTestEnabled
())
{
if
(
cloudSignProperties
.
getTestEnabled
())
{
request
.
setBusinessOrgCode
(
cloudSignProperties
.
getTestBusinessOrgCode
());
request
.
setBusinessOrgCode
(
cloudSignProperties
.
getTestBusinessOrgCode
());
request
.
setBusinessSystemCode
(
cloudSignProperties
.
getTestBusinessSystemCode
());
request
.
setBusinessSystemCode
(
cloudSignProperties
.
getTestBusinessSystemCode
());
...
@@ -219,15 +226,23 @@ public class CloudsignService {
...
@@ -219,15 +226,23 @@ public class CloudsignService {
request
.
setBusinessSystemCode
(
cloudSignProperties
.
getBusinessSystemCode
());
request
.
setBusinessSystemCode
(
cloudSignProperties
.
getBusinessSystemCode
());
request
.
setBusinessSystemAppID
(
cloudSignProperties
.
getBusinessSystemApplD
());
request
.
setBusinessSystemAppID
(
cloudSignProperties
.
getBusinessSystemApplD
());
}
}
request
.
setEncryptedToken
(
getCurrentUserEncryptedToken
());
request
.
setEncryptedToken
(
getCurrentUserEncryptedToken
());
request
.
setBusinessTypeCode
(
"007"
);
request
.
setBusinessTypeCode
(
cloudSignProperties
.
getDefaultBusinessTypeCode
());
// 从配置加载默认业务类型
request
.
setWithTsa
(
true
);
request
.
setWithTsa
(
cloudSignProperties
.
getDefaultWithTsa
());
// 从配置加载默认时间戳设置
request
.
setBase64SourceData
(
base64SourceData
);
request
.
setBase64SourceData
(
base64SourceData
);
// 设置传入的业务ID
if
(
ObjectUtil
.
isNotEmpty
(
bizId
))
{
request
.
setBizId
(
bizId
);
}
SignDataRespon
resp
=
signData
(
request
);
SignDataRespon
resp
=
signData
(
request
);
GetstampRequest
getstampRequest
=
new
GetstampRequest
();
getstampRequest
.
setRelBizNo
(
relBizNo
);
if
(
resp
.
getStatusCode
()
!=
0
)
{
String
getstamp
=
getStamp
(
getstampRequest
);
throw
new
ServiceException
(
"签名失败: "
+
resp
.
getEventMsg
());
return
base64SourceData
;
}
return
resp
.
getEventValue
().
getSignedData
();
}
}
/**
/**
...
@@ -236,19 +251,6 @@ public class CloudsignService {
...
@@ -236,19 +251,6 @@ public class CloudsignService {
*/
*/
public
SignDataRespon
signData
(
SignDataRequest
request
){
public
SignDataRespon
signData
(
SignDataRequest
request
){
String
logTip
=
"signdata"
;
String
logTip
=
"signdata"
;
// 自动填充业务参数和加密令牌
if
(
cloudSignProperties
.
getTestEnabled
())
{
request
.
setBusinessOrgCode
(
cloudSignProperties
.
getTestBusinessOrgCode
());
request
.
setBusinessSystemCode
(
cloudSignProperties
.
getTestBusinessSystemCode
());
request
.
setBusinessSystemAppID
(
cloudSignProperties
.
getTestBusinessSystemAppID
());
}
else
{
request
.
setBusinessOrgCode
(
cloudSignProperties
.
getBusinessOrgCode
());
request
.
setBusinessSystemCode
(
cloudSignProperties
.
getBusinessSystemCode
());
request
.
setBusinessSystemAppID
(
cloudSignProperties
.
getBusinessSystemApplD
());
}
request
.
setBusinessTypeCode
(
"007"
);
request
.
setWithTsa
(
true
);
request
.
setEncryptedToken
(
getCurrentUserEncryptedToken
());
String
json
=
OpenUtil
.
toJson
(
request
);
String
json
=
OpenUtil
.
toJson
(
request
);
try
{
try
{
...
@@ -259,14 +261,39 @@ public class CloudsignService {
...
@@ -259,14 +261,39 @@ public class CloudsignService {
throw
new
ServiceException
(
"获取失败"
);
throw
new
ServiceException
(
"获取失败"
);
}
}
SignDataRespon
signDataRespon
=
JSON
.
parseObject
(
response
,
SignDataRespon
.
class
);
SignDataRespon
signDataRespon
=
JSON
.
parseObject
(
response
,
SignDataRespon
.
class
);
// 检查返回的状态码
if
(
signDataRespon
.
getStatusCode
()
!=
0
)
{
log
.
error
(
"{}-签名失败: {}"
,
logTip
,
signDataRespon
.
getEventMsg
());
throw
new
ServiceException
(
"签名失败: "
+
signDataRespon
.
getEventMsg
());
}
return
signDataRespon
;
return
signDataRespon
;
}
catch
(
ServiceException
se
)
{
// 重新抛出ServiceException
throw
se
;
}
catch
(
Exception
exception
)
{
}
catch
(
Exception
exception
)
{
log
.
error
(
"签名失败,e:{}"
+
exception
.
getMessage
());
log
.
error
(
"签名失败,e:{}"
,
exception
.
getMessage
(),
exception
);
throw
new
ServiceException
(
"签名失败"
);
throw
new
ServiceException
(
"签名失败: "
+
exception
.
getMessage
());
}
}
}
}
/**
* 获取当前用户的印章图片
* @return 印章图片的Base64编码
*/
public
String
getCurrentUserStamp
(){
String
relBizNo
=
SpringContextUtils
.
getWorkNo
();
if
(
ObjectUtil
.
isEmpty
(
relBizNo
))
{
throw
new
ServiceException
(
"当前用户工号为空"
);
}
GetstampRequest
request
=
new
GetstampRequest
();
request
.
setRelBizNo
(
relBizNo
);
return
getStamp
(
request
);
}
/**
/**
* 获取手写签名图片
* 获取手写签名图片
* @param request
* @param request
...
...
jmai-physic/src/main/java/com/jmai/physic/config/CloudSignProperties.java
View file @
79faae14
...
@@ -119,4 +119,16 @@ public class CloudSignProperties {
...
@@ -119,4 +119,16 @@ public class CloudSignProperties {
* 二维码图片保存路径
* 二维码图片保存路径
*/
*/
private
String
qrCodeSavePath
=
"D:/jmai/cloudsign"
;
private
String
qrCodeSavePath
=
"D:/jmai/cloudsign"
;
/**
* 默认业务类型代码
*/
private
String
defaultBusinessTypeCode
=
"007"
;
/**
* 默认是否包含时间戳
*/
private
Boolean
defaultWithTsa
=
true
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment