Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fangxinjiang
yifu-mvp
Commits
e73ddb98
Commit
e73ddb98
authored
Oct 16, 2025
by
hongguangwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MVP1.7.16-法大大
parent
0ed5f058
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
88 additions
and
4 deletions
+88
-4
FascController.java
...loud/plus/v1/yifu/archives/controller/FascController.java
+88
-4
No files found.
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/FascController.java
View file @
e73ddb98
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
controller
;
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fadada.api.utils.crypt.FddCryptUtil
;
import
com.fasc.open.api.constants.RequestConstants
;
import
com.fasc.open.api.exception.ApiException
;
import
com.fasc.open.api.exception.ApiException
;
import
com.fasc.open.api.utils.crypt.FddCryptUtil
;
import
com.yifu.cloud.plus.v1.yifu.archives.config.FascConfig
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TFascPushLog
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.FascService
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.FascService
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TFascPushLogService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -26,6 +39,13 @@ public class FascController {
...
@@ -26,6 +39,13 @@ public class FascController {
@Autowired
@Autowired
private
FascService
fascService
;
private
FascService
fascService
;
@Autowired
private
FascConfig
fascConfig
;
private
final
TFascPushLogService
tFascPushLogService
;
private
static
String
FASC_EVENT
=
"X-FASC-Event"
;
private
static
String
FASC_BIZ_CONTENT
=
"bizContent"
;
/**
/**
* @param templateName 签署任务模板名称,如果传了该参数,会根据名称模糊匹配查询,长度最大100个字符。
* @param templateName 签署任务模板名称,如果传了该参数,会根据名称模糊匹配查询,长度最大100个字符。
...
@@ -81,7 +101,7 @@ public class FascController {
...
@@ -81,7 +101,7 @@ public class FascController {
// 法大大回调
// 法大大回调
@ResponseBody
/*
@ResponseBody
@PostMapping(value = "/api/fascCallback")
@PostMapping(value = "/api/fascCallback")
public String fddEventCallback(@RequestHeader HttpHeaders headers,
public String fddEventCallback(@RequestHeader HttpHeaders headers,
@RequestParam("bizContent") String bizContent) throws Exception {
@RequestParam("bizContent") String bizContent) throws Exception {
...
@@ -113,6 +133,70 @@ public class FascController {
...
@@ -113,6 +133,70 @@ public class FascController {
return "{\"code\":\"200\";\"msg\":\"success\"}";
return "{\"code\":\"200\";\"msg\":\"success\"}";
}
}
return "{\"code\":\"200\";\"msg\":\"success\"}";
return "{\"code\":\"200\";\"msg\":\"success\"}";
}*/
@Operation
(
summary
=
"异步通知"
,
description
=
"异步通知"
)
@RequestMapping
(
value
=
"/api/fascCallback"
)
public
R
<
String
>
notifyUrl
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
// 新增推送日志
TFascPushLog
pushLog
=
new
TFascPushLog
();
pushLog
.
setTransReferenceId
(
fascConfig
.
getOpenId
());
pushLog
.
setReturnData
(
JSON
.
toJSONString
(
request
));
pushLog
.
setTaskStatus
(
CommonConstants
.
ONE_STRING
);
pushLog
.
setTypeKey
(
"签署任务事件,异步通知"
);
pushLog
.
setTypeName
(
"签署任务事件,异步通知"
);
tFascPushLogService
.
save
(
pushLog
);
if
(
checkSign
(
request
))
{
return
R
.
failed
(
"验签失败"
);
}
String
fddEvent
=
request
.
getHeader
(
FASC_EVENT
);
String
fddBizContent
=
request
.
getParameter
(
FASC_BIZ_CONTENT
);
if
(
Common
.
isNotNull
(
fddEvent
))
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
fddBizContent
);
String
taskId
=
jsonObject
.
getString
(
"taskId"
);
String
taskStatus
=
jsonObject
.
getString
(
"taskStatus"
);
String
signStatus
=
jsonObject
.
getString
(
"signStatus"
);
String
signerId
=
jsonObject
.
getString
(
"signerId"
);
pushLog
.
setReturnData
(
"fddEvent:"
+
fddEvent
+
";fddBizContent:"
+
fddBizContent
);
if
(
fddEvent
.
equals
(
"sign-task-finished"
))
{
pushLog
.
setReturnData
(
"签署任务完成事件:fddEvent:"
+
fddEvent
+
";fddBizContent:"
+
fddBizContent
);
return
R
.
ok
(
null
,
"success"
);
}
else
if
(
fddEvent
.
equals
(
"sign-task-canceled"
))
{
pushLog
.
setReturnData
(
"签署任务撤销事件:fddEvent:"
+
fddEvent
+
";fddBizContent:"
+
fddBizContent
);
return
R
.
ok
(
null
,
"success"
);
}
else
if
(
fddEvent
.
equals
(
"sign-task-sign-failed"
))
{
pushLog
.
setReturnData
(
"签署任务参与方签署失败事件:fddEvent:"
+
fddEvent
+
";fddBizContent:"
+
fddBizContent
);
return
R
.
ok
(
null
,
"success"
);
}
else
if
(
fddEvent
.
equals
(
"sign-task-abolish"
))
{
pushLog
.
setReturnData
(
"签署任务作废事件:fddEvent:"
+
fddEvent
+
";fddBizContent:"
+
fddBizContent
);
return
R
.
ok
(
null
,
"success"
);
}
}
tFascPushLogService
.
updateById
(
pushLog
);
return
R
.
ok
(
null
,
"success"
);
}
//验证签名,返回true表示失败
public
boolean
checkSign
(
HttpServletRequest
request
)
throws
Exception
{
Map
<
String
,
String
>
paraMap
=
new
HashMap
<>();
paraMap
.
put
(
RequestConstants
.
APP_ID
,
request
.
getHeader
(
RequestConstants
.
APP_ID
));
paraMap
.
put
(
RequestConstants
.
SIGN_TYPE
,
request
.
getHeader
(
RequestConstants
.
SIGN_TYPE
));
paraMap
.
put
(
RequestConstants
.
TIMESTAMP
,
request
.
getHeader
(
RequestConstants
.
TIMESTAMP
));
paraMap
.
put
(
RequestConstants
.
NONCE
,
request
.
getHeader
(
RequestConstants
.
NONCE
));
paraMap
.
put
(
FASC_EVENT
,
request
.
getHeader
(
FASC_EVENT
));
paraMap
.
put
(
FASC_BIZ_CONTENT
,
request
.
getParameter
(
FASC_BIZ_CONTENT
));
//参数排序,ascii码排序
String
sortParam
=
FddCryptUtil
.
sortParameters
(
paraMap
);
//计算之后得到签名 该签名需要放到请求头
String
signature
=
FddCryptUtil
.
sign
(
sortParam
,
request
.
getHeader
(
RequestConstants
.
TIMESTAMP
),
fascConfig
.
getAppSecret
());
if
(
StringUtils
.
equals
(
signature
,
request
.
getHeader
(
RequestConstants
.
SIGN
)))
{
return
false
;
}
// 表示验签失败:
return
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