Commit b0013bb1 authored by 王亮's avatar 王亮

temp commit(geetest)

parent 186ccd2e
...@@ -19,7 +19,7 @@ public class BehaviorReq { ...@@ -19,7 +19,7 @@ public class BehaviorReq {
* 0:h5,1:web,2:app * 0:h5,1:web,2:app
* @see ClientType * @see ClientType
*/ */
private String clientType; private Integer clientType;
/** /**
* 0:账密,1:短验; * 0:账密,1:短验;
......
...@@ -9,7 +9,7 @@ import lombok.Data; ...@@ -9,7 +9,7 @@ import lombok.Data;
@Data @Data
public class BehaviorCodeBean { public class BehaviorCodeBean {
/** /**
* 0:极验,1: 量化派图形验证码 * 1:极验,2: 量化派图形验证码
* 当客户端给的是极验,但是由于极验不可用的时候,会返回降级量化派图形验证码 * 当客户端给的是极验,但是由于极验不可用的时候,会返回降级量化派图形验证码
*/ */
private Integer type; private Integer type;
...@@ -24,7 +24,23 @@ public class BehaviorCodeBean { ...@@ -24,7 +24,23 @@ public class BehaviorCodeBean {
} }
@Data @Data
@Builder
public static class GeetestCode{ public static class GeetestCode{
/**
* 流水号,一次完整验证流程的唯一标识
*/
private String challenge;
/**
* 向极验申请的账号id
*/
private String gt;
private String reChallenge;
/**
* 新版验证码标识,固定不变
*/
private boolean newCaptcha;
private boolean offline;
} }
} }
...@@ -33,7 +33,7 @@ public enum ClientType { ...@@ -33,7 +33,7 @@ public enum ClientType {
} }
} }
public static ClientType valueByName(Integer code) { public static ClientType valueByCode(Integer code) {
switch (code) { switch (code) {
case 0: case 0:
return H5; return H5;
......
...@@ -3,13 +3,24 @@ package cn.quantgroup.xyqb.service.v2; ...@@ -3,13 +3,24 @@ package cn.quantgroup.xyqb.service.v2;
import cn.quantgroup.xyqb.controller.req.v2.BehaviorReq; import cn.quantgroup.xyqb.controller.req.v2.BehaviorReq;
import cn.quantgroup.xyqb.controller.req.v2.ValidateBehavior; import cn.quantgroup.xyqb.controller.req.v2.ValidateBehavior;
import cn.quantgroup.xyqb.model.BehaviorCodeBean; import cn.quantgroup.xyqb.model.BehaviorCodeBean;
import cn.quantgroup.xyqb.model.ClientType;
import cn.quantgroup.xyqb.service.captcha.IGeetestCaptchaService;
import cn.quantgroup.xyqb.util.PasswordUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Map;
import java.util.UUID;
/** /**
* 极验模式 * 极验模式
*/ */
@Service @Service
public class GeetestBehaviorStrategy implements BehaviorStrategy{ public class GeetestBehaviorStrategy implements BehaviorStrategy {
@Resource
private IGeetestCaptchaService geetestCaptchaService;
@Override @Override
public Integer getType() { public Integer getType() {
return 1; return 1;
...@@ -23,8 +34,21 @@ public class GeetestBehaviorStrategy implements BehaviorStrategy{ ...@@ -23,8 +34,21 @@ public class GeetestBehaviorStrategy implements BehaviorStrategy{
@Override @Override
public BehaviorCodeBean generate(BehaviorReq behaviorReq) { public BehaviorCodeBean generate(BehaviorReq behaviorReq) {
BehaviorCodeBean behaviorCodeBean = new BehaviorCodeBean();
String key = StringUtils.isNotBlank(behaviorReq.getPhone()) ? behaviorReq.getPhone().trim() : UUID.randomUUID().toString();
// key指纹
Map<String, String> imgMap = geetestCaptchaService.fetchGeetestCaptcha(PasswordUtil.MD5(key), behaviorReq.getIp(), ClientType.valueByCode(behaviorReq.getClientType()));
if (imgMap.containsKey("success") && "1".equals(imgMap.get("success"))) {
behaviorCodeBean.setType(1);
behaviorCodeBean.setGeetestCode(BehaviorCodeBean.GeetestCode.builder().gt(imgMap.get("gt"))
.challenge(imgMap.get("challenge"))
.reChallenge(imgMap.get("reChallenge")).
build());
return null; } else {
behaviorCodeBean.setType(2);
}
return behaviorCodeBean;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment