本文介绍了金融级人脸比对方案的Node.js SDK调用示例。

SDK使用说明

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

详细信息,请参见调试CompareFaceVerify接口

前提条件

  • 需要使用的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/cloudauth20190307@1.0.5

调用示例

CompareFaceVerify接口调用示例

关于参数的具体描述,请参见纯服务端(API)接入

const Config = require("@alicloud/rpc-client");
const CloudAuth = require("@alicloud/cloudauth20190307");
const CloudAuthClient = CloudAuth.default;
const {RuntimeOptions} = require("@alicloud/tea-util");
const fs = require("fs");

     function createClient(endpoint) {
        // 通过以下代码创建Config实例并初始化。
        const config = new Config.Config({
            // 您的AccessKey ID。
            accessKeyId: "您的AccessKey ID",
            // 您的AccessKey Secret。
            accessKeySecret: "您的AccessKey Secret",
            // 设置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 compareFaceVerify(endpoint, request) {
        const client = createClient(endpoint);
        // 创建RuntimeObject实例并设置运行参数。
        const runtime = new RuntimeOptions([]);
        runtime.readTimeout=10000;
        runtime.connectTimeout=10000;
        return await client.compareFaceVerify(request, runtime);
    }

    async function compareFaceVerifyAutoRoute(request) {
        const endpoints = [
            "cloudauth.cn-shanghai.aliyuncs.com",
            "cloudauth.cn-beijing.aliyuncs.com"
        ];

        for (const endpoint of endpoints) {
            try {
                const response = await compareFaceVerify(endpoint, request);
                if (response.code === '500') {
                    continue;
                }
                return response;
            } catch (err) {
                continue;
            }
        }
        return null;
    }

    async function main(){
        // 通过以下代码创建API请求并设置参数。
        const request = new CloudAuth.CompareFaceVerifyRequest({
        // 请输入场景ID。
        sceneId: xxx,
        // 设置商户请求的唯一标识。
        outerOrderNo: "xxx",
        // 要接入的认证方案。
        productCode: "PV_FC",

        // 方式一:照片Base64。
        // sourceFaceContrastPicture: "人脸照片Base64编码",
        // 方式二:照片OSS bucket名和文件名。
        // sourceOssBucketName: "cn-shanghai-aliyun-cloudauth-xxxxx",
        // sourceOssObjectName: "verify/xxxxx/xxxxxx.jpeg",
        // 方式三:照片OSS的URL地址,公网可访问。
        sourceFaceContrastPictureUrl: "https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg",
        // 方式四:已经实人认证通过的CertifyId。
        // sourceCertifyId: "0bfa7c493f850e5178b9f8613634c9xx",

        // 请在以下四种传入底库人脸照片方式中,选择一种
        // 1.照片Base64编码。
        // 2.照片OSS bucket名和文件名。
        // 3.照片OSS的URL地址。
        // 4.已经实人认证通过的CertifyId。

        // 方式一:照片Base64。
        // targetFaceContrastPicture: "人脸照片Base64编码",
        // 方式二:照片OSS bucket名和文件名。
        // targetOssBucketName: "cn-shanghai-aliyun-cloudauth-xxxxx",
        // targetOssObjectName: "verify/xxxxx/xxxxxx.jpeg",
        // 方式三:照片OSS的URL地址,公网可访问。
        targetFaceContrastPictureUrl: "https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg",
        // 方式四:已经实人认证通过的CertifyId。
        // targetCertifyId: "0bfa7c493f850e5178b9f8613634c9xx"
        });

        // 推荐,支持服务路由。
        const response = await compareFaceVerifyAutoRoute(request);
        // 不支持服务自动路由。
        // const response = await compareFaceVerify("cloudauth.cn-shanghai.aliyuncs.com", request);

        console.log(response.requestId);
        console.log(response.code);
        console.log(response.message);
        console.log(response.resultObject.verifyScore);
        console.log(response.resultObject.passed);
    }

main().then(function (response) {});