From 9ae5f917ce8f88b0f5b7941defe1e2a8be632ab5 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 16 Apr 2025 20:20:54 +0800 Subject: [PATCH] 11 --- .../service/impl/HardDoorFlowServiceImpl.java | 8 +++++++- .../service/impl/ks/ThirdKsApiServiceImpl.java | 17 ++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java index dbd15b7a1..d732fad50 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java @@ -295,6 +295,12 @@ public class HardDoorFlowServiceImpl extends ServiceImpl headers) { KsSkuSubmitCallbackDto dto = JSONUtil.toBean(json, KsSkuSubmitCallbackDto.class); - boolean isSign = apiParseSign(json, headers); + boolean isSign = apiParseSign(json, ksDiscernConfig.getCallbackSkuUrl(), headers); if (!isSign) { log.error("|{}| callbackSKu 签名错误", TAG); return; @@ -331,9 +334,8 @@ public class ThirdKsApiServiceImpl implements ThirdKsApiService { */ @Override public void callbackRecognition(String json, Map headers) { - String jsonStr = JSONUtil.toJsonStr(headers); KsRecognitionCallbackDto dto = JSONUtil.toBean(json, KsRecognitionCallbackDto.class); - boolean isSign = apiParseSign(json, headers); + boolean isSign = apiParseSign(json, ksDiscernConfig.getCallbackRecognitionUrl(), headers); if (!isSign) { log.error("|{}| callbackRecognition 签名错误", TAG); return; @@ -357,7 +359,12 @@ public class ThirdKsApiServiceImpl implements ThirdKsApiService { /** * 接口解签 */ - private boolean apiParseSign(String json, Map headers) { - return true; + private boolean apiParseSign(String json, String uri, Map headers) { + String authorization = headers.get("Authorization"); + String referer = headers.get("Referer"); + String contentType = headers.get("Content-Type"); + String timestamp = headers.get("REQUEST-START-TIME"); + String signAuth = KsRetailSignUtils.getSignAuth(referer, uri, contentType, HttpPost.METHOD_NAME, Long.valueOf(timestamp), ksDiscernConfig.getAccessKey(), ksDiscernConfig.getSecretKey(), json, ""); + return ObjectUtil.equals(signAuth, authorization); } }