# huaweicloud-IdentifyServiceVerification-python **Repository Path**: HuaweiCloudDeveloper/huaweicloud-identify-service-verification-python ## Basic Information - **Project Name**: huaweicloud-IdentifyServiceVerification-python - **Description**: 该示例展示了如何通过Java版SDK实现人证核身。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-16 - **Last Updated**: 2025-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 人证核身服务代码示例(Java版本) ## 0.版本说明 本示例基于华为云SDK V3.0版本开发 ## 1.简介 华为云提供了人证核身服务端SDK,您可以直接集成服务端SDK来调用人证核身服务的相关API,从而实现对人证核身服务的快速操作。 该示例展示了如何通过Java版SDK实现人证核身。 ## 2.开发前准备 - 已 [注册](https://reg.huaweicloud.com/registerui/cn/register.html?locale=zh-cn#/register) 华为云,并完成 [实名认证](https://account.huaweicloud.com/usercenter/?region=cn-north-4#/accountindex/realNameAuth) 。 - 已订阅人证核身服务。 - 已具备开发环境,支持Java JDK 1.8及其以上版本。 - 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见 [访问密钥](https://support.huaweicloud.com/usermanual-ca/zh-cn_topic_0046606340.html) 。 - 已获取直播服务对应区域的项目ID,请在华为云控制台“我的凭证 > API凭证”页面上查看项目ID。具体请参见 [API凭证](https://support.huaweicloud.com/usermanual-ca/ca_01_0002.html) 。 ## 3.安装SDK 您可以通过Maven配置所依赖的人证核身服务SDK ``` xml com.huaweicloud.sdk huaweicloud-sdk-ivs 3.1.19 ``` ## 4. 开始使用 ### 4.1 导入依赖模块 ```java import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; //ivs sdk import com.huaweicloud.sdk.ivs.v2.region.IvsRegion; import com.huaweicloud.sdk.ivs.v2.*; import com.huaweicloud.sdk.ivs.v2.model.*; ``` ### 4.2 初始化认证信息 ``` java public static ICredential getCredential(String ak, String sk) { return new BasicCredentials() .withAk(ak) .withSk(sk); } ``` 相关参数说明如下所示: - ak:华为云账号Access Key。 - sk:华为云账号Secret Access Key 。 ### 4.3 初始化人证核身服务的客户端 ``` java public static IvsClient getClient(Region region, ICredential auth) { // 初始化人脸识别服务的客户端 return IvsClient.newBuilder() .withCredential(auth) .withRegion(region) // 选择服务所在区域 IvsClient.CN_NORTH_4 .build(); } ``` 相关参数说明如下所示: service region: 服务所在区域,例如: - CN_NORTH_1 北京一 - CN_NORTH_4 北京四 ## 5. SDK demo代码解析 ### 5.1 人证核身标准版(三要素) - 方式一:使用身份证图片、人像图片进行校验 ``` java DetectStandardByIdCardImageRequest imageRequest = new DetectStandardByIdCardImageRequest(); IvsStandardByIdCardImageRequestBody requestBody = new IvsStandardByIdCardImageRequestBody(); Meta meta = new Meta(); meta.setUuid("10eb0091-887f-4839-9929-cbc884f1e20e"); requestBody.withMeta(meta); imageRequest.withBody(requestBody); IvsStandardByIdCardImageRequestBodyData bodyData = new IvsStandardByIdCardImageRequestBodyData(); List byIdCardImages = new ArrayList<>(); ReqDataByIdCardImage idCardImage = new ReqDataByIdCardImage(); idCardImage.withIdcardImage1("/9j/4AAQSkZJRgABAQEAYABgAAD..."); idCardImage.withIdcardImage2("/9j/4AAQSkZJRgABAQEAYABgAAD..."); idCardImage.withFaceImage("/9j/4AAQSkZJRgABAQEAYABgAAD..."); byIdCardImages.add(idCardImage); bodyData.withReqData(byIdCardImages); requestBody.withData(bodyData); try { DetectStandardByIdCardImageResponse response = client.detectStandardByIdCardImage(imageRequest); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } ``` - 方式二:使用身份证姓名、身份证号码文本,人像图片进行校验 ``` java DetectStandardByNameAndIdRequest request = new DetectStandardByNameAndIdRequest(); IvsStandardByNameAndIdRequestBody requestBody = new IvsStandardByNameAndIdRequestBody(); Meta meta = new Meta(); meta.setUuid("10eb0091-887f-4839-9929-cbc884f1e20e"); requestBody.withMeta(meta); IvsStandardByNameAndIdRequestBodyData bodyData = new IvsStandardByNameAndIdRequestBodyData(); List byNameAndIds = new ArrayList<>(); StandardReqDataByNameAndId byNameAndId = new StandardReqDataByNameAndId(); byNameAndId.withFaceImage("/9j/4AAQSkZJRgABAQEAYABgAAD..."); byNameAndId.withVerificationId("61**********1"); byNameAndId.withVerificationName("张三"); byNameAndIds.add(byNameAndId); bodyData.withReqData(byNameAndIds); requestBody.withData(bodyData); request.withBody(requestBody); try { DetectStandardByNameAndIdResponse response = client.detectStandardByNameAndId(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } ``` ### 5.3 人证核身证件版(二要素) - 方式一:使用身份证图片进行校验 ``` java DetectExtentionByIdCardImageRequest imageRequest = new DetectExtentionByIdCardImageRequest(); IvsExtentionByIdCardImageRequestBody requestBody = new IvsExtentionByIdCardImageRequestBody(); Meta meta = new Meta(); meta.setUuid("10eb0091-887f-4839-9929-cbc884f1e20e"); requestBody.withMeta(meta); IvsExtentionByIdCardImageRequestBodyData bodyData = new IvsExtentionByIdCardImageRequestBodyData(); List idCardImages = new ArrayList<>(); ExtentionReqDataByIdCardImage idCardImage = new ExtentionReqDataByIdCardImage(); idCardImage.withIdcardImage1("/9j/4AAQSkZJRgABAQEAYABgAAD..."); idCardImage.withIdcardImage2("/9j/4AAQSkZJRgABAQEAYABgAAD..."); idCardImages.add(idCardImage); bodyData.withReqData(idCardImages); requestBody.withData(bodyData); imageRequest.withBody(requestBody); try { DetectExtentionByIdCardImageResponse response = client.detectExtentionByIdCardImage(imageRequest); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } ``` - 方式二:使用身份证姓名、身份证号码文本进行校验 ``` java DetectExtentionByNameAndIdRequest byNameAndIdRequest = new DetectExtentionByNameAndIdRequest(); IvsExtentionByNameAndIdRequestBody requestBody = new IvsExtentionByNameAndIdRequestBody(); IvsExtentionByNameAndIdRequestBodyData requestBodyData = new IvsExtentionByNameAndIdRequestBodyData(); List extentionReqDataByNameAndIds = new ArrayList<>(); ExtentionReqDataByNameAndId byNameAndId = new ExtentionReqDataByNameAndId(); byNameAndId.setVerificationId("61**********1"); byNameAndId.setVerificationName("张三"); extentionReqDataByNameAndIds.add(byNameAndId); requestBodyData.withReqData(extentionReqDataByNameAndIds); requestBody.withData(requestBodyData); Meta meta = new Meta(); meta.setUuid("uuid"); requestBody.withMeta(meta); byNameAndIdRequest.setBody(requestBody); try { DetectExtentionByNameAndIdResponse response = client.detectExtentionByNameAndId(byNameAndIdRequest); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } ``` ## 6.参考 更多信息请参考[人证核身服务](https://support.huaweicloud.com/ivs/index.html) ## 7.修订记录 | 发布日期 | 文档版本 | 修订说明 | | :--------: | :------: | :----------: | | 2023-03-08 | 1.0 | 文档首次发布 |