本文介绍.NET SDK集成纯服务端认证方案的操作方法。
SDK使用说明
如果需要其他语言的SDK示例代码,您可以通过OpenAPI 开发者门户在线调试工具调试API接口。该工具会自动生成相应API的SDK调用示例代码,详细信息,请参见调试ContrastSmartVerify接口。
前提条件
需要使用的.NET Framework版本在4.5.0版本及以上或者.NET Standard版本在2.0版本及以上。
已添加认证场景,并获取对应的场景ID。具体操作,请参见添加认证场景。
安装SDK
关于.NET SDK源代码,请参见.NET SDK包。
SDK有以下两种安装方式,请选择合适的方式安装:
通过.NET命令行安装。
dotnet add package AlibabaCloud.SDK.Cloudauth20200618 --version 1.1.5 dotnet add package Aliyun.Credentials
使用包管理安装。
Install-Package AlibabaCloud.SDK.Cloudauth20200618 -Version 1.1.5 Install-Package Aliyun.Credentials
说明
Credentials工具配置方法,请参见身份验证配置。
调用示例
方式一:不使用本地图片示例
using System; using System.Collections.Generic; using Tea; namespace ContrastSmartVerify { public class Program { public static AlibabaCloud.SDK.Cloudauth20200618.Client CreateClient(string endpoint) { AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { //通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。 Credential=new Aliyun.Credentials.Client(null) }; config.Endpoint = endpoint; return new AlibabaCloud.SDK.Cloudauth20190307.Client(config); } public static void Main(string[] args) { AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyRequest request = new AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyRequest { // 请输入场景ID。 SceneId = xxx, OuterOrderNo = "商户请求的唯一标识", // 增强版实人认证的业务场景类型。取值: // CERT_SAFE:纯认证模式。 // CERT_PHOTO_SAFE:认证及照片防翻拍检测模式。 // MARKET_SAFE:营销安全(包含认证、防翻拍和营销风险识别功能)。 // FINANCE_SAFE:金融安全(包含认证、防翻拍和金融风险识别功能)。 // ACCOUNT_SAFE:注册安全(包含认证、防翻拍和注册风险识别功能)。 Mode = "CERT_SAFE", // 固定值IDENTITY_CARD。 CertType = "IDENTITY_CARD", CertName = "xxx", CertNo = "xxx", // 当Mode取值为MARKET_SAFE、FINANCE_SAFE或ACCOUNT_SAFE时,Mobile为必填字段。 //Mobile = "130xxxxxxxx", // 公网可以访问的HTTP、HTTPS链接。 FacePicUrl = "http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg", // 使用图片Base64编码方式。 // FacePicString = "xxxxx", //Ip = "用户IP地址", //UserId = "用户ID", }; AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse response = contrastSmartVerifyAutoRoute(request); // 不支持服务自动路由。 //AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse response = contrastSmartVerify("cloudauth.cn-shanghai.aliyuncs.com", request); Console.WriteLine(response.RequestId); Console.WriteLine(response.Code); Console.WriteLine(response.Message); Console.WriteLine(response.ResultObject.Passed); Console.WriteLine(response.ResultObject.SubCode); Console.WriteLine(response.ResultObject.VerifyInfo); Console.WriteLine(response.ResultObject.RiskInfo); } public static AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse contrastSmartVerifyAutoRoute(AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyRequest request) { List<string> endpoints = new List<string> { "cloudauth.cn-shanghai.aliyuncs.com", "cloudauth.cn-beijing.aliyuncs.com" }; AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse lastResponse = null; foreach (var endpoint in endpoints) { try { AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse response = contrastSmartVerify(endpoint, request); if (AlibabaCloud.TeaUtil.Common.EqualString("500", response.Code)) { continue; } return response; } catch (TeaException err) { // 网络异常,切换到下个区域调用。 if (AlibabaCloud.TeaUtil.Common.EqualString("ServiceUnavailable", err.Code)) { continue; } } catch (Exception _err) { TeaException err = new TeaException(new Dictionary<string, object> { { "message", _err.Message } }); // 网络异常,切换到下个区域调用。 if (AlibabaCloud.TeaUtil.Common.EqualString("ServiceUnavailable", err.Code)) { continue; } } } return lastResponse; } public static AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse contrastSmartVerify(string endpoint, AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyRequest request) { AlibabaCloud.SDK.Cloudauth20200618.Client client = CreateClient(endpoint); // 创建RuntimeObject实例并设置运行参数。 AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); runtime.ReadTimeout = 10000; runtime.ConnectTimeout = 10000; return client.ContrastSmartVerify(request, runtime); } } }
方式二:使用本地图片示例
using System; using System.Collections.Generic; using Tea; using System.IO; namespace ContrastSmartVerify { public class Program { public static AlibabaCloud.SDK.Cloudauth20200618.Client CreateClient(string endpoint) { AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { //通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。 Credential=new Aliyun.Credentials.Client(null) }; config.Endpoint = endpoint; return new AlibabaCloud.SDK.Cloudauth20190307.Client(config); } public static void Main(string[] args) { FileStream fs = new FileStream("/xxx.png", FileMode.Open); AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyAdvanceRequest request = new AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyAdvanceRequest { // 请输入场景ID。 SceneId = xxx, OuterOrderNo = "商户请求的唯一标识", // 增强版实人认证的业务场景类型。取值: // CERT_SAFE:纯认证模式。 // CERT_PHOTO_SAFE:认证及照片防翻拍检测模式。 // MARKET_SAFE:营销安全(包含认证、防翻拍和营销风险识别功能)。 // FINANCE_SAFE:金融安全(包含认证、防翻拍和金融风险识别功能)。 // ACCOUNT_SAFE:注册安全(包含认证、防翻拍和注册风险识别功能)。 Mode = "CERT_PHOTO_SAFE", // 固定值IDENTITY_CARD。 CertType = "IDENTITY_CARD", CertName = "xxx", CertNo = "xxx", //Ip = "用户IP地址", //UserId = "用户ID", // 当Mode取值为MARKET_SAFE、FINANCE_SAFE或ACCOUNT_SAFE时,Mobile为必填字段。 //Mobile = "130xxxxxxxx", FacePicFileObject = fs, }; AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse response = contrastSmartVerifyAdvanceAutoRoute(request); // 不支持服务自动路由。 //AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse response = contrastSmartVerifyAdvance("cloudauth.cn-shanghai.aliyuncs.com", request); fs.Close(); Console.WriteLine(response.RequestId); Console.WriteLine(response.Code); Console.WriteLine(response.Message); Console.WriteLine(response.ResultObject.Passed); Console.WriteLine(response.ResultObject.SubCode); Console.WriteLine(response.ResultObject.VerifyInfo); Console.WriteLine(response.ResultObject.RiskInfo); } public static AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse contrastSmartVerifyAdvanceAutoRoute(AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyAdvanceRequest request) { List<string> endpoints = new List<string> { "cloudauth.cn-shanghai.aliyuncs.com", "cloudauth.cn-beijing.aliyuncs.com" }; AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse lastResponse = null; foreach (var endpoint in endpoints) { try { AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse response = contrastSmartVerifyAdvance(endpoint, request); if (AlibabaCloud.TeaUtil.Common.EqualString("500", response.Code)) { continue; } return response; } catch (TeaException err) { // 网络异常,切换到下个区域调用。 if (AlibabaCloud.TeaUtil.Common.EqualString("ServiceUnavailable", err.Code)) { continue; } } catch (Exception _err) { TeaException err = new TeaException(new Dictionary<string, object> { { "message", _err.Message } }); // 网络异常,切换到下个区域调用。 if (AlibabaCloud.TeaUtil.Common.EqualString("ServiceUnavailable", err.Code)) { continue; } } } return lastResponse; } public static AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyResponse contrastSmartVerifyAdvance(string endpoint, AlibabaCloud.SDK.Cloudauth20200618.Models.ContrastSmartVerifyAdvanceRequest request) { AlibabaCloud.SDK.Cloudauth20200618.Client client = CreateClient(endpoint); // 创建RuntimeObject实例并设置运行参数。 AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); runtime.ReadTimeout = 10000; runtime.ConnectTimeout = 10000; return client.ContrastSmartVerifyAdvance(request, runtime); } } }
反馈
- 本页导读
文档反馈