本文介绍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()
反馈
- 本页导读
文档反馈