文档

.NET SDK调用示例

更新时间:

本文介绍.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);
            }
        }
    }
  • 本页导读
文档反馈