0.文档
[官方文档](https://faceid.com/pages/documents)
1.application
server:
port: 80
megvii:
appKey: XXX
secret: XXX
returnUrl: https://www.pilipili.com/
notifyUrl: https://www.pilipili.com/
webTitle: 代码生涯
2.dto
@Data
@Builder
public class H5GetResultDTO {
@ApiModelProperty(value = "调用此API的api_key", required = true)
private String api_key;
@ApiModelProperty(value = "调用此API的api_key的secret", required = true)
private String api_secret;
@ApiModelProperty(value = "通过 get_token, notify_url 或者 return_url 返回的活体业务编号。",required = true)
private String biz_id;
@ApiModelProperty(value = "是否返回活体图像数据:\n" +
"0(默认):不需要图像\n" +
"1:需要返回最佳活体质量图(image_best,当procedure_type为\"video\",\"still\"或\"flash\"时有效)\n" +
"2:需要返回身份证人像面图像\n" +
"3:需要返回身份证国徽面图像\n" +
"4:需要返回所有图像\n" +
"5:需要返回正脸自拍照片(仅当procedure_type为selfie时有效)\n" +
"6:需要返回侧脸自拍照片(仅当procedure_type为selfie时有效)", required = true)
private String return_image;
}
@Data
@Builder
public class H5GetTokenDTO {
@ApiModelProperty("调用此API的api_key")
private String api_key;
@ApiModelProperty("调用此API的api_key的secret")
private String api_secret;
@ApiModelProperty("用户完成或取消验证后网页跳转的目标URL")
private String return_url;
@ApiModelProperty("用户完成验证、取消验证、或验证超时后,由FaceID服务器请求客户服务器的URL。")
private String notify_url;
@ApiModelProperty("客户业务流水号,该号必须唯一。并会在notify和return时原封不动的返回给您的服务器,以帮助您确认每一笔业务的归属。")
private String biz_no;
@ApiModelProperty("验证网页展示用的标题文字,此参数默认为空,此时系统将采用默认的标题。")
private String web_title;
@ApiModelProperty("设定本次服务的类型,目前支持的比对类型为“KYC验证”(取值“1”)或“人脸比对”(取值“0”)。传递其他值调用将识别,返回错误码400(BAD_ARGUMENTS)。\n" +
"“1”表示KYC验证,表示最终的用户自拍照片将于参考照片比对。\n" +
"“0”表示人脸比对,FaceID将使用用户自己提供的照片(参数image_ref[x])作为比对人脸照。\n" +
"请注意:\n" +
"本参数影响验证流程中是否存在身份证拍摄环节:如果为“1”,则可选择包含身份证拍摄;如果为“0”,验证流程中将没有身份证拍摄。\n" +
"本参数取什么值将决定下面“二选一”参数组使用哪一组参数。")
private String comparison_type;
@ApiModelProperty("传递参数“0”,“1”,“2”,“3”或“4”,表示获取用户身份证信息的方法。传递其他值调用将识别,返回错误码400(BAD_ARGUMENTS)。\n" +
"0:不拍摄身份证,而是通过 idcard_name / idcard_number 参数传入;\n" +
"1:仅拍摄身份证人像面,可获取人像面所有信息;\n" +
"2:拍摄身份证人像面和身份证国徽面,可获取身份证所有信息;\n" +
"3:不拍摄身份证,但会要求用户在界面上输入身份证号和姓名;\n" +
"4:拍摄身份证人像面或用户输入身份证号和姓名,用户可在界面上自行选择身份证录入方法。注意:该参数只有在控制台中选择使用“浅色主题”时才生效,若未应用浅色主题而传入4,则返回错误码400(BAD_ARGUMENTS)。")
private String idcard_mode;
@ApiModelProperty("idcard_name, 需要KYC验证对象的姓名,使用UTF-8编码;")
private String idcard_name;
@ApiModelProperty("idcard_number, 需要KYC验证对象的身份证号,也就是一个18位长度的字符串。")
private String idcard_number;
}
@Data
@ConfigurationProperties(prefix = "megvii")
@Component
public class MegviiProperties {
private String secret;
private String appKey;
private String returnUrl;
private String notifyUrl;
private String webTitle;
}
3.constant
@Data
public class MsgResult<T> implements Serializable {
public static final String CODE_SUCCESS = "0";
public static final String MESSAGE_SUCCESS = "success";
@ApiModelProperty("状态码,0成功非0失败")
private String code;
@ApiModelProperty("状态码描述,0success非0失败原因")
private String message;
@ApiModelProperty("返回数据")
private T data;
private MsgResult(String code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public static MsgResult success() {
return new MsgResult(CODE_SUCCESS, MESSAGE_SUCCESS, null);
}
public static <T> MsgResult success(T data) {
return new MsgResult(CODE_SUCCESS, MESSAGE_SUCCESS, data);
}
public static <T> MsgResult success(T data, String message) {
return new MsgResult(CODE_SUCCESS, message, data);
}
public static MsgResult error(ErrorCode errorCode, String appendMessage) {
String message = String.format(errorCode.getMessage(), appendMessage == null ? "" : appendMessage);
return new MsgResult(errorCode.getCode(), message, null);
}
public static