文档

Node.js SDK调用示例

更新时间:

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

SDK使用说明

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

前提条件

  • 需要使用的Node.js版本在8.0版本及以上。
  • 已添加认证场景,并获取对应的场景ID。具体操作,请参见添加认证场景

安装SDK

关于Node.js SDK源代码,请参见Node.js SDK

建议您使用npm管理依赖包:

npm install @alicloud/tea-util
npm install @alicloud/rpc-client
npm install @alicloud/cloudauth20200618@1.0.5

调用示例

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

    const Config = require("@alicloud/openapi-client");
    const CloudAuth = require("@alicloud/cloudauth20200618");
    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 contrastSmartVerify(endpoint, request) {
            const client = createClient(endpoint);
            // 创建RuntimeObject实例并设置运行参数。
            const runtime = new RuntimeOptions([]);
            runtime.readTimeout=10000;
            runtime.connectTimeout=10000;
            return await client.contrastSmartVerify(request, runtime);
        }
    
        async function contrastSmartVerifyAutoRoute(request) {
            const endpoints = [
                "cloudauth.cn-shanghai.aliyuncs.com",
                "cloudauth.cn-beijing.aliyuncs.com"
            ];
    
            for (const endpoint of endpoints) {
                try {
                    const response = await contrastSmartVerify(endpoint, request);
                    if (response.code === '500') {
                        continue;
                    }
                    return response;
                } catch (err) {
                    continue;
                }
            }
            return null;
        }
    
        async function main(){
            // 通过以下代码创建API请求并设置参数。
            const request = new CloudAuth.ContrastSmartVerifyRequest({
            // 请输入场景ID。
            sceneId: xxx,
            // 设置商户请求的唯一标识。
            outerOrderNo: "xxx",
            // 增强版实人认证的业务场景类型。取值:
            // CERT_SAFE:纯认证模式。
            // CERT_PHOTO_SAFE:认证及照片防翻拍检测模式。
            // MARKET_SAFE:营销安全(包含认证、防翻拍和营销风险识别功能)。
            // FINANCE_SAFE:金融安全(包含认证、防翻拍和金融风险识别功能)。
            // ACCOUNT_SAFE:注册安全(包含认证、防翻拍和注册风险识别功能)。
            mode: "CERT_PHOTO_SAFE",
            // 固定值。
            certType: "IDENTITY_CARD",
            certName: "xxx",
            certNo: "xxx",
            // 公网可以访问的HTTP、HTTPS链接。
            facePicUrl: "http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg",
            // 使用图片Base64编码方式。
            //facePicString: "xxxxx",
            // 当Mode取值为MARKET_SAFE、FINANCE_SAFE或ACCOUNT_SAFE时,Mobile为必填字段。
            // mobile: "130xxxxxxxx",
            // ip: "114.xxx.xxx.xxx",
            // userId: "12345xxxx",
            });
    
            // 推荐,支持服务路由。
            const response = await contrastSmartVerifyAutoRoute(request);
            // 不支持服务自动路由。
            // const response = await contrastSmartVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
    
            console.log(response.requestId);
            console.log(response.code);
            console.log(response.message);
            console.log(response.resultObject.passed);
            console.log(response.resultObject.subCode);
            console.log(response.resultObject.verifyInfo);
            console.log(response.resultObject.riskInfo);
        }
    
    main().then(function (response) {});
  • 方式二:使用本地图片示例

    const Config = require("@alicloud/openapi-client");
    const CloudAuth = require("@alicloud/cloudauth20200618");
    const CloudAuthClient = CloudAuth.default;
    const {RuntimeOptions} = require("@alicloud/tea-util");
    const fs = require("fs");
    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 contrastSmartVerifyAdvance(endpoint, request) {
            const client = createClient(endpoint);
            // 创建RuntimeObject实例并设置运行参数。
            const runtime = new RuntimeOptions([]);
            runtime.readTimeout=10000;
            runtime.connectTimeout=10000;
            return await client.contrastSmartVerifyAdvance(request, runtime);
        }
    
        async function contrastSmartVerifyAdvanceAutoRoute(request) {
            const endpoints = [
                "cloudauth.cn-shanghai.aliyuncs.com",
                "cloudauth.cn-beijing.aliyuncs.com"
            ];
    
            for (const endpoint of endpoints) {
                try {
                    const response = await contrastSmartVerifyAdvance(endpoint, request);
                    if (response.code === '500') {
                        continue;
                    }
                    return response;
                } catch (err) {
                    continue;
                }
            }
            return null;
        }
    
        async function main(){
            const fileStream = fs.createReadStream("/xxx.png");
            // 通过以下代码创建API请求并设置参数。
            const request = new CloudAuth.ContrastSmartVerifyAdvanceRequest({
            // 请输入场景ID。
            sceneId: xxx,
            // 设置商户请求的唯一标识。
            outerOrderNo: "xxx",
            // 增强版实人认证的业务场景类型。取值:
            // CERT_SAFE:纯认证模式。
            // CERT_PHOTO_SAFE:认证及照片防翻拍检测模式。
            // MARKET_SAFE:营销安全(包含认证、防翻拍和营销风险识别功能)。
            // FINANCE_SAFE:金融安全(包含认证、防翻拍和金融风险识别功能)。
            // ACCOUNT_SAFE:注册安全(包含认证、防翻拍和注册风险识别功能)。
            mode: "CERT_PHOTO_SAFE",
            // 固定值。
            certType: "IDENTITY_CARD",
            certName: "xxx",
            certNo: "xxx",
            facePicFileObject: fileStream
            // 当Mode取值为MARKET_SAFE、FINANCE_SAFE或ACCOUNT_SAFE时,Mobile为必填字段。
            // mobile: "130xxxxxxxx",
            // ip: "114.xxx.xxx.xxx",
            // userId: "12345xxxx",
            });
    
            // 推荐,支持服务路由。
            const response = await contrastSmartVerifyAdvanceAutoRoute(request);
            // 不支持服务自动路由。
            // const response = await contrastSmartVerifyAdvance("cloudauth.cn-shanghai.aliyuncs.com", request);
            fileStream.close();
            console.log(response.requestId);
            console.log(response.code);
            console.log(response.message);
            console.log(response.resultObject.passed);
            console.log(response.resultObject.subCode);
            console.log(response.resultObject.verifyInfo);
            console.log(response.resultObject.riskInfo);
        }
    
    main().then(function (response) {});
  • 本页导读
文档反馈