提交 a01c76f2 编写于 作者: Chongwen.jiang's avatar Chongwen.jiang

风控数据记录修改

上级 9dfce97f
流水线 #23457 已失败 于阶段
in 0 second
......@@ -136,13 +136,15 @@ public class AutoCodeController extends AccountBaseController {
AccountUtils.checkMobilePhone(request.getMobile());
// 拼图验证
authCodeService.validateJigsawCode(req, request);
int recordData = authCodeService.validateJigsawCode(req, request);
// 发送短信验证码
processSysCode(request.getMobile(), request.getFlag());
// 记录风控数据(记录是h5端)
authCodeService.recordRcData(req, request, super.getDeviceInfo("device_ip"));
if (recordData != -1) {
// 记录风控数据(记录是h5端)
authCodeService.recordRcData(req, request, super.getDeviceInfo("device_ip"));
}
return PicaResponse.toResponse();
}
......
......@@ -51,6 +51,7 @@ public enum AccountExceptionEnum {
PICA_BIND_WECHAT_FAIL("216543", "绑定微信失败"),
PICA_CAP_CODE_ERROR("216544", "拼图验证失败"),
PICA_CAP_GET_INVOKE_ERROR("216545", "拼图获取失败"),
PICA_RC_BUSINESS_ERROR("216546", "参数格式错误"),
xxx_xxx("","");
......
......@@ -11,6 +11,7 @@ package com.pica.cloud.account.account.server.enums;
public enum RcRepTypeEnum {
// 风控禁止发送
RC_ALLOW_SEND_MSG("1", "允许发送"),
RC_SEND_FAIL("2", "发送失败"),
RC_TRIGGER("3", "需要触发风控滑动验证"),
// 账号、IP、设备在黑名单内,前端提示发送成功,后端不发送短信
......
......@@ -16,11 +16,11 @@ import javax.servlet.http.HttpServletRequest;
*/
public interface AuthCodeService {
Boolean rcValidate(HttpServletRequest request, BaseRequest baseRequest, String deviceInfoStr, Integer sourceType);
int rcValidate(HttpServletRequest request, BaseRequest baseRequest, String deviceInfoStr, Integer sourceType);
void recordRcData(HttpServletRequest req, BaseRequest baseRequest, String deviceIp);
void validateJigsawCode(HttpServletRequest request, BaseRequest req);
int validateJigsawCode(HttpServletRequest request, BaseRequest req);
JigsawCodeModel getJigsawCode(HttpServletRequest request, Integer sourceType, String mobile);
......
......@@ -71,8 +71,8 @@ public class AuthCodeServiceImpl implements AuthCodeService {
* @Return com.pica.cloud.account.account.server.resp.UnifiedVerificationResp
*/
@Override
public Boolean rcValidate(HttpServletRequest request, BaseRequest baseRequest, String deviceInfoStr, Integer sourceType) {
Boolean need = true;
public int rcValidate(HttpServletRequest request, BaseRequest baseRequest, String deviceInfoStr, Integer sourceType) {
int needCheck = 1;
// 调用风控接口
PicaResponse picaResponse = null;
try {
......@@ -129,21 +129,26 @@ public class AuthCodeServiceImpl implements AuthCodeService {
if (remainTime > 0) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_60_SECOND_LIMIT.getCode(),
AccountExceptionEnum.PICA_RC_60_SECOND_LIMIT.getMessage().replace("{remainTime}", String.valueOf(remainTime)));
} else {
needCheck = 0;
}
} else {
// 刚好60秒缓存时间过去了,也允许发送短信验证码
need = false;
needCheck = 0;
}
} else {
} else if (RcRepTypeEnum.RC_ALLOW_SEND_MSG.getCode().equals(processCode)) {
// processCode equals "1" (允许发送短信验证码)
need = false;
needCheck = -1;
} else {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_BUSINESS_ERROR.getCode(),
AccountExceptionEnum.PICA_RC_BUSINESS_ERROR.getMessage());
}
}
}
}
}
return need;
return needCheck;
}
/**
......@@ -182,7 +187,7 @@ public class AuthCodeServiceImpl implements AuthCodeService {
* @Return void
*/
@Override
public void validateJigsawCode(HttpServletRequest request, BaseRequest paramReq) {
public int validateJigsawCode(HttpServletRequest request, BaseRequest paramReq) {
if(!SourceTypeEnum.H5.getCode().equals(paramReq.getSourceType())) {
logger.error("validateJigsawCode-h5 sourceType error");
throw new PicaWarnException(PicaResultCode.PARAM_IS_INVALID.code(), PicaResultCode.PARAM_IS_INVALID.message());
......@@ -190,10 +195,10 @@ public class AuthCodeServiceImpl implements AuthCodeService {
// 1、调用风控服务,是否需要触发拼图验证
BaseRequest rcReq = new BaseRequest();
rcReq.setMobile(paramReq.getMobile());
Boolean need = this.rcValidate(request, rcReq, "{}", paramReq.getSourceType());
if (!need) {
int needCheck = this.rcValidate(request, rcReq, "{}", paramReq.getSourceType());
if (needCheck <= 0) {
// 不需要拼图验证,直接去发短信
return;
return needCheck;
}
String capCode = paramReq.getCapCode();
int xPos = paramReq.getxPos();
......@@ -204,7 +209,7 @@ public class AuthCodeServiceImpl implements AuthCodeService {
if (count.equals(99)) {
// a、不需要拼图验证
// b、本应需要拼图验证,但是在调用获取拼图数据接口时报错了,也直接去发送短信
return;
return needCheck;
}
}
......@@ -239,6 +244,7 @@ public class AuthCodeServiceImpl implements AuthCodeService {
}
}
return needCheck;
}
/**
......@@ -260,13 +266,13 @@ public class AuthCodeServiceImpl implements AuthCodeService {
// 调用风控服务,是否需要触发拼图验证
BaseRequest req = new BaseRequest();
req.setMobile(mobile);
Boolean need = this.rcValidate(request, req, "{}", sourceType);
int needCheck = this.rcValidate(request, req, "{}", sourceType);
// 调用proof服务获取拼图数据
JigsawCodeModel data = new JigsawCodeModel();
PicaResponse picResp = null;
String key = Constants.JIGSAW_CODE_KEY.replace("{mobile}", mobile);
if (need) {
if (needCheck > 0) {
try {
picResp = sliderImageService.getPic();
logger.info("getJigsawCode-getPic-code:{}", picResp.getCode());
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册