文档

SDK调用示例

更新时间:

本文介绍在金融级活体检测方案App接入场景下,如何下载和集成适合不同编程语言的SDK,并调用OpenAPI的示例流程。

服务端需要集成的OpenAPI

说明

    步骤一:开通服务

    在使用金融级实人认证服务之前,您需要开通服务。具体操作,请参见开通金融级实人认证服务

    步骤二:创建RAM用户并授权

    在集成SDK前,您需要创建一个用户调用SDK的用户身份,获取身份关联的OpenAPI访问凭据,并授予访问云上资源的访问权限。如何创建和授权RAM用户,以及如何生成用于调用服务的AccessKey,请参见授权RAM用户访问服务

    步骤三:添加认证场景

    认证场景指您的用户使用金融级实人认证服务完成用户实人认证的不同场景,例如,登录、支付等。您可以添加一个或多个场景,并为不同的场景配置不同的认证方案。调用InitFaceVerify发起认证请求时,需要传输认证场景ID。如何添加认证场景并获取认证场景ID, 请参见添加认证场景

    说明

    在添加认证场景时,您可以授权阿里云访问指定OSS存储空间,用于存储认证的资料图片。具体操作,请参见授权金融级实人认证访问OSS存储空间

    步骤四:集成SDK并编辑写代码

    服务接入点

    目前支持的接入地域如下表所示。

    重要

    建议您参考本文示例代码,配置主备地域Endpoint。在主Endpoint发生故障时可以自动切换到备用Endpoint,保证系统的持续可用性。

    地域

    服务地址

    VPC地址

    全局接入地址

    华东2(上海)

    IPv4:cloudauth.cn-shanghai.aliyuncs.com

    cloudauth-vpc.cn-shanghai.aliyuncs.com

    • IPv4:cloudauth.aliyuncs.com

    • IPv6:cloudauth-dualstack.aliyuncs.com

    IPv6:cloudauth-dualstack.aliyuncs.com

    华北2(北京)

    IPv4:cloudauth.cn-beijing.aliyuncs.com

    cloudauth-vpc.cn-beijing.aliyuncs.com

    IPv6:cloudauth-dualstack.cn-beijing.aliyuncs.com

    SDK安装与源码下载

    您可根据业务实际的技术选型,选择合适的SDK语言进行集成。

    支持语言

    Github源码地址

    SDK下载地址

    Java

    Alibaba Cloud Green SDK for Java

    下载Java SDK

    Python

    Alibaba Cloud Green SDK for Python

    下载Python SDK

    Typescript

    Alibaba Cloud Green SDK for Typescript

    下载TypeScript SDK

    Go

    Alibaba Cloud Green SDK for Go

    下载Go SDK

    PHP

    Alibaba Cloud Green SDK for PHP

    下载PHP SDK

    C#

    Alibaba Cloud Green SDK for C#

    下载C# SDK

    C++

    Alibaba Cloud Green SDK for C++

    下载C++ SDK

    编写代码

    下面以Java语言为例介绍(要求JDK 1.8及以上版本)。

    1. 在pom.xml中添加如下依赖,即可在Maven工程中使用SDK。获取最新版本及其他安装方式信息,请参见下载Java SDK

      • Java SDK依赖

        <dependency>
         <groupId>com.aliyun</groupId>
         <artifactId>cloudauth20190307</artifactId>
         <version>2.1.1</version>
        </dependency>
      • 身份验证依赖。请查看ChangeLog.txt获取所有已发布的版本列表(建议使用最新的版本)。

        <dependency>
           <groupId>com.aliyun</groupId>
           <artifactId>credentials-java</artifactId>
           <version>LATEST</version>
        </dependency>
        说明

        本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见身份验证配置

    2. 示例代码。

      • InitFaceVerify接口调用示例

        import com.aliyun.cloudauth20190307.Client;
        import com.aliyun.cloudauth20190307.models.InitFaceVerifyRequest;
        import com.aliyun.cloudauth20190307.models.InitFaceVerifyResponse;
        import com.aliyun.teaopenapi.models.Config;
        import com.aliyun.teautil.models.RuntimeOptions;
        
        import java.util.Arrays;
        import java.util.List;
        
        public class InitFaceVerify {
        
            public static void main(String[] args) throws Exception {
        
                InitFaceVerifyRequest request = new InitFaceVerifyRequest();
                // 请输入场景ID+L。
                request.setSceneId(0L);
                // 设置商户请求的唯一标识。
                request.setOuterOrderNo("xxxx");
                // 认证方案。
                request.setProductCode("LR_FR");
                request.setUserId("12345xxxx");
                // 模式。
                request.setModel("LIVENESS");
                //request.setCertType("IDENTITY_CARD");
                //request.setCertName("张三");
                //request.setCertNo("xxxx");
                // MetaInfo环境参数。
                request.setMetaInfo("xxxxxx");
                //request.setMobile("130xxxxxxxx");
                //request.setIp("114.xxx.xxx.xxx");
        
                // 推荐,支持服务路由。
                InitFaceVerifyResponse response = initFaceVerifyAutoRoute(request);
        
                // 不支持服务自动路由。
                //InitFaceVerifyResponse response = initFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
        
                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());
            }
        
            private static InitFaceVerifyResponse initFaceVerifyAutoRoute(InitFaceVerifyRequest request) {
                // 第一个为主区域Endpoint,第二个为备区域Endpoint。
                List<String> endpoints = Arrays.asList("cloudauth.cn-shanghai.aliyuncs.com", "cloudauth.cn-beijing.aliyuncs.com");
                InitFaceVerifyResponse lastResponse = null;
                for (int i=0; i<endpoints.size(); i++) {
                    try {
                        InitFaceVerifyResponse response = initFaceVerify(endpoints.get(i), request);
                        lastResponse = response;
        
                        // 服务端错误,切换到下个区域调用。
                        if(response != null){
                            if(500 == response.getStatusCode()){
                                continue;
                            }
                            if(response.getBody() != null){
                                if("500".equals(response.getBody().getCode())){
                                    continue;
                                }
                            }
                        }
        
                        return response;
                    } catch (Exception e) {
                        e.printStackTrace();
                        if(i == endpoints.size()-1){
                            throw new RuntimeException(e);
                        }
                    }
                }
        
                return lastResponse;
            }
        
            private static InitFaceVerifyResponse initFaceVerify(String endpoint, InitFaceVerifyRequest request)
                    throws Exception {
                // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                // 本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见https://help.aliyun.com/document_detail/378657.html。
                com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
                Config config = new Config();
                config.setCredential(credentialClient);
                config.setEndpoint(endpoint);
                // 设置http代理。
                //config.setHttpProxy("http://xx.xx.xx.xx:xxxx");
                // 设置https代理。
                //config.setHttpsProxy("https://xx.xx.xx.xx:xxxx");
                Client client = new Client(config);
        
                // 创建RuntimeObject实例并设置运行参数。
                RuntimeOptions runtime = new RuntimeOptions();
                runtime.readTimeout = 10000;
                runtime.connectTimeout = 10000;
        
                return client.initFaceVerifyWithOptions(request, runtime);
            }
        }
      • DescribeFaceVerify接口调用示例

        import com.aliyun.cloudauth20190307.Client;
        import com.aliyun.cloudauth20190307.models.DescribeFaceVerifyRequest;
        import com.aliyun.cloudauth20190307.models.DescribeFaceVerifyResponse;
        import com.aliyun.teaopenapi.models.Config;
        import com.aliyun.teautil.models.RuntimeOptions;
        
        import java.util.Arrays;
        import java.util.List;
        
        public class DescribeFaceVerify {
            public static void main(String[] args) throws Exception {
        
                // 通过以下代码创建API请求并设置参数。
                DescribeFaceVerifyRequest request = new DescribeFaceVerifyRequest();
                // 请输入场景ID+L。
                request.setSceneId(0L);
        
                request.setCertifyId("xxxx");
        
                // 推荐,支持服务路由。
                DescribeFaceVerifyResponse response = describeFaceVerifyAutoRoute(request);
        
                // 不支持服务自动路由。
                //DescribeFaceVerifyResponse response = describeFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
        
                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().getPassed());
                System.out.println(
                        response.getBody().getResultObject() == null ? null : response.getBody().getResultObject().getSubCode());
                System.out.println(
                        response.getBody().getResultObject() == null ? null
                                : response.getBody().getResultObject().getIdentityInfo());
                System.out.println(
                        response.getBody().getResultObject() == null ? null
                                : response.getBody().getResultObject().getDeviceToken());
                System.out.println(
                        response.getBody().getResultObject() == null ? null
                                : response.getBody().getResultObject().getMaterialInfo());
            }
        
            private static DescribeFaceVerifyResponse describeFaceVerifyAutoRoute(DescribeFaceVerifyRequest request) {
                // 第一个为主区域Endpoint,第二个为备区域Endpoint。
                List<String> endpoints = Arrays.asList("cloudauth.cn-shanghai.aliyuncs.com", "cloudauth.cn-beijing.aliyuncs.com");
                DescribeFaceVerifyResponse lastResponse = null;
                for (int i=0; i<endpoints.size(); i++) {
                    try {
                        DescribeFaceVerifyResponse response = describeFaceVerify(endpoints.get(i), request);
                        lastResponse = response;
        
                        // 服务端错误,切换到下个区域调用。
                        if(response != null){
                            if(500 == response.getStatusCode()){
                                continue;
                            }
                            if(response.getBody() != null){
                                if("500".equals(response.getBody().getCode())){
                                    continue;
                                }
                            }
                        }
        
                        return response;
                    } catch (Exception e) {
                        e.printStackTrace();
                        if(i == endpoints.size()-1){
                            throw new RuntimeException(e);
                        }
                    }
                }
        
                return lastResponse;
            }
        
            private static DescribeFaceVerifyResponse describeFaceVerify(String endpoint, DescribeFaceVerifyRequest request)
                    throws Exception {
                // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见https://help.aliyun.com/document_detail/378657.html。
                com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
                Config config = new Config();
                config.setCredential(credentialClient);
                config.setEndpoint(endpoint);
                // 设置http代理。
                //config.setHttpProxy("http://xx.xx.xx.xx:xxxx");
                // 设置https代理。
                //config.setHttpsProxy("http://xx.xx.xx.xx:xxxx");
                Client client = new Client(config);
        
                // 创建RuntimeObject实例并设置运行参数。
                RuntimeOptions runtime = new RuntimeOptions();
                runtime.readTimeout = 10000;
                runtime.connectTimeout = 10000;
        
                return client.describeFaceVerifyWithOptions(request, runtime);
            }
        
        }

    其他语言调用示例

    PHP

    InitFaceVerify接口调用示例

    <?php
    namespace AlibabaCloud\SDK\Sample\Verify\LRFR;
    
    use AlibabaCloud\Credentials\Credential;
    use AlibabaCloud\SDK\Cloudauth\V20190307\Cloudauth;
    use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyRequest;
    use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyResponse;
    use AlibabaCloud\Tea\Utils\Utils;
    use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
    use Exception;
    
    use Darabonba\OpenApi\Models\Config;
    
    class InitFaceVerify
    {
    
        /**
         * createClient
         * @param string $endpoint
         * @return Cloudauth
         */
        public static function createClient(string $endpoint): Cloudauth
        {
            // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            // 本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见 https://help.aliyun.com/document_detail/311677.html。 
            $credential = new Credential([]);
            $config = new Config([
    			  // 使用credential配置凭证
        		    "credential" => $credential,
                // 设置HTTP代理。
                // "httpProxy" => "<http://xx.xx.xx.xx:xxxx>",
                // 设置HTTPS代理
                // "httpsProxy" => "<https://xx.xx.xx.xx:xxxx>",
                "endpoint" => $endpoint
    
            ]);
            return new Cloudauth($config);
        }
    
        /**
         * main
         * @return void
         * @throws Exception
         */
        public static function main()
        {
            $request = new InitFaceVerifyRequest([
                // 请输入场景ID。
                "sceneId" => 0,
                "outerOrderNo" => "<商户请求的唯一标识>",
                // 要接入的认证方案。
                "productCode" => "<LR_FR>",
                // 要进行活体检测的类型。
                "model" => "<LIVENESS>",
                "userId" => "<xxx>",
                "certType" => "<IDENTITY_CARD>",
                // "certName" => "<张三>",
                // "certNo" => "<xxx>",
                // MetaInfo环境参数,需要通过客户端SDK获取。
                "metaInfo" => '{"zimVer":"3.0.0","appVersion": "1","bioMetaInfo": "4.1.0:11501568,0", "appName": "com.aliyun.antcloudauth","deviceType": "ios","osVersion": "iOS 10.3.2","apdidToken": "","deviceModel": "iPhone9,1"}',
                // "mobile" => "<xxx>",
                // "ip" => "<114.xxx.xxx.xxx>",
                // "callbackUrl" => "<https://www.aliyundoc.com>",
                // "callbackToken" => "<xxxxxxx>"
            ]);
            // 推荐,支持服务路由。
            $response = self::initFaceVerifyAutoRoute($request);
            // 不支持服务自动路由。
            // $response = self::initFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", $request);
            var_dump($response->body->requestId);
            var_dump($response->body->code);
            var_dump($response->body->message);
            var_dump($response->body->resultObject->certifyId);
        }
    
        /**
         * initFaceVerifyAutoRoute
         * @param InitFaceVerifyRequest $request
         * @return InitFaceVerifyResponse|null
         */
        public static function initFaceVerifyAutoRoute(InitFaceVerifyRequest $request): ?InitFaceVerifyResponse
        {
            $endpoints = [
                "cloudauth.cn-shanghai.aliyuncs.com",
                "cloudauth.cn-beijing.aliyuncs.com"
            ];
            foreach ($endpoints as $endpoint) {
                try {
                    $response = self::initFaceVerify($endpoint, $request);
                    if (Utils::equalNumber(500, $response->statusCode)) {
                        continue;
                    }
                    if(Utils::equalString("500", $response->body->code)){
                        continue;
                    }
                    return $response;
                } catch (Exception $err) {
                    var_dump($err -> getCode());
                    var_dump($err -> getMessage());
                }
            }
            return null;
        }
    
        /**
         * initFaceVerify
         * @param string $endpoint
         * @param InitFaceVerifyRequest $request
         * @return InitFaceVerifyResponse
         */
        public static function initFaceVerify(string $endpoint, InitFaceVerifyRequest $request): InitFaceVerifyResponse
        {
            $client = self::createClient($endpoint);
            // 创建RuntimeObject实例并设置运行参数。
            $runtime = new RuntimeOptions([]);
            $runtime->readTimeout = 10000;
            $runtime->connectTimeout = 10000;
            return $client->initFaceVerifyWithOptions($request, $runtime);
        }
    }
    
    $path = __DIR__ . \DIRECTORY_SEPARATOR . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
    if (file_exists($path)) {
        require_once $path;
    }
    InitFaceVerify::main();

    DescribeFaceVerify接口调用示例

    <?php
    
    namespace AlibabaCloud\SDK\Sample\Verify\LRFR;
    
    use AlibabaCloud\Credentials\Credential;
    use AlibabaCloud\SDK\Cloudauth\V20190307\Cloudauth;
    use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyRequest;
    use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyResponse;
    use AlibabaCloud\Tea\Utils\Utils;
    use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
    use \Exception;
    
    use Darabonba\OpenApi\Models\Config;
    
    class DescribeFaceVerify {
    
        /**
         * createClient
         * @param string $endpoint
         * @return Cloudauth
         */
        public static function createClient(string $endpoint): Cloudauth
        {
            // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            // 本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见 https://help.aliyun.com/document_detail/311677.html。 
            $credential = new Credential([]);
            $config = new Config([
    			  // 使用credential配置凭证
        		    "credential" => $credential,
                // 设置HTTP代理。
                // "httpProxy" => "<http://xx.xx.xx.xx:xxxx>",
                // 设置HTTPS代理
                // "httpsProxy" => "<https://xx.xx.xx.xx:xxxx>",
                "endpoint" => $endpoint
    
            ]);
            return new Cloudauth($config);
        }
    
        /**
         * main
         * @return void
         */
        public static function main(){
            $request = new DescribeFaceVerifyRequest();
            // 场景ID。
            $request->sceneId=0;
            // 认证ID。
            $request->certifyId="<xxx>";
            // 推荐,支持服务路由。
            $response = self::describeFaceVerifyAutoRoute($request);
            // 不支持服务自动路由。
            // $response = self::describeFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", $request);
            var_dump($response->body->requestId);
            var_dump($response->body->code);
            var_dump($response->body->message);
            var_dump($response->body->resultObject->passed);
            var_dump($response->body->resultObject->subCode);
            var_dump($response->body->resultObject->materialInfo);
            var_dump($response->body->resultObject->identityInfo);
            var_dump($response->body->resultObject->deviceToken);
        }
    
        /**
         * describeFaceVerifyAutoRoute
         * @param DescribeFaceVerifyRequest $request
         * @return DescribeFaceVerifyResponse|null
         */
        public static function describeFaceVerifyAutoRoute(DescribeFaceVerifyRequest $request): ?DescribeFaceVerifyResponse
        {
            $endpoints = [
                "cloudauth.cn-shanghai.aliyuncs.com",
                "cloudauth.cn-beijing.aliyuncs.com"
            ];
            foreach($endpoints as $endpoint){
                try {
                    $response = self::describeFaceVerify($endpoint, $request);
                    if (Utils::equalNumber(500, $response->statusCode)) {
                        continue;
                    }
                    if(Utils::equalString("500", $response->body->code)){
                        continue;
                    }
                    return $response;
                }
                catch (Exception $err) {
                    var_dump($err -> getCode());
                    var_dump($err -> getMessage());
                }
            }
            return null;
        }
    
        /**
         * describeFaceVerify
         * @param string $endpoint
         * @param DescribeFaceVerifyRequest $request
         * @return DescribeFaceVerifyResponse
         */
        public static function describeFaceVerify(string $endpoint, DescribeFaceVerifyRequest $request): DescribeFaceVerifyResponse
        {
            $client = self::createClient($endpoint);
            // 创建RuntimeObject实例并设置运行参数。
            $runtime = new RuntimeOptions([]);
            $runtime->readTimeout = 10000;
            $runtime->connectTimeout = 10000;
            return $client->describeFaceVerifyWithOptions($request, $runtime);
        }
    }
    $path = __DIR__ . \DIRECTORY_SEPARATOR . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
    if (file_exists($path)) {
        require_once $path;
    }
    DescribeFaceVerify::main();

    Python

    InitFaceVerify接口调用示例

    from alibabacloud_cloudauth20190307.client import Client as CloudauthClient
    from alibabacloud_tea_openapi import models as open_api_models
    from alibabacloud_cloudauth20190307 import models as cloudauth_models
    from alibabacloud_tea_util.client import Client as UtilClient
    from alibabacloud_tea_util import models as util_models
    from alibabacloud_credentials.client import Client as CredClient
    
    class InitFaceVerify:
        def __init__(self):
            pass
    
        @staticmethod
        def create_client(
                endpoint: str,
        ) -> CloudauthClient:
            # 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            # 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            # 本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见 https://help.aliyun.com/zh/sdk/developer-reference/configure-credentials。
            cred=CredClient()
            config = open_api_models.Config(
                credential=cred,
                # 设置HTTP代理。
                # http_proxy='http://xx.xx.xx.xx:xxxx',
                # 设置HTTPS代理。
                # https_proxy='https://username:password@xxx.xxx.xxx.xxx:9999',
                endpoint=endpoint
            )
            return CloudauthClient(config)
    
        @staticmethod
        def main() -> None:
            request = cloudauth_models.InitFaceVerifyRequest(
                # 请输入场景ID。
                scene_id=0,
                outer_order_no='商户请求的唯一标识',
                # 要接入的认证方案。
                product_code='LR_FR',
                model='LIVENESS',
                # 固定值IDENTITY_CARD。
                cert_type='IDENTITY_CARD',
                meta_info='{"zimVer":"3.0.0","appVersion": "1","bioMetaInfo": "4.1.0:11501568,0","appName":"com.aliyun.antcloudauth","deviceType": "ios","osVersion": "iOS 10.3.2","apdidToken": "","deviceModel": "iPhone9,1"}',
                # cert_name='xxx',
                # cert_no='xxx',
                # mobile='130xxxxxxxx',
                # ip='114.xxx.xxx.xxx',
                user_id='12345xxxx',
                # callback_url='https://www.aliyundoc.com',
                # callback_token='xxxxxxx'
            )
            response = InitFaceVerify.init_face_verify_auto_route(request)
            # 不支持服务自动路由。
            # response = InitFaceVerify.init_face_verify('cloudauth.cn-shanghai.aliyuncs.com', request)
            print(response.body.request_id)
            print(response.body.code)
            print(response.body.message)
            print(response.body.result_object.certify_id)
    
        @staticmethod
        def init_face_verify_auto_route(
                request: cloudauth_models.InitFaceVerifyRequest,
        ) -> cloudauth_models.InitFaceVerifyResponse:
            endpoints = [
                'cloudauth.cn-shanghai.aliyuncs.com',
                'cloudauth.cn-beijing.aliyuncs.com'
            ]
            for endpoint in endpoints:
                try:
                    response = InitFaceVerify.init_face_verify(endpoint, request)
                    if UtilClient.equal_number(500, response.status_code):
                        continue
                    if response is not None and response.body is not None:
                        if UtilClient.equal_string("500", response.body.code):
                            continue
                    return response
                except Exception as err:
                    # 网络异常,切换到下个区域调用。
                    continue
            return None
    
        @staticmethod
        def init_face_verify(
                endpoint: str,
                request: cloudauth_models.InitFaceVerifyRequest,
        ) -> cloudauth_models.InitFaceVerifyResponse:
            client = InitFaceVerify.create_client(endpoint)
            # 创建RuntimeObject实例并设置运行参数。
            runtime = util_models.RuntimeOptions()
            runtime.read_timeout = 10000
            runtime.connect_timeout = 10000
            return client.init_face_verify_with_options(request, runtime)
    
    
    if __name__ == '__main__':
        InitFaceVerify.main()

    DescribeFaceVerify接口调用示例

    from alibabacloud_cloudauth20190307.client import Client as CloudauthClient
    from alibabacloud_tea_openapi import models as open_api_models
    from alibabacloud_cloudauth20190307 import models as cloudauth_models
    from alibabacloud_tea_util.client import Client as UtilClient
    from alibabacloud_tea_util import models as util_models
    from alibabacloud_credentials.client import Client as CredClient
    
    class DescribeFaceVerify:
        def __init__(self):
            pass
    
        @staticmethod
        def create_client(
                endpoint: str,
        ) -> CloudauthClient:
            # 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            # 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            # 本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见 https://help.aliyun.com/zh/sdk/developer-reference/configure-credentials。
            cred=CredClient()
            config = open_api_models.Config(
                credential=cred,
                # 设置HTTP代理。
                # http_proxy='http://xx.xx.xx.xx:xxxx',
                # 设置HTTPS代理。
                # https_proxy='https://username:password@xxx.xxx.xxx.xxx:9999',
                endpoint=endpoint
            )
            return CloudauthClient(config)
    
        @staticmethod
        def main() -> None:
            request = cloudauth_models.DescribeFaceVerifyRequest(
                # 请输入场景ID。
                scene_id=0,
                certify_id='xxx'
            )
            response = DescribeFaceVerify.describe_face_verify_auto_route(request)
            # 不支持服务自动路由。
            # response = DescribeFaceVerify.describe_face_verify('cloudauth.cn-shanghai.aliyuncs.com', request)
            print(response.body.request_id)
            print(response.body.code)
            print(response.body.message)
            print(response.body.result_object.passed)
            print(response.body.result_object.sub_code)
            print(response.body.result_object.material_info)
    
        @staticmethod
        def describe_face_verify_auto_route(
                request: cloudauth_models.DescribeFaceVerifyRequest,
        ) -> cloudauth_models.DescribeFaceVerifyResponse:
            endpoints = [
                'cloudauth.cn-shanghai.aliyuncs.com',
                'cloudauth.cn-beijing.aliyuncs.com'
            ]
            for endpoint in endpoints:
                try:
                    response = DescribeFaceVerify.describe_face_verify(endpoint, request)
                    if UtilClient.equal_number(500, response.status_code):
                        continue
                    if response is not None and response.body is not None:
                        if UtilClient.equal_string("500", response.body.code):
                            continue
                    return response
                except Exception as err:
                    continue
            return None
    
        @staticmethod
        def describe_face_verify(
                endpoint: str,
                request: cloudauth_models.DescribeFaceVerifyRequest,
        ) -> cloudauth_models.DescribeFaceVerifyResponse:
            client = DescribeFaceVerify.create_client(endpoint)
            # 创建RuntimeObject实例并设置运行参数。
            runtime = util_models.RuntimeOptions()
            runtime.read_timeout = 10000
            runtime.connect_timeout = 10000
            return client.describe_face_verify_with_options(request, runtime)
    
    
    if __name__ == '__main__':
        DescribeFaceVerify.main()

    GO

    InitFaceVerify接口调用示例

    package main
    
    import (
    	"fmt"
    	cloudauth "github.com/alibabacloud-go/cloudauth-20190307/v3/client"
    	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    	util "github.com/alibabacloud-go/tea-utils/v2/service"
    	"github.com/alibabacloud-go/tea/tea"
      "github.com/aliyun/credentials-go/credentials"
    )
    
    
    func CreateClient (endpoint *string) (_result *cloudauth.Client, _err error) {
    	//阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
      //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
      //本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。
      // 初始化Credential。
    	credential, _err := credentials.NewCredential(nil)
    	if _err != nil {
    		panic(_err)
    	}
    	// 初始化Client。
    	config := &openapi.Config{
    	// 使用Credential配置凭证。
    	Credential: credential,
    	Endpoint:   endpoint,
    	// 设置HTTP代理。
    	// HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
    	// 设置HTTPS代理。
    	// HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"),
    	}
    	//_result = &cloudauth.Client{}
    	_result, _err = cloudauth.NewClient(config)
    	return _result, _err
    }
    
    func _main () (_err error) {
    	request := &cloudauth.InitFaceVerifyRequest{
    		// 固定值。
    		ProductCode: tea.String("LR_FR"),
    		// 请输入场景ID。
    		SceneId: tea.Int64(xxx),
    		OuterOrderNo: tea.String("商户请求的唯一标识"),
    		Model: tea.String("LIVENESS"),
    		// 固定值IDENTITY_CARD。
    		CertType: tea.String("IDENTITY_CARD"),
    		// CertName: tea.String("xxx"),
    		// CertNo: tea.String("xxx"),
    		// Ip: tea.String("用户IP地址"),
    		UserId: tea.String("用户ID"),
    		// Mobile: tea.String("130xxxxxxxx"),
    		// CallbackUrl: tea.String("https://www.aliyundoc.com"),
    		// CallbackToken: tea.String("xxxxxxx"),
    		MetaInfo: tea.String("{\"zimVer\":\"3.0.0\",\"appVersion\": \"1\",\"bioMetaInfo\": \"4.1.0:11501568,0\",\"appName\": \"com.aliyun.antcloudauth\",\"deviceType\": \"ios\",\"osVersion\": \"iOS 10.3.2\",\"apdidToken\": \"\",\"deviceModel\": \"iPhone9,1\"}"),
    	}
    	response, _err := InitFaceVerifyAutoRoute(request)
    	// 不支持服务自动路由。
    	// response, _err := InitFaceVerify(tea.String("cloudauth.cn-shanghai.aliyuncs.com"), request)
    	if _err != nil {
    		return _err
    	}
    
    	fmt.Println(*response.Body.RequestId)
    	fmt.Println(*response.Body.Code)
    	fmt.Println(*response.Body.Message)
    	fmt.Println(*response.Body.RequestId)
    	fmt.Println(*response.Body.ResultObject.CertifyId)
    	return _err
    }
    
    func InitFaceVerifyAutoRoute (request *cloudauth.InitFaceVerifyRequest) (_result *cloudauth.InitFaceVerifyResponse, _err error) {
    	endpoints := []*string{tea.String("cloudauth.cn-shanghai.aliyuncs.com"), tea.String("cloudauth.cn-beijing.aliyuncs.com")}
    	var lastResponse *cloudauth.InitFaceVerifyResponse
    	for _, endpoint := range endpoints {
    		response, _err := InitFaceVerify(endpoint, request)
    		lastResponse = response
    		if _err != nil {
    			var err = &tea.SDKError{}
    			if _t, ok := _err.(*tea.SDKError); ok {
    				err = _t
    				// 系统异常,切换到下个地域调用。
    				if *err.StatusCode == 500 {
    					continue
    				}
    			}
    			return _result, _err
    		}
    
    		if *response.StatusCode == 500 {
    			continue
    		}
    
    		if *response.Body.Code == "500"{
    			continue
    		}
    
    		_result = response
    		return _result, _err
    
    	}
    	_result = lastResponse
    	return _result, _err
    }
    
    func InitFaceVerify (endpoint *string, request *cloudauth.InitFaceVerifyRequest) (_result *cloudauth.InitFaceVerifyResponse, _err error) {
    	client, _err := CreateClient(endpoint)
    	if _err != nil {
    		return _result, _err
    	}
    
    	// 创建RuntimeObject实例并设置运行参数。
    	runtime := &util.RuntimeOptions{}
    	runtime.ReadTimeout = tea.Int(10000)
    	runtime.ConnectTimeout = tea.Int(10000)
    
    	_result = &cloudauth.InitFaceVerifyResponse{}
    	_body, _err := client.InitFaceVerifyWithOptions(request, runtime)
    	if _err != nil {
    		return _result, _err
    	}
    	_result = _body
    	return _result, _err
    }
    
    
    func main() {
    	err := _main()
    	if err != nil {
    		panic(err)
    	}
    }

    DescribeFaceVerify接口调用示例

    package main
    
    import (
    	"fmt"
    	cloudauth "github.com/alibabacloud-go/cloudauth-20190307/v3/client"
    	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    	util "github.com/alibabacloud-go/tea-utils/v2/service"
    	"github.com/alibabacloud-go/tea/tea"
      "github.com/aliyun/credentials-go/credentials"
    )
    
    func CreateClient(endpoint *string) (_result *cloudauth.Client, _err error) {
    	//阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
      //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
      //本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。
      // 初始化Credential。
    	credential, _err := credentials.NewCredential(nil)
    	if _err != nil {
    		panic(_err)
    	}
    	// 初始化Client。
    	config := &openapi.Config{
    	// 使用Credential配置凭证。
    	Credential: credential,
    	Endpoint:   endpoint,
    	// 设置HTTP代理。
    	// HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
    	// 设置HTTPS代理。
    	// HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"),
    	}
    	//_result = &cloudauth.Client{}
    	_result, _err = cloudauth.NewClient(config)
    	return _result, _err
    }
    
    func _main() (_err error) {
    	request := &cloudauth.DescribeFaceVerifyRequest{
    		// 请输入场景ID。
    		SceneId:   tea.Int64(xxx),
    		CertifyId: tea.String("91707dc296d469ad38e4c5efa6a0xxxx"),
    	}
    	response, _err := DescribeFaceVerifyAutoRoute(request)
    
    	// 不支持服务自动路由。
    	// response, _err := DescribeFaceVerify(tea.String("cloudauth.cn-shanghai.aliyuncs.com"), request)
    
    	if _err != nil {
    		return _err
    	}
    
    	if response != nil {
    		fmt.Println(*response.Body.RequestId)
    		fmt.Println(*response.Body.Code)
    		fmt.Println(*response.Body.Message)
    		fmt.Println(*response.Body.RequestId)
    		fmt.Println(*response.Body.ResultObject.Passed)
    		fmt.Println(*response.Body.ResultObject.SubCode)
    		fmt.Println(*response.Body.ResultObject.MaterialInfo)
    		fmt.Println(*response.Body.ResultObject.IdentityInfo)
    		fmt.Println(*response.Body.ResultObject.DeviceToken)
    	}
    
    	return _err
    }
    
    func DescribeFaceVerifyAutoRoute(request *cloudauth.DescribeFaceVerifyRequest) (_result *cloudauth.DescribeFaceVerifyResponse, _err error) {
    	endpoints := []*string{tea.String("cloudauth.cn-shanghai.aliyuncs.com"), tea.String("cloudauth.cn-beijing.aliyuncs.com")}
    	var lastResponse *cloudauth.DescribeFaceVerifyResponse
    	for _, endpoint := range endpoints {
    		response, _err := DescribeFaceVerify(endpoint, request)
    		lastResponse = response
    		if _err != nil {
    			var err = &tea.SDKError{}
    			if _t, ok := _err.(*tea.SDKError); ok {
    				err = _t
    				// 系统异常,切换到下个地域调用。
    				if *err.StatusCode == 500 {
    					continue
    				}
    			}
    			return _result, _err
    		}
    
    		if *response.StatusCode == 500 {
    			continue
    		}
    
    		if *response.Body.Code == "500"{
    			continue
    		}
    		_result = response
    		return _result, _err
    
    	}
    	_result = lastResponse
    	return _result, _err
    }
    
    func DescribeFaceVerify(endpoint *string, request *cloudauth.DescribeFaceVerifyRequest) (_result *cloudauth.DescribeFaceVerifyResponse, _err error) {
    	client, _err := CreateClient(endpoint)
    	if _err != nil {
    		return _result, _err
    	}
    
    	// 创建RuntimeObject实例并设置运行参数。
    	runtime := &util.RuntimeOptions{}
    	runtime.ReadTimeout = tea.Int(10000)
    	runtime.ConnectTimeout = tea.Int(10000)
    
    	_body, _err := client.DescribeFaceVerifyWithOptions(request, runtime)
    	if _err != nil {
    		return _result, _err
    	}
    	_result = _body
    	return _result, _err
    }
    
    func main() {
    	err := _main()
    	if err != nil {
    		panic(err)
    	}
    }

    .NET

    InitFaceVerify接口调用示例

    using System;
    
    using System.Collections.Generic;
    using Tea;
    
    
    namespace InitFaceVerify
    {
        public class Program
        {
    
            public static AlibabaCloud.SDK.Cloudauth20190307.Client CreateClient(string endpoint)
            {
                AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
                {
                   Credential=new Aliyun.Credentials.Client(null)
                };
      					config.Endpoint = endpoint;
                return new AlibabaCloud.SDK.Cloudauth20190307.Client(config);
            }
    
            public static void Main(string[] args)
            {
                AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyRequest request = new AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyRequest
                {
                    // 固定值。
                    ProductCode = "LR_FR",
                    // 请输入场景ID。
                    SceneId = xxx,
                    // 设置商户请求的唯一标识。
                    OuterOrderNo = "xxxxx",
                    // 模式。
                    Model = "LIVENESS",
                    // 固定值IDENTITY_CARD。
                    CertType = "IDENTITY_CARD",
                    //CertName = "xxx",
                    //CertNo = "xxx",
                    MetaInfo = "{\"zimVer\":\"3.0.0\",\"appVersion\": \"1\",\"bioMetaInfo\": \"4.1.0:11501568,0\",\"appName\": \"com.aliyun.antcloudauth\",\"deviceType\": \"ios\",\"osVersion\": \"iOS 10.3.2\",\"apdidToken\": \"\",\"deviceModel\": \"iPhone9,1\"}",
                    //Mobile = "130xxxxxxxx",
                    //Ip = "",
                    UserId = "用户ID",
                    //CallbackUrl = "https://www.aliyundoc.com",
                    //CallbackToken = "xxxxxxx"
                };
                AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyResponse response = InitFaceVerifyAutoRoute(request);
                // 不支持服务自动路由。
                // AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyResponse response = InitFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
                Console.WriteLine(response.Body.RequestId);
                Console.WriteLine(response.Body.Code);
                Console.WriteLine(response.Body.Message);
                Console.WriteLine(response.Body.ResultObject.CertifyId);
            }
    
    
            public static AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyResponse InitFaceVerifyAutoRoute(AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyRequest request)
            {
                List<string> endpoints = new List<string>
                {
                    "cloudauth.cn-shanghai.aliyuncs.com",
                    "cloudauth.cn-beijing.aliyuncs.com"
                };
                AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyResponse lastResponse = null;
    
                foreach (var endpoint in endpoints)
                {
                    try
                    {
                        AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyResponse response = InitFaceVerify(endpoint, request);
                        lastResponse = response;
                        if (response is not null)
                        {
                            if (AlibabaCloud.TeaUtil.Common.EqualNumber(500, (int)(response.StatusCode)))
                            {
                                continue;
                            }
    
                            if (response.Body is not null)
                            {
                                if (AlibabaCloud.TeaUtil.Common.EqualString("500", response.Body.Code))
                                {
                                    continue;
                                }
                            }
                        }
                        return response;
                    }
                    catch (TeaException err)
                    {
                        Console.WriteLine(err);
                        // 网络异常,切换到下个区域调用。
                        if (AlibabaCloud.TeaUtil.Common.EqualString("ServiceUnavailable", err.Code))
                        {
                            continue;
                        }
                    }
                    catch (Exception _err)
                    {
                        Console.WriteLine(_err);
                        continue;
                    }
                }
                return lastResponse;
            }
    
            public static AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyResponse InitFaceVerify(string endpoint, AlibabaCloud.SDK.Cloudauth20190307.Models.InitFaceVerifyRequest request)
            {
                AlibabaCloud.SDK.Cloudauth20190307.Client client = CreateClient(endpoint);
                // 创建RuntimeObject实例并设置运行参数。
                AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
                runtime.ReadTimeout = 10000;
                runtime.ConnectTimeout = 10000;
                return client.InitFaceVerifyWithOptions(request, runtime);
            }
        }
    }

    DescribeFaceVerify接口调用示例

    using System;
    
    using System.Collections.Generic;
    using Tea;
    
    
    namespace DescribeFaceVerify
    {
        public class Program
        {
    
            public static AlibabaCloud.SDK.Cloudauth20190307.Client CreateClient(string endpoint)
            {
               AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
                {
                   Credential=new Aliyun.Credentials.Client(null)
                };
      					config.Endpoint = endpoint;
                return new AlibabaCloud.SDK.Cloudauth20190307.Client(config);
            }
    
            public static void Main(string[] args)
            {
                AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyRequest request = new AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyRequest
                {
                    // 请输入场景ID。
                    SceneId = xxx,
                    CertifyId = "91707dc296d469ad38e4c5efa6a0xxxx",
                };
                AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyResponse response = DescribeFaceVerifyAutoRoute(request);
                // 不支持服务自动路由。
                // AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyResponse response = DescribeFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
                Console.WriteLine(response.Body.RequestId);
                Console.WriteLine(response.Body.Code);
                Console.WriteLine(response.Body.Message);
                Console.WriteLine(response.Body.ResultObject.Passed);
                Console.WriteLine(response.Body.ResultObject.SubCode);
                Console.WriteLine(response.Body.ResultObject.MaterialInfo);
                Console.WriteLine(response.Body.ResultObject.IdentityInfo);
                Console.WriteLine(response.Body.ResultObject.DeviceToken);
            }
    
    
            public static AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyResponse DescribeFaceVerifyAutoRoute(AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyRequest request)
            {
                List<string> endpoints = new List<string>
                {
                    "cloudauth.cn-shanghai.aliyuncs.com",
                    "cloudauth.cn-beijing.aliyuncs.com"
                };
                AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyResponse lastResponse = null;
    
                foreach (var endpoint in endpoints)
                {
                    try
                    {
                        AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyResponse response = DescribeFaceVerify(endpoint, request);
                        lastResponse = response;
                        if (response is not null)
                        {
                            if (AlibabaCloud.TeaUtil.Common.EqualNumber(500, (int)(response.StatusCode)))
                            {
                                continue;
                            }
    
                            if (response.Body is not null)
                            {
                                if (AlibabaCloud.TeaUtil.Common.EqualString("500", response.Body.Code))
                                {
                                    continue;
                                }
                            }
                        }
                        return response;
                    }
                    catch (TeaException err)
                    {
                        Console.WriteLine(err);
                        // 网络异常,切换到下个区域调用。
                        if (AlibabaCloud.TeaUtil.Common.EqualString("ServiceUnavailable", err.Code))
                        {
                            continue;
                        }
                    }
                    catch (Exception _err)
                    {
                        Console.WriteLine(_err);
                        continue;
                    }
                }
                return lastResponse;
            }
    
            public static AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyResponse DescribeFaceVerify(string endpoint, AlibabaCloud.SDK.Cloudauth20190307.Models.DescribeFaceVerifyRequest request)
            {
                AlibabaCloud.SDK.Cloudauth20190307.Client client = CreateClient(endpoint);
                // 创建RuntimeObject实例并设置运行参数。
                AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
                runtime.ReadTimeout = 10000;
                runtime.ConnectTimeout = 10000;
                return client.DescribeFaceVerifyWithOptions(request, runtime);
            }
        }
    }

    Node.js

    InitFaceVerify接口调用示例

    const Config = require("@alicloud/openapi-client");
    const CloudAuth = require("@alicloud/cloudauth20190307");
    const CloudAuthClient = CloudAuth.default;
    const {RuntimeOptions} = require("@alicloud/tea-util");
    const { default: Credential } = require('@alicloud/credentials');
    
    function createClient(endpoint) {
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
    	  // 本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。
        const cred = new Credential();
        const config = new Config.Config({
        credential: cred,
        // 设置Endpoint。
        endpoint: endpoint,
        // 设置HTTP代理。
        // httpProxy: "http://xxx.xxx.xxx.xxx:9999",
        // 设置HTTPS代理。
        // httpsProxy: "https://username:password@xxx.xxx.xxx.xxx:9999",
      });
        return new CloudAuthClient(config)
    }
    
    async function initFaceVerify(endpoint, request) {
        const client = createClient(endpoint);
        // 创建RuntimeObject实例并设置运行参数。
        const runtime = new RuntimeOptions([]);
        runtime.readTimeout=10000;
        runtime.connectTimeout=10000;
        return await client.initFaceVerifyWithOptions(request, runtime);
    }
    
    async function initFaceVerifyAutoRoute(request) {
        const endpoints = [
            "cloudauth.cn-shanghai.aliyuncs.com",
            "cloudauth.cn-beijing.aliyuncs.com"
        ];
    
        for (const endpoint of endpoints) {
            try {
                const response = await initFaceVerify(endpoint, request);
                if (response.statusCode === 500) {
                    continue;
                }
                if(response.body !== null){
                    if(response.body.code === "500"){
                        continue;
                    }
                }
                return response;
            } catch (err) {
                console.log(err);
                continue;
            }
        }
        return null;
    }
    
    async function main(){
        // 通过以下代码创建API请求并设置参数。
        const request = new CloudAuth.InitFaceVerifyRequest({
            // 请输入场景ID。
            sceneId: xxx,
            // 设置商户请求的唯一标识。
            outerOrderNo: "xxx",
            // 要接入的认证方案。
            productCode: "LR_FR",
            // 模式。
            model: "LIVENESS",
            // 固定值。
            certType: "IDENTITY_CARD",
            // certName: "张三",
            // certNo: "xxx",
            metaInfo: "{\"zimVer\":\"3.0.0\",\"appVersion\": \"1\",\"bioMetaInfo\": \"4.1.0:11501568,0\",\n" +
                "        \"appName\": \"com.aliyun.antcloudauth\",\"deviceType\": \"ios\",\"osVersion\": \"iOS 10.3.2\",\"apdidToken\": \"\",\"deviceModel\": \"iPhone9,1\"}",
            // mobile: "130xxxxxxxx",
            // ip: "114.xxx.xxx.xxx",
            userId: "12345xxxx",
            // callbackUrl: "https://www.aliyundoc.com",
            // callbackToken: "xxxxxxx"
        });
    
        // 推荐,支持服务路由。
        const response = await initFaceVerifyAutoRoute(request);
        // 不支持服务自动路由。
        // const response = await initFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
        if (response){
        console.log(response.body.requestId);
        console.log(response.body.code);
        console.log(response.body.message);
        console.log(response.body.resultObject.certifyId);
    }
    }
    
    main().then(function (response) {});

    DescribeFaceVerify接口调用示例

    const Config = require("@alicloud/openapi-client");
    const CloudAuth = require("@alicloud/cloudauth20190307");
    const CloudAuthClient = CloudAuth.default;
    const {RuntimeOptions} = require("@alicloud/tea-util");
    const { default: Credential } = require('@alicloud/credentials');
    
    function createClient(endpoint) {
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
    	  // 本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。
        const cred = new Credential();
        const config = new Config.Config({
        credential: cred,
        // 设置Endpoint。
        endpoint: endpoint,
        // 设置HTTP代理。
        // httpProxy: "http://xxx.xxx.xxx.xxx:9999",
        // 设置HTTPS代理。
        // httpsProxy: "https://username:password@xxx.xxx.xxx.xxx:9999",
      });
        return new CloudAuthClient(config)
    }
    
    async function describeFaceVerify(endpoint, request) {
        const client = createClient(endpoint);
        // 创建RuntimeObject实例并设置运行参数。
        const runtime = new RuntimeOptions([]);
        runtime.readTimeout=10000;
        runtime.connectTimeout=10000;
        return await client.describeFaceVerifyWithOptions(request, runtime);
    }
    
    async function describeFaceVerifyAutoRoute(request) {
        const endpoints = [
            "cloudauth.cn-shanghai.aliyuncs.com",
            "cloudauth.cn-beijing.aliyuncs.com"
        ];
    
        for (const endpoint of endpoints) {
            try {
                const response = await describeFaceVerify(endpoint, request);
                if (response.statusCode === 500) {
                    continue;
                }
                if(response.body !== null){
                    if(response.body.code === "500"){
                        continue;
                    }
                }
                return response;
            } catch (err) {
                console.log(err);
                continue;
            }
        }
        return null;
    }
    
    async function main(){
        // 通过以下代码创建API请求并设置参数。
        const request = new CloudAuth.DescribeFaceVerifyRequest({
            sceneId: xxx,
            certifyId: "xxx"
        });
    
        // 推荐,支持服务路由。
        const response = await describeFaceVerifyAutoRoute(request);
        // 不支持服务自动路由。
        //  const response = await describeFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
       if (response){
        console.log(response.body.requestId);
        console.log(response.body.code);
        console.log(response.body.message);
        console.log(response.body.resultObject.passed);
        console.log(response.body.resultObject.identityInfo);
        console.log(response.body.resultObject.materialInfo);
        console.log(response.body.resultObject.deviceToken);
        console.log(response.body.resultObject.subCode);
    }
    }
    main().then(function (response) {});
    • 本页导读
    文档反馈