|
@@ -61,6 +61,8 @@ public class ChannelServiceImpl implements ChannelService {
|
|
|
private String decodeAppKey;
|
|
|
@Value("${supplier.decodeAppSecret}")
|
|
|
private String decodeAppSecret;
|
|
|
+ @Value("${supplier.idCardValidityUrl}")
|
|
|
+ private String idCardValidityUrl;
|
|
|
|
|
|
@Autowired
|
|
|
StringRedisTemplate stringRedisTemplate;
|
|
@@ -206,10 +208,9 @@ public class ChannelServiceImpl implements ChannelService {
|
|
|
PhotoIdentityParamObject logParamObject = PhotoIdentityParamObject.getLogParamObject(accessToken, requestObject.getIdCode(),
|
|
|
requestObject.getName(), authMode42);
|
|
|
log.info("supplier10000044.photoIdentityCheck接口请求上游参数:{}", JSON.toJSONString(logParamObject));
|
|
|
-// String responseContext = callService(paramObject, outTime, SjjhConstant.PHOTO_IDENTITY_CHECK, ret);
|
|
|
+ String responseContext = callService(paramObject, outTime, SjjhConstant.PHOTO_IDENTITY_CHECK, ret);
|
|
|
|
|
|
- // todo
|
|
|
- String responseContext = "{\"retCode\":0,\"retMessage\":\"成功\",\"apiVersion\":\"3.3.0\",\"certToken\":\"98cec673-a969-462a-b154-47b56b887fcb\",\"resStr\":\"02XX\"}";
|
|
|
+// String responseContext = "{\"retCode\":0,\"retMessage\":\"成功\",\"apiVersion\":\"3.3.0\",\"certToken\":\"98cec673-a969-462a-b154-47b56b887fcb\",\"resStr\":\"02XX\"}";
|
|
|
log.info("supplier10000044.{}接口上游返回:{}", SjjhConstant.PHOTO_IDENTITY_CHECK, responseContext);
|
|
|
if (StringUtils.isBlank(responseContext)) {
|
|
|
return null;
|
|
@@ -233,7 +234,13 @@ public class ChannelServiceImpl implements ChannelService {
|
|
|
MediaType mediaType = MediaType.parse(org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE);
|
|
|
RequestBody requestBody = RequestBody.create(mediaType, jsonStr);
|
|
|
|
|
|
- Request okRequest = new Request.Builder().post(requestBody).url(url).build();
|
|
|
+ Request okRequest;
|
|
|
+ if (method.equals(SjjhConstant.ID_CARD_VALIDITY_CHECK)) {
|
|
|
+ okRequest = new Request.Builder().post(requestBody).url(idCardValidityUrl).build();
|
|
|
+ } else {
|
|
|
+ okRequest = new Request.Builder().post(requestBody).url(url).build();
|
|
|
+ }
|
|
|
+
|
|
|
OkHttpClient client = okHttpClient.newBuilder()
|
|
|
.connectTimeout(outTime, TimeUnit.MILLISECONDS)
|
|
|
.readTimeout(outTime, TimeUnit.MILLISECONDS)
|
|
@@ -960,4 +967,166 @@ public class ChannelServiceImpl implements ChannelService {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ChannelTypeHandleResponseObject idCardValidityCheck(HttpServletRequest request, String customBody, int outTime, String decodeType) {
|
|
|
+ ChannelTypeHandleResponseObject ret = new ChannelTypeHandleResponseObject();
|
|
|
+ ret.setIsCharge(Constant.INTERFACE_QUERY_NO_FEE);
|
|
|
+ String upstreamCode = "" + Constant.LOG_UPSTREAM_DEFAULT_RESPONSE_CODE;
|
|
|
+ request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
|
|
|
+ String returnType = request.getHeader(Constant.CUSTOMER_RETURN_TYPE_PARA);
|
|
|
+ if (StringUtils.isBlank(returnType)) {
|
|
|
+ returnType = Constant.CUSTOMER_RETURN_ZW;
|
|
|
+ }
|
|
|
+ if (outTime <= SjjhConstant.PARA_ZERO) {
|
|
|
+ outTime = Constant.HTTPCLIENT_CONNECTTIMEOUT;
|
|
|
+ }
|
|
|
+ log.info("supplier10000044.idCardValidityCheck---customBody={},outTime={}", customBody, outTime);
|
|
|
+ IdCardValidityRequestObject requestObject = new IdCardValidityRequestObject();
|
|
|
+ try {
|
|
|
+ requestObject = objectMapper.readValue(customBody,
|
|
|
+ IdCardValidityRequestObject.class);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("supplier10000044.接口-Exception:", e);
|
|
|
+ ErrorUtils.captureException(e);
|
|
|
+ ret.setCode(Constant.FAIL);
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("supplier10000044.idCardValidityCheck---requestObject={}", requestObject);
|
|
|
+ // 参数校验
|
|
|
+ if (!validateRequestParams(ret, returnType, requestObject)) {
|
|
|
+ ret.setCode(Constant.SUCCESS);
|
|
|
+ request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ String accessToken = getAccessToken(outTime);
|
|
|
+ IdCardValidityResponseObject responseObject = getIdCardValidityResponseObject(requestObject, outTime, accessToken, ret);
|
|
|
+ if (responseObject != null && responseObject.getRetCode().equals(SjjhConstant.RESPONSE_CODE_4022)) {
|
|
|
+ accessToken = queryAccessToken(outTime);
|
|
|
+ responseObject = getIdCardValidityResponseObject(requestObject, outTime, accessToken, ret);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (responseObject != null) {
|
|
|
+ ret.setCode(Constant.SUCCESS);
|
|
|
+ upstreamCode = setIdCardValidityResponseObject(ret, returnType, responseObject);
|
|
|
+ }
|
|
|
+ } catch (Exception ioe) {
|
|
|
+ log.info("supplier10000044.接口-Exception:", ioe);
|
|
|
+ ErrorUtils.captureException(ioe);
|
|
|
+ ret.setCode(Constant.FAIL);
|
|
|
+ }
|
|
|
+ request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ private IdCardValidityResponseObject getIdCardValidityResponseObject(IdCardValidityRequestObject requestObject, int outTime, String accessToken, ChannelTypeHandleResponseObject ret) {
|
|
|
+ IdCardValidityParamObject paramObject = new IdCardValidityParamObject(accessToken, requestObject.getIdCode(), requestObject.getName());
|
|
|
+ log.info("supplier10000044.idCardValidityCheck接口请求上游参数:{}", JSON.toJSONString(paramObject));
|
|
|
+ String responseContext = callService(paramObject, outTime, SjjhConstant.ID_CARD_VALIDITY_CHECK, ret);
|
|
|
+ log.info("supplier10000044.{}接口上游返回:{}", SjjhConstant.ID_CARD_VALIDITY_CHECK, responseContext);
|
|
|
+ if (StringUtils.isBlank(responseContext)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ IdCardValidityResponseObject responseObject = objectMapper.readValue(responseContext,
|
|
|
+ IdCardValidityResponseObject.class);
|
|
|
+ return responseObject;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("supplier10000044.{}-getIdCardValidityResponseObject接口-Exception:{}", SjjhConstant.ID_CARD_VALIDITY_CHECK, e);
|
|
|
+ ErrorUtils.captureException(e);
|
|
|
+ ret.setCode(Constant.FAIL);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private String setIdCardValidityResponseObject(ChannelTypeHandleResponseObject ret, String returnType,
|
|
|
+ IdCardValidityResponseObject responseObject) {
|
|
|
+ String retCode = responseObject.getRetCode();
|
|
|
+ String resStr = "";
|
|
|
+ String upstreamCode = retCode;
|
|
|
+ if (retCode.equals(SjjhConstant.RET_CODE_0)) {
|
|
|
+ resStr = responseObject.getData().getResStr();
|
|
|
+ upstreamCode = retCode + "-" + resStr;
|
|
|
+ }
|
|
|
+
|
|
|
+ boolean isCharge = retCode .equals(SjjhConstant.RET_CODE_0)
|
|
|
+ && ArrayUtils.contains(SjjhConstant.ID_CARD_VALIDITY_CHARGE_CODE, resStr);
|
|
|
+ if (isCharge) {
|
|
|
+ ret.setIsCharge(Constant.INTERFACE_QUERY_FEE);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Constant.CUSTOMER_RETURN_JK.equals(returnType)) {
|
|
|
+ if (responseObject.getRetCode() != null && responseObject.getRetCode().equals(SjjhConstant.RESPONSE_CODE_4002)) {
|
|
|
+ ret.setResultCode(Constant.JK_RETURN_CODE_INVALID_PARAMETER);
|
|
|
+ ret.setResultBody(Constant.INVALID_PARAMETER);
|
|
|
+ ret.setResultDesc(Constant.INVALID_PARAMETER);
|
|
|
+ } else if (!retCode.equals(SjjhConstant.RET_CODE_0)) {
|
|
|
+ // 查询错误
|
|
|
+ ret.setResultCode(Constant.JK_RETURN_CODE_OTHER_ERROR);
|
|
|
+ ret.setResultBody(Constant.OTHER_ERROR);
|
|
|
+ ret.setResultDesc(Constant.OTHER_ERROR);
|
|
|
+ } else if (resStr.equals(SjjhConstant.RESPONSE_CODE_0XXX)) {
|
|
|
+ // 身份信息有效
|
|
|
+ JSONObject resultBody = new JSONObject();
|
|
|
+ resultBody.put("startDate", responseObject.getData().getFriStartDate());
|
|
|
+ resultBody.put("endDate", responseObject.getData().getFriEndDate());
|
|
|
+ ret.setResultCode(Constant.JK_RETURN_CODE_MATCH);
|
|
|
+ ret.setResultBody(resultBody);
|
|
|
+ ret.setResultDesc(Constant.MATCH);
|
|
|
+ } else if (resStr.equals(SjjhConstant.RESPONSE_CODE_5XXX)) {
|
|
|
+ if (responseObject.getData().getResMessage().equals(SjjhConstant.ID_CARD_VALIDITY_5XXX_2)) {
|
|
|
+ ret.setResultCode(Constant.JK_RETURN_CODE_1189);
|
|
|
+ ret.setResultBody(Constant.RETURN_MESSAGE_136);
|
|
|
+ ret.setResultDesc(Constant.RETURN_MESSAGE_136);
|
|
|
+ } else {
|
|
|
+ ret.setResultCode(Constant.JK_RETURN_CODE_1188);
|
|
|
+ ret.setResultBody(Constant.RETURN_MESSAGE_135);
|
|
|
+ ret.setResultDesc(Constant.RETURN_MESSAGE_135);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 查询错误
|
|
|
+ ret.setResultCode(Constant.JK_RETURN_CODE_OTHER_ERROR);
|
|
|
+ ret.setResultBody(Constant.OTHER_ERROR);
|
|
|
+ ret.setResultDesc(Constant.OTHER_ERROR);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (responseObject.getRetCode() != null && responseObject.getRetCode().equals(SjjhConstant.RESPONSE_CODE_4002)) {
|
|
|
+ ret.setResultCode(Constant.INVALID_PARAMETER_CODE);
|
|
|
+ ret.setResultBody(Constant.INVALID_PARAMETER);
|
|
|
+ ret.setResultDesc(Constant.INVALID_PARAMETER);
|
|
|
+ } else if (!retCode.equals(SjjhConstant.RET_CODE_0)) {
|
|
|
+ // 查询错误
|
|
|
+ ret.setResultCode(Constant.OTHER_ERROR_CODE);
|
|
|
+ ret.setResultBody(Constant.OTHER_ERROR);
|
|
|
+ ret.setResultDesc(Constant.OTHER_ERROR);
|
|
|
+ } else if (resStr.equals(SjjhConstant.RESPONSE_CODE_0XXX)) {
|
|
|
+ // 身份信息有效
|
|
|
+ JSONObject resultBody = new JSONObject();
|
|
|
+ resultBody.put("startDate", responseObject.getData().getFriStartDate());
|
|
|
+ resultBody.put("endDate", responseObject.getData().getFriEndDate());
|
|
|
+ ret.setResultCode(Constant.MATCH_CODE);
|
|
|
+ ret.setResultBody(resultBody);
|
|
|
+ ret.setResultDesc(Constant.MATCH);
|
|
|
+ } else if (resStr.equals(SjjhConstant.RESPONSE_CODE_5XXX)) {
|
|
|
+ // 身份信息无效
|
|
|
+ if (responseObject.getData().getResMessage().equals(SjjhConstant.ID_CARD_VALIDITY_5XXX_2)) {
|
|
|
+ ret.setResultCode(Constant.ZW_RETURN_CODE_136);
|
|
|
+ ret.setResultBody(Constant.RETURN_MESSAGE_136);
|
|
|
+ ret.setResultDesc(Constant.RETURN_MESSAGE_136);
|
|
|
+ } else {
|
|
|
+ ret.setResultCode(Constant.ZW_RETURN_CODE_135);
|
|
|
+ ret.setResultBody(Constant.RETURN_MESSAGE_135);
|
|
|
+ ret.setResultDesc(Constant.RETURN_MESSAGE_135);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 查询错误
|
|
|
+ ret.setResultCode(Constant.OTHER_ERROR_CODE);
|
|
|
+ ret.setResultBody(Constant.OTHER_ERROR);
|
|
|
+ ret.setResultDesc(Constant.OTHER_ERROR);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return upstreamCode;
|
|
|
+ }
|
|
|
}
|