云服务器内容精选

  • 步骤3:获取示例代码 获取人脸检测SDK示例代码。 登录 API Explorer ,在“代码示例”中选择“Python”。 填写请求Body参数。输入数据填写uuid、verification_name、verification_id uuid:唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e verification_name:被验证人的姓名 verification_id:被验证人的身份证号码 复制代码示例至PyCharm中。
  • 步骤4:调用服务 在Postman中新建一个请求,请求方式为选择"POST",按要求填写URL。 人证核身 证件版(二要素)API的URL为“https://ivs.cn-north-4.myhuaweicloud.com/v2.0/ivs-idcard-extention”。 选中“Headers”配置项,KEY、VALUE按下图进行填写,并复制步骤3中获取的Token值到“X-Auth-Token”的“VALUE”中。 填写接口的Body信息。选中“Body”的配置项,选中“raw”,将下方代码填充至请求体中。 人证核身证件版(二要素)API可用两种方式进行身份校验。详细接口参数介绍请参见API参考。 使用身份证图片进行校验。 使用身份证姓名、身份证号码文本进行校验(本示例使用该方式)。 uuid:唯一标识此次请求的ID,用户自定义,不超过64位。 身份证姓名、身份证号码请按实际填写。 { "meta": { "uuid": "10eb0091-887f-4839-9929-cbc884f1e20e" }, "data": { "req_data": [ { "verification_name": "张三", "verification_id": "44***********07" } ] } } 单击右上角“Send”按钮发送请求,查看识别结果。返回"valid"、"Successful certification",表示身份验证成功。
  • 准备工作 账号已完成实名认证,账号不能处于欠费或冻结状态。 请确认您所使用的是“华为云账号”还是“华为账号”,判断方法请参见如何判断当前使用的是“华为云账号”还是“华为账号”。 如果您已经将“华为云账号”升级为“华为账号”,将无法使用“华为云账号” 获取Token ,此时您需要参考创建 IAM 用户并授权使用IVS创建一个IAM用户用于获取Token。 如果账号未升级,依然可以使用“华为云账号”获取Token。
  • Token认证 需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 关于Token有效期的详细说明请参见获取IAM用户Token(使用密码)。 如果您的华为云账号已升级为华为账号,将不支持获取账号Token。建议为您自己创建一个IAM用户,获取IAM用户的Token。详细说明请参见账密报错。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 username为用户名,domainname为用户所属的账号名称,********为用户登录密码,project name为项目名称。username,domainname和project name的获取方法参见获取用户名、用户ID、项目名称、项目ID。 获取Token的终端节点和project name需与IVS服务终端节点保持一致。当访问华北-北京四的终端节点(即访问https://ivs.cn-north-4.myhuaweicloud.com时),获取Token请使用终端节点https://iam.cn-north-4.myhuaweicloud.com,project name为cn-north-4。 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json Request Body: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //替换为实际用户名 "password": "********", //替换为实际的用户密码 "domain": { "name": "domainname" //替换为实际账号名 } } } }, "scope": { "project": { "name": "project name" //替换为实际的project name,如cn-north-4 } } } } 如下图所示,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。获取Token之后,您就可以使用Token认证调用IVS服务API。
  • 请求示例 使用身份证正、反面图片、人脸视频进行活体人证核验 POST https://{endpoint}/v2.0/ivs-standard { "meta" : { "uuid" : "user_defined" }, "data" : { "req_data" : [ { "idcard_image1" : "/9j/4AAQSkZJRgABAgEASA...", "idcard_image2" : "/9j/4AAAAABQSkZJRgABAg...", "video" : "/9j/4AAQSkZJRgABAgEASABIAAD...", "actions" : "1,3,2", "nod_threshold" : 10 } ] } }
  • 响应示例 状态码: 200 OK { "meta" : { "uuid" : "user_defined" }, "result" : { "service_name" : "ivs-standard", "count" : 1, "resp_data" : [ { "verification_result" : "valid", "verification_message" : "Successful certification", "verification_code" : 1000, "similarity" : "65", "idcard_result" : { "name" : "张三", "sex" : "男", "birth" : "2000-03-06", "ethnicity" : "汉", "address" : "XX省XX市XX区XX街道XX号", "number" : "44***********07", "issue" : "XX省XX市XX区XX派出所", "valid_from" : "2004-08-26", "valid_to" : "2034-08-26" }, "video_result" : { "alive" : true, "actions" : [ { "confidence" : 0.823, "action" : 1 }, { "confidence" : 0.823, "action" : 3 }, { "confidence" : 0.823, "action" : 2 } ], "picture" : "/9j/4AAQSkZJRgABAQEAYABgAAD/2w..." } } ] } } 状态码: 400 失败响应样例 { "error_code" : "IVS.0003", "error_msg" : "Some necessary request parameters in req_data is null." }
  • 响应参数 状态码: 200 表6 响应Body参数 参数 参数类型 描述 meta Meta object 请求元数据,例如表征本次请求的唯一标注uuid。 result result object 调用返回结果。 表7 Meta 参数 参数类型 描述 uuid String 唯一标识此次请求的ID,用户自定义,不超过64位。 表8 result 参数 参数类型 描述 service_name String 子服务名称。 count Integer 执行检测的数量,与resp_data字段对应。 resp_data Array of RespDataByVideoAndIdCardImage objects 请求列表,用于支持批量调用。目前暂时只支持单个数据查询。 表9 RespDataByVideoAndIdCardImage 参数 参数类型 描述 verification_result String 审核校验结果: "valid"表示身份审核通过; "invalid"表示身份审核不通过; "nonexistent"表示数据源没有该身份证号码,这种情况一般是被验证人正在办理户籍迁移,或者被验证人是军人或政要。 verification_message String 审核校验信息,具体参考校验信息说明 verification_code Integer 审核校验代码,具体参考校验信息说明 similarity String 人像相识度。取值范围[0,100],当入参detail为true时,取值范围为[0,1000]。 idcard_result IdcardResult object 身份证图像的 文字识别 结果,具体参见IdcardResult。 video_result VideoResult object 动作活体检测的检测结果。 表10 IdcardResult 参数 参数类型 描述 name String 身份证上识别的名称。 number String 身份证号。 sex String 性别。 birth String 出生日期。 ethnicity String 民族。 address String 地址。 issue String 发证机关。 valid_from String 有效起始日期。 valid_to String 有效结束日期。 表11 VideoResult 参数 参数类型 描述 alive Boolean 是否是活体。 actions Array of ActionsList objects 动作列表。 picture String 检测出最大人脸的图片base64。 表12 ActionsList 参数 参数类型 描述 confidence Double 置信度,取值范围0~1。 action Integer 动作编号,取值范围:[1,2,3,4],其中: 1:左摇头 2:右摇头 3:点头 4:嘴部动作 状态码: 400 表13 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码,具体请参考错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String X-Auth-Token值获取方法请参见认证鉴权。 Enterprise-Project-Id 否 String 企业项目ID。IVS支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。 获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。 企业项目创建步骤请参见用户指南。 说明: 说明: 创建企业项目后,在传参时,有以下三类场景。 携带正确的ID,正常使用IVS服务,账单的企业项目会被分类到企业ID对应的企业项目中。 携带格式正确但不存在的ID,正常使用IVS服务,账单的企业项目会显示对应不存在的企业项目ID。 不携带ID或格式错误ID(包含特殊字符等),正常使用IVS服务,账单的企业项目会被分类到"default"中。 表2 请求Body参数 参数 是否必选 参数类型 描述 meta 是 Meta object 请求元数据,例如表征本次请求的唯一标注uuid。 data 是 data object 请求消息的数据部分。 表3 Meta 参数 是否必选 参数类型 描述 uuid 否 String 唯一标识此次请求的ID,用户自定义,不超过64位。 表4 data 参数 是否必选 参数类型 描述 req_data 否 Array of ReqDataByVideoAndIdCardImage objects 请求列表,用于支持批量调用。目前暂时只支持单个数据查询。 表5 ReqDataByVideoAndIdCardImage 参数 是否必选 参数类型 描述 idcard_image1 是 String 身份证人像面图像数据,使用base64编码,要求base64编码后大小不超过4M。图像各边的像素大小在300到4000之间,支持JPG格式。 idcard_image2 否 String 身份证国徽面图像数据,使用base64编码,要求base64编码后大小不超过4M。图像各边的像素大小在300到4000之间,支持JPG格式。 video 是 String 现场拍摄人像视频数据,使用base64编码。 视频文件大小不超过8MB,建议客户端压缩到200KB~2MB。要求base64编码后大小不超过10M。 限制视频时长1~15秒。 建议帧率10fps~30fps。 封装格式:mp4、avi、flv、webm、asf、mov。 视频编码格式:h261、h263、h264、hevc、vc1、vp8、vp9、wmv3。 actions 是 String 动作代码顺序列表,英文逗号(,)分隔。建议单动作,目前支持的动作有: 1:左摇头 2:右摇头 3:点头 4:嘴部动作 嘴部动作建议嘴唇距离大于3厘米,左右摇头动作建议角度15-30度。 nod_threshold 否 Double 该参数为点头动作幅度的判断门限,取值范围:[1,90],默认为10,单位为度。该值设置越大,则越难判断为点头。 detail 否 Boolean 响应参数similarity是否详细显示,默认为false。 true表示响应中的similarity为0~1000的小数。 false表示响应中的similarity为0~100的整数。
  • 请求示例 使用身份证姓名、号码进行身份核验 POST https://{endpoint}/v2.0/ivs-idcard-extention { "meta" : { "uuid" : "user_defined" }, "data" : { "req_data" : [ { "verification_name" : "张三", "verification_id" : "44***********07" } ] } }
  • 响应参数 状态码: 200 表6 响应Body参数 参数 参数类型 描述 meta Meta object 请求元数据,例如表征本次请求的唯一标注uuid。 result result object 调用返回结果。 表7 Meta 参数 参数类型 描述 uuid String 唯一标识此次请求的ID,用户自定义,不超过64位。 表8 result 参数 参数类型 描述 service_name String 子服务名称。 count Integer 执行检测的数量,与resp_data字段对应。 resp_data Array of ExtentionRespDataByNameAndId objects 请求列表,用于支持批量调用。目前暂时只支持单个数据查询。 表9 ExtentionRespDataByNameAndId 参数 参数类型 描述 verification_result String 审核校验结果: "valid"表示身份审核通过; "invalid"表示身份审核不通过; "nonexistent"表示数据源没有该身份证号码,这种情况一般是被验证人正在办理户籍迁移,或者被验证人是军人或政要。 verification_message String 审核校验信息,具体参考校验信息说明 verification_code Integer 审核校验代码,具体参考校验信息说明 状态码: 400 表10 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码,具体请参考错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 响应示例 状态码: 200 OK { "meta" : { "uuid" : "user_defined" }, "result" : { "service_name" : "ivs-idcard-extention", "count" : 1, "resp_data" : [ { "verification_result" : "valid", "verification_message" : "Successful certification", "verification_code" : 1000 } ] } } 状态码: 400 失败响应样例 { "error_code" : "IVS.0003", "error_msg" : "Some necessary request parameters in req_data is null." }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String X-Auth-Token值获取方法请参见认证鉴权。 Enterprise-Project-Id 否 String 企业项目ID。IVS支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。 获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。 企业项目创建步骤请参见用户指南。 说明: 说明: 创建企业项目后,在传参时,有以下三类场景。 携带正确的ID,正常使用IVS服务,账单的企业项目会被分类到企业ID对应的企业项目中。 携带格式正确但不存在的ID,正常使用IVS服务,账单的企业项目会显示对应不存在的企业项目ID。 不携带ID或格式错误ID(包含特殊字符等),正常使用IVS服务,账单的企业项目会被分类到"default"中。 表2 请求Body参数 参数 是否必选 参数类型 描述 meta 是 Meta object 请求元数据,例如表征本次请求的唯一标注uuid。 data 是 data object 请求消息的数据部分。 表3 Meta 参数 是否必选 参数类型 描述 uuid 否 String 唯一标识此次请求的ID,用户自定义,不超过64位。 表4 data 参数 是否必选 参数类型 描述 req_data 否 Array of ExtentionReqDataByNameAndId objects 请求列表,用于支持批量调用。目前暂时只支持单个数据查询。 表5 ExtentionReqDataByNameAndId 参数 是否必选 参数类型 描述 verification_name 是 String 被验证人的姓名。 verification_id 是 String 被验证人的身份证号码。
  • 错误码说明 表1 错误码 状态码 错误码 错误信息 说明 处理措施 400 IVS.0001 Request parameter meta is null or empty. 请求体参数为null或空。 请参考API文档填写请求Body信息,并检查请求body格式是否正确。 400 IVS.0002 Request parameter req_data is redundant. 请求体参数冗余,req_data的元素数量大于1。 req_data列表中当前仅支持1个元素。 400 IVS.0003 Some necessary request parameters in req_data is null. 请求参数有一些必要的参数为null。 请参考API文档填写必要的参数后重试。 400 IVS.0004 Image base64 size is more than 4MB or less than 10KB. 图像的base64数据量大于4MB或小于10KB。 要求base64编码后大小不超过4MB。图像各边的像素大小在300到8000px之间。 400 IVS.0005 Video base 64 size is more than 10MB or less than 10KB. 视频的base 64数据量大于10MB或小于10KB。 要求base 64编码后大小不超过10MB。建议客户端压缩至200KB至2MB。 400 IVS.0006 The input face image is invalid. 输入的人脸图像不合法。 要求base64编码后大小不超过4MB。图像各边的像素大小在300到4000px之间,支持JPG格式。 400 IVS.0007 Id card image error: %s. Please try another image. 输入的身份证图像错误,请换张图像重试。 请检查身份证图片是否正常,图片中文字清晰,并根据具体错误信息更换图片。 400 IVS.0008 live detect error: %s. Please check your input. 活体检测失败,请检查输入。 请检查视频是否正常,视频中的人的头部和脸部符合动作要求,并根据具体错误信息更换视频或修改动作列表。 400 IVS.0009 face detect error: %s. Please check your input. 人脸检测失败,请检查输入。 请检查人脸图片是否正常,图片中有清晰的人脸,并根据具体错误信息更换图片。 400 IVS.0010 face compare error: %s. Please check your input. 人脸比对失败,请检查输入。 请检查输入图片base64中是否包含人脸。 400 IVS.0011 The request param has wrong format, the length of %s exceeds %s bytes. The request param has wrong format, error in parsing %s, %s type expected. The request param has wrong format, %s is null or empty. The request param has wrong format, verification_name contain invalid characters. The request param has wrong format, verification_id length must equal 15 or 18. The request param has wrong format, verification_id is invalid. 请求参数格式错误,参数长度超出范围。 请求参数格式错误,解析参数出现错误。 请求参数格式错误,参数的值为null或空。 请求参数格式错误,verification_name 包含了无效字符。 请求参数格式错误,verification_id长度需为15位或18位。 请求参数格式错误,verification_id无效。 请将参数长度设置在相应范围内。 请参考API文档,修改对应参数的类型。 请检查参数名是否填写正确,以及参数名对应的值是否有填写。 请检查verification_name是否为有效的姓名。 请检查verification_id的长度。 请检查verification_id是否为有效的身份证号码。 400 IVS.0012 Lack Header or Header Content-Type is empty. 缺少请求头或请求头为空。 请参考API文档填写请求头。 400 IVS.0013 The authentication token is abnormal. Token异常。 请参考认证鉴权重新获取Token。 400 IVS.0014 The service has been frozen. 服务已冻结。 请检查是否有欠费。 400 IVS.0015 The subservice has not been subscribed. 服务未开通。 请登录控制台开通人证核身服务。 已开通情况下,检查服务的开通区域和调用API时,url中填写的区域是否一致。 500 IVS.0101 Service inner error. 服务内部错误。 请联系华为云支持人员。 当您调用API时,如果遇到“APIGW”,“APIG”开头的错误码,请参见API网关错误码进行处理。
  • 调用API获取项目ID 获取项目ID的接口为“GET https://{endpoint}/v3/projects”,其中“{endpoint}”为IAM的终端节点。接口的认证鉴权请参见认证鉴权。 响应示例如下,例如,人证核身服务部署的区域为“cn-north-4”,响应消息体中查找“name”为“cn-north-4”,其中“projects”下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22https://support-intl.huaweicloud.com/zh-cn/devg-apisign/api-sign-provide.htmlcd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 响应示例 状态码: 200 OK { "meta" : { "uuid" : "user_defined" }, "result" : { "service_name" : "ivs-standard", "count" : 1, "resp_data" : [ { "verification_result" : "valid", "verification_message" : "Successful certification", "verification_code" : 1000, "similarity" : "65", "idcard_result" : { "name" : "张三", "sex" : "男", "birth" : "2000-03-06", "ethnicity" : "汉", "address" : "XX省XX市XX区XX街道XX号", "number" : "44***********07", "issue" : "XX省XX市XX区XX派出所", "valid_from" : "2004-08-26", "valid_to" : "2034-08-26" } } ] } } 状态码: 400 失败响应样例 { "error_code" : "IVS.0003", "error_msg" : "Some necessary request parameters in req_data is null." }