From 1cc0d06eb8a2a3a8bd70d51058080d7909f002ae Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Sun, 9 Mar 2025 22:51:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handle/TCheckPhoneAndNameHandle.java | 46 +++++++++++++ .../request/TCheckPhoneAndNameRequest.java | 32 +++++++++ .../Mobile2MetaVerificationController.java | 69 +++++++++++++++++++ .../Mobile3MetaVerificationController.java | 2 +- .../Mobile2MetaVerificationRequest.java | 26 +++++++ 5 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 api-third/src/main/java/com/heyu/api/tencent/handle/TCheckPhoneAndNameHandle.java create mode 100644 api-third/src/main/java/com/heyu/api/tencent/request/TCheckPhoneAndNameRequest.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/mobile/Mobile2MetaVerificationController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/request/mobile/Mobile2MetaVerificationRequest.java diff --git a/api-third/src/main/java/com/heyu/api/tencent/handle/TCheckPhoneAndNameHandle.java b/api-third/src/main/java/com/heyu/api/tencent/handle/TCheckPhoneAndNameHandle.java new file mode 100644 index 0000000..1bc7751 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/tencent/handle/TCheckPhoneAndNameHandle.java @@ -0,0 +1,46 @@ +package com.heyu.api.tencent.handle; + + +import com.heyu.api.data.utils.MobileUtils; +import com.heyu.api.data.utils.StringUtils; +import com.heyu.api.tencent.TencentBaseHandle; +import com.heyu.api.tencent.request.TCheckPhoneAndNameRequest; +import com.tencentcloudapi.faceid.v20180301.FaceidClient; +import com.tencentcloudapi.faceid.v20180301.models.CheckPhoneAndNameRequest; +import com.tencentcloudapi.faceid.v20180301.models.CheckPhoneAndNameResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/*** + * https://console.cloud.tencent.com/api/explorer?Product=faceid&Version=2018-03-01&Action=CheckPhoneAndName + * + * 手机号二要素核验 + */ +@Component +public class TCheckPhoneAndNameHandle extends TencentBaseHandle { + + @Autowired + private FaceidClient client; + + + @Override + public String check(TCheckPhoneAndNameRequest tCheckPhoneAndNameRequest) { + if (StringUtils.isBlank(tCheckPhoneAndNameRequest.getName()) + && StringUtils.isBlank(tCheckPhoneAndNameRequest.getMobile())) { + return "姓名+手机号不能为空"; + } + if (!MobileUtils.validateMobile(tCheckPhoneAndNameRequest.getMobile())) { + return "手机号格式不正确"; + } + return null; + } + + @Override + public CheckPhoneAndNameResponse run(TCheckPhoneAndNameRequest ap) throws Exception { + CheckPhoneAndNameRequest checkPhoneAndNameRequest = new CheckPhoneAndNameRequest(); + checkPhoneAndNameRequest.setName(ap.getName()); + checkPhoneAndNameRequest.setMobile(ap.getMobile()); + checkPhoneAndNameRequest.setEncryption(ap.getEncryption()); + return client.CheckPhoneAndName(checkPhoneAndNameRequest); + } +} diff --git a/api-third/src/main/java/com/heyu/api/tencent/request/TCheckPhoneAndNameRequest.java b/api-third/src/main/java/com/heyu/api/tencent/request/TCheckPhoneAndNameRequest.java new file mode 100644 index 0000000..c8a1061 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/tencent/request/TCheckPhoneAndNameRequest.java @@ -0,0 +1,32 @@ +package com.heyu.api.tencent.request; + + +import com.tencentcloudapi.faceid.v20180301.models.Encryption; +import lombok.Data; + +/*** + * https://console.cloud.tencent.com/api/explorer?Product=faceid&Version=2018-03-01&Action=CheckPhoneAndName + * + * 手机号二要素核验 + */ +@Data +public class TCheckPhoneAndNameRequest { + + /*** + * ⼿机号。 + * 示例值:16137688175 + */ + private String mobile; + + /*** + * 姓名。 + * 示例值:韦小宝 + */ + private String name; + + /*** + * 否 Encryption 敏感数据加密信息。 + * - 对传入信息(姓名、手机号)有加密需求的用户可使用此参数,详情请点击左侧链接。 + */ + private Encryption encryption; +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/mobile/Mobile2MetaVerificationController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/mobile/Mobile2MetaVerificationController.java new file mode 100644 index 0000000..73eecc9 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/mobile/Mobile2MetaVerificationController.java @@ -0,0 +1,69 @@ +package com.heyu.api.controller.certificate.mobile; + +import com.heyu.api.controller.request.mobile.Mobile2MetaVerificationRequest; +import com.heyu.api.controller.resp.mobile.Mobile3MetaVerificationResp; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import com.heyu.api.tencent.handle.TCheckPhoneAndNameHandle; +import com.heyu.api.tencent.request.TCheckPhoneAndNameRequest; +import com.tencentcloudapi.faceid.v20180301.models.CheckPhoneAndNameResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Map; + +/*** + * 手机号二要素核验 + */ +@Slf4j +@RestController +@RequestMapping("/mobile/2/meta") + +@NotIntercept +public class Mobile2MetaVerificationController { + + + public final static Map checkResult = new HashMap<>(); + + + @Autowired + private TCheckPhoneAndNameHandle tCheckPhoneAndNameHandle; + + + @RequestMapping("/verification") + public R verification(Mobile2MetaVerificationRequest request) { + Mobile3MetaVerificationResp resp = new Mobile3MetaVerificationResp("1"); + TCheckPhoneAndNameRequest tPhone3MetaVerificationRequest = new TCheckPhoneAndNameRequest(); + tPhone3MetaVerificationRequest.setMobile(request.getMobile()); + + tPhone3MetaVerificationRequest.setName(request.getRealName()); + + ApiR tR = tCheckPhoneAndNameHandle.handle(tPhone3MetaVerificationRequest); + if (tR.isSuccess()) { + CheckPhoneAndNameResponse response = tR.getData(); + resp.setCheckResult(response.getResult()); + resp.setDesc(checkResult.get(response.getResult())); + resp.setDescription(response.getDescription()); + return R.ok().setData(resp); + + } + return R.error(tR.getErrorMsg()); + } + + + static { + checkResult.put("0", "验证结果一致"); + checkResult.put("1", "验证结果不一致"); + checkResult.put("-1", "查无记录"); + checkResult.put("-2", "引擎未知错误"); + checkResult.put("-3", "引擎服务异常"); + checkResult.put("-4", "姓名校验不通过"); + checkResult.put("-5", "手机号码不合法"); + checkResult.put("-6", " 认证次数超过当日限制,请次日重试"); + } + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/mobile/Mobile3MetaVerificationController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/mobile/Mobile3MetaVerificationController.java index b92609b..3501885 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/mobile/Mobile3MetaVerificationController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/mobile/Mobile3MetaVerificationController.java @@ -17,7 +17,7 @@ import java.util.HashMap; import java.util.Map; /*** - * + *手机号三要素核验 */ @Slf4j @RestController diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/request/mobile/Mobile2MetaVerificationRequest.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/request/mobile/Mobile2MetaVerificationRequest.java new file mode 100644 index 0000000..d702421 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/request/mobile/Mobile2MetaVerificationRequest.java @@ -0,0 +1,26 @@ +package com.heyu.api.controller.request.mobile; + + +import com.heyu.api.data.dto.BaseRequest; +import lombok.Data; + +/*** + * https://console.cloud.tencent.com/api/explorer?Product=faceid&Version=2018-03-01&Action=PhoneVerification + * + * 手机号二要素核验 + */ +@Data +public class Mobile2MetaVerificationRequest extends BaseRequest { + + + /*** + * 手机号 + */ + private String mobile; + + /** + * 真实姓名。 + */ + private String realName; + +}