人脸核身提供服务端SDK帮助您在服务端依据被验证的人名和身份证号码,请求身份验证的用户图像信息。

成为开发者

请您使用阿里云账号登录阿里云视觉智能开放平台。如还未持有阿里云账户,请先注册阿里云账号

开通服务

调用人脸核身的API前,您需要开通人脸人体服务。在进行人脸核身认证时,需要先将图片上传至上海地域的OSS Bucket中生成URL链接,通过图片URL链接传入图片数据。关于如何开通OSS服务请参见开通OSS服务。下面为您介绍如何开通人脸人体服务。

  1. 登录阿里云视觉智能开放平台
  2. 在顶部菜单栏的能力广场中单击人脸人体
  3. 人脸人体页面中单击免费使用
  4. 确认开通地域后单击立即购买
  5. 确认订单步骤中勾选我已阅读并同意人脸人体服务协议后单击立即开通

    页面提示服务开通成功。

    说明

    开通了人脸人体服务后,该服务下的所有API均可以直接调用,不需要再单独开通。

生成URL

  1. 登录OSS管理控制台
  2. 创建存储空间
    创建Bucket选择区域时,需要选择与人脸人体服务能力相同的区域华东2(上海)
    说明 如果您的OSS所在地域不是华东2(上海),那么请参见非上海地域OSS用户(临时文件中转)生成URL。
  3. 将待比对图片上传到OSS服务。
    具体操作请参见上传文件
  4. 查看图片URL。
    在已上传图片列表中,单击详情查看并复制图片URL。

RAM授权

您还需要为您的账户进行RAM授权,以访问相应的阿里云资源。授权操作详情请参见使用RAM Policy控制访问权限

添加依赖包

请根据您的代码选择添加不同的依赖包。
  • Java
    (推荐)在您的Java项目中添加人脸人体服务的POM依赖。
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>4.5.14</version>
    </dependency>
    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>facebody20200910</artifactId>
      <version>2.0.0</version>
    </dependency>
    您也可以下载人脸人体服服务的SDK包直接引用。
    AI类目 SDK包名称 SDK链接 Github链接
    人脸人体 aliyun-java-sdk-facebody Aliyun Java SDK Facebody aliyun-java-sdk-facebody
  • Python
    打开命令提示符窗口,依次执行如下命令安装Python SDK。
    pip install aliyun-python-sdk-core
    pip install alibabacloud-facebody20200910 -i https://mirrors.aliyun.com/pypi/simple/   # 安装人脸人体SDK最新版本。https://mirrors.aliyun.com/pypi/simple/为阿里云镜像,可以加快下载包的速度。

请求示例

请求示例如下:
  • Java请求示例
    说明 请将如下代码示例中的<accessKeyId><accessSecret>替换为您的真实AK信息。如何获取AK请参见创建AccessKey
    import com.aliyun.facebody20200910.models.ExecuteServerSideVerificationRequest;
    import com.aliyun.facebody20200910.models.ExecuteServerSideVerificationResponse;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    import com.google.gson.Gson;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class TestExecuteServerSideVerification {
    
        public static void main(String[] args) {
            try {
                com.aliyun.facebody20200910.Client client = createClient("accessKeyId", "accessKeySecret");
                ExecuteServerSideVerificationRequest request = new ExecuteServerSideVerificationRequest();
                request.setCertificateName("真实姓名");
                request.setCertificateNumber("身份证号");
                request.setFacialPictureUrl("图像URL地址");
                request.setSceneType("server");
                RuntimeOptions runtime = new RuntimeOptions();
                Map<String, String> headers = new HashMap();
                headers.put("Accept-Encoding", "identity");
                ExecuteServerSideVerificationResponse response = client.executeServerSideVerificationWithOptions(request, headers, runtime);
                System.out.println("ExecuteServerSideVerificationResponse response: " + new Gson().toJson(response));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static com.aliyun.facebody20200910.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
            Config config = new Config();
            // 您的AccessKey ID
            config.accessKeyId = accessKeyId;
            // 您的AccessKey Secret
            config.accessKeySecret = accessKeySecret;
            // 访问的域名
            config.endpoint = "facebody.cn-shanghai.aliyuncs.com";
            return new com.aliyun.facebody20200910.Client(config);
        }
    }
  • Python请求示例
    说明 请将如下代码示例中的<accessKeyId><accessSecret>替换为您的真实AK信息。如何获取AK请参见创建AccessKey
    from alibabacloud_facebody20200910.client import Client
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_tea_util.models import RuntimeOptions
    
    from alibabacloud_facebody20200910.models import ExecuteServerSideVerificationRequest
    
    config = Config(
            access_key_id='<accessKeyId>',
            access_key_secret='<accessSecret>',
            endpoint='facebody.cn-shanghai.aliyuncs.com',
            region_id='cn-shanghai',
            type='access_key'
        )
    
    # init RuntimeObject
    runtime_option = RuntimeOptions()
    
    # init Client
    client = Client(config)
    
    
    request = ExecuteServerSideVerificationRequest(
        certificate_name="真实姓名",
        certificate_number="身份证号",
        facial_picture_url="图像URL地址"
    )
    
    
    response = client.execute_server_side_verification_with_options(request, headers={"Accept-Encoding": "identity"}, runtime=runtime_option)
    
    print(response)

结果示例

该接口的请求结果示例如下。
{
    "RequestId": "1638718D-C4BA-4009-845D-AC26CACB8354",
    "Data": {
        "Pass": true,
        "VerificationToken": "f2a6bb31a5a9f04edd68eab08045****",
        "Reason": "认证通过(Z8120)"
    }
}
从返回结果来看,该图片的人脸与人名和身份证号码相匹配,认证通过。具体信息如下:
  • RequestId:请求ID。
  • Pass:验证结果为通过。
  • VerificationToken:验证Token。
  • Reason:认证通过。