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); } }