|
@@ -6,49 +6,32 @@ package com.ruoyi.common.utils;
|
|
|
* @Describe:
|
|
|
*/
|
|
|
|
|
|
-import cn.hutool.http.HttpRequest;
|
|
|
-import com.alibaba.fastjson2.JSONArray;
|
|
|
-import com.aliyun.cloudauth20190307.Client;
|
|
|
-import com.aliyun.cloudauth20190307.models.*;
|
|
|
-import com.aliyun.teaopenapi.models.Config;
|
|
|
-import com.aliyun.teautil.models.RuntimeOptions;
|
|
|
-
|
|
|
-import java.io.*;
|
|
|
-import java.net.HttpURLConnection;
|
|
|
-import java.net.MalformedURLException;
|
|
|
-import java.net.URL;
|
|
|
-import java.nio.file.Path;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
-
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
+import com.alibaba.fastjson2.JSON;
|
|
|
+import com.alibaba.fastjson2.JSONArray;
|
|
|
+import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.aliyun.cloudauth20190307.Client;
|
|
|
-import com.aliyun.cloudauth20190307.models.*;
|
|
|
+import com.aliyun.cloudauth20190307.models.InitFaceVerifyRequest;
|
|
|
+import com.aliyun.cloudauth20190307.models.InitFaceVerifyResponse;
|
|
|
+import com.aliyun.cloudauth20190307.models.InitFaceVerifyResponseBody;
|
|
|
import com.aliyun.teaopenapi.models.Config;
|
|
|
import com.aliyun.teautil.models.RuntimeOptions;
|
|
|
-import com.ruoyi.common.core.domain.SysUserIdcardVo;
|
|
|
-import com.alibaba.fastjson2.JSON;
|
|
|
-import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
+import com.ruoyi.common.core.domain.SysUserIdcardVo;
|
|
|
import okhttp3.*;
|
|
|
-import org.apache.http.client.HttpClient;
|
|
|
-import org.apache.poi.util.IOUtils;
|
|
|
-import org.springframework.mock.web.MockMultipartFile;
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.crypto.Cipher;
|
|
|
import javax.crypto.spec.SecretKeySpec;
|
|
|
+import java.io.*;
|
|
|
+import java.net.HttpURLConnection;
|
|
|
+import java.net.URL;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.nio.file.Files;
|
|
|
import java.nio.file.Paths;
|
|
|
import java.util.*;
|
|
|
|
|
|
-
|
|
|
-import static com.ruoyi.common.constant.CommonConstants.*;
|
|
|
+import static com.ruoyi.common.constant.CommonConstants.BACK;
|
|
|
+import static com.ruoyi.common.constant.CommonConstants.FRONT;
|
|
|
|
|
|
public class IdCardUtil {
|
|
|
/**
|
|
@@ -738,6 +721,65 @@ public class IdCardUtil {
|
|
|
return resultObject;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 阿里云调用人脸识别H5
|
|
|
+ * 每次开始认证前通过本接口获取CertifyId,用来串联认证请求中的各个接口。
|
|
|
+ */
|
|
|
+ public static InitFaceVerifyResponseBody.InitFaceVerifyResponseBodyResultObject initFaceVerifyH5(SysUserIdcardVo sysUserIdcardVo) {
|
|
|
+ InitFaceVerifyRequest request = new InitFaceVerifyRequest();
|
|
|
+ // 请输入场景ID+L。1000009979场景id固定值
|
|
|
+ request.setSceneId(1000009979L);
|
|
|
+ // 设置商户请求的唯一标识。
|
|
|
+ request.setOuterOrderNo(UUID.randomUUID().toString().replaceAll("-", ""));
|
|
|
+ // 认证方案。
|
|
|
+ request.setProductCode("ID_PRO");
|
|
|
+ // 模式。要进行活体检测的类型。取值:
|
|
|
+ //LIVENESS(默认):眨眼动作活体检测。
|
|
|
+ //
|
|
|
+ //PHOTINUS_LIVENESS:眨眼动作活体+炫彩活体双重检测。
|
|
|
+ //
|
|
|
+ //MULTI_ACTION:多动作活体检测。当前为眨眼+任意摇头检测。
|
|
|
+ request.setModel("PHOTINUS_LIVENESS");
|
|
|
+ //不同证件类型,取值均为IDENTITY_CARD
|
|
|
+ request.setCertType("IDENTITY_CARD");
|
|
|
+ //您的终端用户的真实姓名
|
|
|
+ request.setCertName(sysUserIdcardVo.getRealName());
|
|
|
+ //您的终端用户的证件号码。
|
|
|
+ request.setCertNo(sysUserIdcardVo.getIdCard());
|
|
|
+ // MetaInfo环境参数。
|
|
|
+ request.setMetaInfo(sysUserIdcardVo.getMetaInfo());
|
|
|
+ //业务页面回跳的目标地址。
|
|
|
+ String returnUrl = sysUserIdcardVo.getReturnUrl();
|
|
|
+ if (StringUtils.isNotEmpty(returnUrl)) {
|
|
|
+ //H5的model不一样
|
|
|
+ request.setModel("MULTI_ACTION");
|
|
|
+ request.setReturnUrl(returnUrl);
|
|
|
+ }
|
|
|
+ //request.setMobile("130xxxxxxxx");
|
|
|
+ //request.setIp("114.xxx.xxx.xxx");
|
|
|
+ //request.setUserId("12345xxxx");
|
|
|
+ //request.setCallbackUrl("https://www.aliyundoc.com");
|
|
|
+ //request.setCallbackToken("xxxxx");
|
|
|
+ // 如需开启个人信息加密传输。
|
|
|
+ //request.setEncryptType("SM2");
|
|
|
+ //request.setCertName("BCRD/7ZkNy7Q*****M1BMBezZe8GaYHrLwyJv558w==");
|
|
|
+ //request.setCertNo("BMjsstxK3S4b1YH*****Pet8ECObfxmLN92SLsNg==");
|
|
|
+
|
|
|
+ // 推荐,支持服务路由。
|
|
|
+ InitFaceVerifyResponse response = initFaceVerifyAutoRoute(request);
|
|
|
+
|
|
|
+ // 不支持服务自动路由。
|
|
|
+ //InitFaceVerifyResponse response = initFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
|
|
|
+
|
|
|
+ InitFaceVerifyResponseBody.InitFaceVerifyResponseBodyResultObject resultObject = response.getBody().getResultObject();
|
|
|
+
|
|
|
+ System.out.println(response.getBody().getRequestId());
|
|
|
+ System.out.println(response.getBody().getCode());
|
|
|
+ System.out.println(response.getBody().getMessage());
|
|
|
+ System.out.println(response.getBody().getResultObject() == null ? null
|
|
|
+ : response.getBody().getResultObject().getCertifyId());
|
|
|
+ return resultObject;
|
|
|
+ }
|
|
|
private static InitFaceVerifyResponse initFaceVerifyAutoRoute(InitFaceVerifyRequest request) {
|
|
|
// 第一个为主区域Endpoint,第二个为备区域Endpoint。
|
|
|
List<String> endpoints = Arrays.asList("cloudauth.cn-shanghai.aliyuncs.com", "cloudauth.cn-beijing.aliyuncs.com");
|