文档

Python SDK调用示例

更新时间:

本文介绍Python SDK集成纯服务端认证方案的操作方法。

SDK使用说明

如果需要其他语言的SDK示例代码,您可以通过OpenAPI 开发者门户在线调试工具调试API接口。该工具会自动生成相应API的SDK调用示例代码,详细信息,请参见调试ContrastSmartVerify接口

前提条件

  • 需要使用的Python版本在3.0版本及以上。

  • 已添加认证场景,并获取对应的场景ID。具体操作,请参见添加认证场景

引入依赖包

pip install alibabacloud_tea_openapi==0.2.5
pip install alibabacloud_credentials==0.3.2

安装SDK

关于Python SDK源代码,请参见Python SDK包

pip install alibabacloud_cloudauth20200618==1.0.5

调用示例

  • 方式一:不使用本地图片示例

    from alibabacloud_tea_openapi import models as open_api_models
    from alibabacloud_cloudauth20200618.client import Client as CloudauthClient
    from alibabacloud_cloudauth20200618 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 ContrastSmartVerify:
        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.ContrastSmartVerifyRequest(
                # 请输入场景ID。
                scene_id=xxx,
                outer_order_no='商户请求的唯一标识',
                # 增强版实人认证的业务场景类型。取值:
                # CERT_SAFE:纯认证模式。
                # CERT_PHOTO_SAFE:认证及照片防翻拍检测模式。
                # MARKET_SAFE:营销安全(包含认证、防翻拍和营销风险识别功能)。
                # FINANCE_SAFE:金融安全(包含认证、防翻拍和金融风险识别功能)。
                # ACCOUNT_SAFE:注册安全(包含认证、防翻拍和注册风险识别功能)。
                mode='CERT_PHOTO_SAFE',
                # 固定值IDENTITY_CARD。,
                cert_type='IDENTITY_CARD',
                cert_name='xxx',
                cert_no='xxx',
                # ip='114.xxx.xxx.xxx',
                # user_id='用户ID',
                # mobile='130xxxxxxxx',
                # device_token='通过设备指纹获取的deviceToken',
                face_pic_url='http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg'
            )
            response = ContrastSmartVerify.contrast_smart_verify_auto_route(request)
            # 不支持服务自动路由。
            #response = ContrastSmartVerify.contrast_smart_verify('cloudauth.cn-shanghai.aliyuncs.com', request)
            print(response.request_id)
            print(response.code)
            print(response.message)
            print(response.result_object.passed)
            print(response.result_object.sub_code)
            print(response.result_object.verify_info)
            print(response.result_object.risk_info)
    
        @staticmethod
        def contrast_smart_verify_auto_route(
                request: cloudauth_models.ContrastSmartVerifyRequest,
        ) -> cloudauth_models.ContrastSmartVerifyResponse:
            endpoints = [
                'cloudauth.cn-shanghai.aliyuncs.com',
                'cloudauth.cn-beijing.aliyuncs.com'
            ]
            for endpoint in endpoints:
                try:
                    response = ContrastSmartVerify.contrast_smart_verify(endpoint, request)
                    if UtilClient.equal_string('500', response.code):
                        continue
                    return response
                except Exception as err:
                    continue
            return None
    
        @staticmethod
        def contrast_smart_verify(
                endpoint: str,
                request: cloudauth_models.ContrastSmartVerifyRequest,
        ) -> cloudauth_models.ContrastSmartVerifyResponse:
            client = ContrastSmartVerify.create_client(endpoint)
            # 创建RuntimeObject实例并设置运行参数。
            runtime = util_models.RuntimeOptions()
            runtime.read_timeout = 10000
            runtime.connect_timeout = 10000
            return client.contrast_smart_verify(request, runtime)
    
    if __name__ == '__main__':
        ContrastSmartVerify.main()
  • 方式二:使用本地图片示例

    from alibabacloud_tea_openapi import models as open_api_models
    from alibabacloud_cloudauth20200618.client import Client as CloudauthClient
    from alibabacloud_cloudauth20200618 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 ContrastSmartVerify:
        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:
            file = open('xxx.mp4', 'rb')
            request = cloudauth_models.ContrastSmartVerifyAdvanceRequest(
                # 请输入场景ID。
                scene_id=xxx,
                outer_order_no='商户请求的唯一标识',
                # 增强版实人认证的业务场景类型。取值:
                # CERT_SAFE:纯认证模式。
                # CERT_PHOTO_SAFE:认证及照片防翻拍检测模式。
                # MARKET_SAFE:营销安全(包含认证、防翻拍和营销风险识别功能)。
                # FINANCE_SAFE:金融安全(包含认证、防翻拍和金融风险识别功能)。
                # ACCOUNT_SAFE:注册安全(包含认证、防翻拍和注册风险识别功能)。
                mode='CERT_PHOTO_SAFE',
                # 固定值IDENTITY_CARD。,
                cert_type='IDENTITY_CARD',
                cert_name='xxx',
                cert_no='xxx',
                # ip='114.xxx.xxx.xxx',
                # user_id='用户ID',
                # mobile='130xxxxxxxx',
                # device_token='通过设备指纹获取的deviceToken',
                face_pic_file_object=file
            )
            response = ContrastSmartVerify.contrast_smart_verify_auto_route(request)
            # 不支持服务自动路由。
            # response = ContrastSmartVerify.contrast_smart_verify('cloudauth.cn-shanghai.aliyuncs.com', request)
            print(response.request_id)
            print(response.code)
            print(response.message)
            print(response.result_object.passed)
            print(response.result_object.sub_code)
            print(response.result_object.verify_info)
            print(response.result_object.risk_info)
    
            file.close()
    
        @staticmethod
        def contrast_smart_verify_auto_route(
                request: cloudauth_models.ContrastSmartVerifyAdvanceRequest,
        ) -> cloudauth_models.ContrastSmartVerifyResponse:
            endpoints = [
                'cloudauth.cn-shanghai.aliyuncs.com',
                'cloudauth.cn-beijing.aliyuncs.com'
            ]
            for endpoint in endpoints:
                try:
                    response = ContrastSmartVerify.contrast_smart_verify(endpoint, request)
                    if UtilClient.equal_string('500', response.code):
                        continue
                    return response
                except Exception as err:
                    continue
            return None
    
        @staticmethod
        def contrast_smart_verify(
                endpoint: str,
                request: cloudauth_models.ContrastSmartVerifyAdvanceRequest,
        ) -> cloudauth_models.ContrastSmartVerifyResponse:
            client = ContrastSmartVerify.create_client(endpoint)
            # 创建RuntimeObject实例并设置运行参数。
            runtime = util_models.RuntimeOptions()
            runtime.read_timeout = 10000
            runtime.connect_timeout = 10000
            return client.contrast_smart_verify_advance(request, runtime)
    
    if __name__ == '__main__':
        ContrastSmartVerify.main()
  • 本页导读
文档反馈