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