日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

服務(wù)端集成

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對(duì)您的業(yè)務(wù)造成影響,請(qǐng)務(wù)必仔細(xì)閱讀。

在H5頁(yè)面接入金融級(jí)實(shí)人認(rèn)證方案時(shí),開發(fā)者需要在后端服務(wù)器集成SDK,以便調(diào)用InitFaceVerify接口獲取用于瀏覽器進(jìn)行實(shí)人認(rèn)證的認(rèn)證鏈接CertifyUrl。本文將詳細(xì)介紹服務(wù)端SDK的安裝方式、所調(diào)接口的參數(shù)說(shuō)明以及實(shí)際調(diào)用接口示例說(shuō)明。

集成須知

服務(wù)接入點(diǎn)

目前支持的接入地域如下表所示。

重要

建議您參考本文示例代碼,配置主備地域Endpoint。在主Endpoint發(fā)生故障時(shí)可以自動(dòng)切換到備用Endpoint,保證系統(tǒng)的持續(xù)可用性。

地域

服務(wù)地址

VPC地址

全局接入地址

華東2(上海)

IPv4:cloudauth.cn-shanghai.aliyuncs.com

cloudauth-vpc.cn-shanghai.aliyuncs.com

  • IPv4:cloudauth.aliyuncs.com

  • IPv6:cloudauth-dualstack.aliyuncs.com

IPv6:cloudauth-dualstack.aliyuncs.com

華北2(北京)

IPv4:cloudauth.cn-beijing.aliyuncs.com

cloudauth-vpc.cn-beijing.aliyuncs.com

IPv6:cloudauth-dualstack.cn-beijing.aliyuncs.com

SDK安裝與源碼下載

服務(wù)端需要集成的兩個(gè)接口

InitFaceVerify-發(fā)起認(rèn)證請(qǐng)求

每次開始認(rèn)證前通過(guò)調(diào)用本接口獲取用于瀏覽器進(jìn)行實(shí)人認(rèn)證的認(rèn)證鏈接CertifyUrl和每次認(rèn)證的唯一CertifyId

須將此接口的請(qǐng)求封裝為開始認(rèn)證的業(yè)務(wù)接口,供網(wǎng)頁(yè)端調(diào)用。

請(qǐng)求參數(shù)

名稱

類型

是否必選

描述

示例值

SceneId

Long

要接入的認(rèn)證場(chǎng)景ID。該ID在控制臺(tái)創(chuàng)建認(rèn)證場(chǎng)景后自動(dòng)生成。關(guān)于如何創(chuàng)建認(rèn)證場(chǎng)景,請(qǐng)參見添加認(rèn)證場(chǎng)景

1000000006

OuterOrderNo

String

您自定義的業(yè)務(wù)唯一標(biāo)識(shí),用于后續(xù)定位和排查問(wèn)題使用。

支持長(zhǎng)度為32位的字母和數(shù)字組合,請(qǐng)確保唯一。

e0c34a77f5ac40a5aa5e6ed20c353888

ProductCode

String

要接入的認(rèn)證方案。

唯一取值:ID_PRO。詳情方案說(shuō)明,請(qǐng)參見PC或移動(dòng)端H5網(wǎng)頁(yè)接入

ID_PRO

Model

String

要進(jìn)行活體檢測(cè)的類型。

說(shuō)明

活體檢測(cè)類型僅支持下列取值,暫不支持自定義動(dòng)作或組合。

  • LIVENESS:默認(rèn),眨眼動(dòng)作活體檢測(cè)。

  • MULTI_ACTION:多動(dòng)作活體檢測(cè),眨眼+任意搖頭檢測(cè)(順序隨機(jī))。

  • MULTI_FAPTCHA:多動(dòng)作活體檢測(cè),眨眼+形跡判斷(順序隨機(jī))。

    說(shuō)明

    形跡判斷是一種動(dòng)作活體的檢測(cè)方式,按規(guī)則移動(dòng)鼻尖完成指定動(dòng)作。形跡判斷通過(guò)增加隨機(jī)性,提升了安全能力。

  • MOVE_ACTION:遠(yuǎn)近動(dòng)作+眨眼動(dòng)作活體檢測(cè)。

MULTI_ACTION

CertType

String

用戶證件類型。支持的證件類型,請(qǐng)參見使用限制

不同證件類型,取值均為IDENTITY_CARD

IDENTITY_CARD

CertName

String

您的終端用戶的真實(shí)姓名。

張三

CertNo

String

您的終端用戶的證件號(hào)碼。

330103xxxxxxxxxxxx

ReturnUrl

String

認(rèn)證結(jié)束后回跳頁(yè)面的鏈接地址。

https://www.aliyun.com

MetaInfo

String

MetaInfo環(huán)境參數(shù)。實(shí)際環(huán)境需要通過(guò)JS文件,調(diào)用函數(shù)getMetaInfo()獲取,詳情請(qǐng)參見認(rèn)證觸發(fā)頁(yè)面(啟動(dòng)刷臉)

{
    "appVersion": "1",
    "bioMetaInfo": "4.1.0:1150****,0",
    "appName": "com.aliyun.antcloudauth",
    "deviceType": "ios",
    "osVersion": "iOS 10.3.2",
    "apdidToken": "",
    "deviceModel": "iPhone9,1"
}
警告

該示例僅供參考,實(shí)際集成中不能直接應(yīng)用,否則會(huì)導(dǎo)致無(wú)法正常獲取到CertifyUrl

Mobile

String

您終端用戶的手機(jī)號(hào)碼。

130xxxxxxxx

Ip

String

您終端用戶的IP。

47.100.XX.XX

UserId

String

您自定義的用戶ID,請(qǐng)保持唯一。

123456789

CallbackUrl

String

認(rèn)證結(jié)果的回調(diào)通知地址,回調(diào)請(qǐng)求方式默認(rèn)為GET,回調(diào)地址必須以https開頭。平臺(tái)在完成認(rèn)證后會(huì)回調(diào)該地址,并自動(dòng)添加certifyIdpassed字段,passed字段值返回的是subcode值,示例:https://www.aliyun.com?callbackToken=1000004826&certifyId=shaxxxx&passed=200

重要
  • 僅當(dāng)認(rèn)證完成(包含認(rèn)證通過(guò)和認(rèn)證未通過(guò))時(shí)才會(huì)觸發(fā)回調(diào),若認(rèn)證中放棄、異常中斷或未進(jìn)行認(rèn)證均不會(huì)通知。建議您收到回調(diào)通知時(shí),若有需要可通過(guò)查詢接口獲取認(rèn)證詳情信息。

  • 該值的傳入會(huì)在調(diào)用接口前做可訪問(wèn)校驗(yàn),如果傳入的地址不能在公網(wǎng)訪問(wèn),會(huì)返回401。

https://www.aliyun.com

CallbackToken

CallbackToken

安全Token,由您自行生成,用于防重復(fù)、防篡改校驗(yàn)。

如果設(shè)置了該值,會(huì)在回調(diào)地址中顯示CallbackToken字段。

NMjvQanQgplBSaEI0sL86WnQplB

CertifyUrlType

String

Web SDK設(shè)備類型。取值WEB或者H5

說(shuō)明

只支持Web SDK設(shè)備類型。

WEB

CertifyUrlStyle

String

返回CertifyUrl類型,包括:

  • L:HTTPS,原始長(zhǎng)鏈。

  • S:HTTP,短鏈。

L

AuthId

String

用戶授權(quán)ID,最大長(zhǎng)度為64位字符。

92d46b9e9e2d703f2897f350d5bd4149

EncryptType

String

加密類型。為空表示不加密。

如開啟加密傳輸,需傳入加密算法。目前僅支持SM2國(guó)密算法。

如需傳入加密算法,需對(duì)CertNameCertNo進(jìn)行加密,并傳入加密后的密文。有關(guān)參數(shù)加密的更多信息,請(qǐng)參見參數(shù)加密說(shuō)明

SM2

ProcedurePriority

String

移動(dòng)端H5方式認(rèn)證出現(xiàn)WebRTC或者Webassembly不兼容時(shí)的降級(jí)配置。

默認(rèn)值為url

  • keep:不支持降級(jí),直接返回。

  • url:支持降級(jí),返回認(rèn)證URL,用戶使用此URL打開或者切換瀏覽器進(jìn)行認(rèn)證。

  • video:支持降級(jí),使用系統(tǒng)相機(jī)錄制一段3~5秒的眨眼視頻進(jìn)行認(rèn)證。

    說(shuō)明

    當(dāng)降級(jí)模式為Video時(shí)如下功能將失效,且產(chǎn)品安全性會(huì)降低,建議僅面向安全場(chǎng)景配置。

    • 活體檢測(cè)的類型設(shè)置將不生效。

    • 視頻存證VideoEvidence功能不支持。

url

FaceGuardOutput

String

人臉保鏢標(biāo)簽種類。

DeviceRisk:設(shè)備風(fēng)險(xiǎn)標(biāo)簽。

說(shuō)明
  • 選擇輸出人臉保鏢會(huì)產(chǎn)生額外的費(fèi)用,具體費(fèi)用,請(qǐng)參見計(jì)費(fèi)概述

  • 如果不需要輸出人臉保鏢標(biāo)簽,可以不傳遞參數(shù)或者傳入空值。

DeviceRisk

RarelyCharacters

String

是否開啟生僻字模式:

  • Y:開啟。

    用戶認(rèn)證前會(huì)彈出信息輸入框,需輸入生僻字姓名和身份證號(hào)碼,同意協(xié)議后才能開始認(rèn)證流程。

  • N:不開啟(默認(rèn))。

Y

uiCustomUrl

String

UI配置文件URL。關(guān)于Web SDK自定義UI說(shuō)明,請(qǐng)參見Web SDK UI自定義配置說(shuō)明

www.aliyundoc.com

VideoEvidence

String

是否開啟視頻存證。

  • true:開啟

  • false:不開啟(默認(rèn))

說(shuō)明

因?yàn)橐曨l文件較大,當(dāng)網(wǎng)絡(luò)不穩(wěn)定時(shí)系統(tǒng)會(huì)丟棄視頻文件優(yōu)先保障認(rèn)證必要圖片傳輸,建議您業(yè)務(wù)上設(shè)置為弱依賴視頻。

false

返回?cái)?shù)據(jù)

名稱

類型

描述

示例值

RequestId

String

請(qǐng)求ID。

130A2C10-B9EE-4D84-88E3-5384FF039795

Message

String

返回信息。

success

Code

String

返回碼:200為成功,其他為失敗。

詳細(xì)說(shuō)明,請(qǐng)參見返回Code和Message說(shuō)明

200

ResultObject.CertifyId

String

實(shí)人認(rèn)證唯一標(biāo)識(shí)。

重要

CertifyId字段為計(jì)費(fèi)統(tǒng)計(jì)字段,為了方便后續(xù)核對(duì)賬單,請(qǐng)您在本地留存該字段信息。

初始化接口返回的認(rèn)證CertifyId在30分鐘有效僅能認(rèn)證提交一次,請(qǐng)您在有效期內(nèi)使用,避免重復(fù)使用。

91707dc296d469ad38e4c5efa6a0f24b

ResultObject.CertifyUrl

String

Web瀏覽器進(jìn)行實(shí)人認(rèn)證的URL,認(rèn)證結(jié)束后根據(jù)入?yún)?span data-tag="parmname" id="parmname-e4v-nuu-ne6" class="parmname">ReturnUrl進(jìn)行跳轉(zhuǎn)。

警告
  • 初始化接口返回的認(rèn)證CertifyUrl在30分鐘有效僅能認(rèn)證提交一次,請(qǐng)您在有效期內(nèi)使用,避免重復(fù)使用。

  • 此參數(shù)需要入?yún)⒅?b>MetaInfo正確傳入,以返回與客戶端匹配的CertifyUrl。如無(wú)法獲取,請(qǐng)檢查MetaInfo以及其他傳入?yún)?shù)是否正確。

http://m.alyms.cn/****

DescribeFaceVerify-獲取認(rèn)證詳細(xì)數(shù)據(jù)

當(dāng)您收到回調(diào)通知之后,可以在服務(wù)端通過(guò)該接口獲取相應(yīng)的認(rèn)證狀態(tài)和認(rèn)證資料。

說(shuō)明

雖然InitFaceVerify在認(rèn)證結(jié)束后跳轉(zhuǎn)ReturnUrl時(shí)會(huì)攜帶認(rèn)證結(jié)果,但考慮到瀏覽器的安全性,建議調(diào)用此接口進(jìn)行認(rèn)證結(jié)果的二次驗(yàn)證。

請(qǐng)求參數(shù)

名稱

類型

是否必選

描述

示例值

SceneId

Long

認(rèn)證場(chǎng)景ID。

1000000006

CertifyId

String

實(shí)人認(rèn)證唯一標(biāo)識(shí)。

91707dc296d469ad38e4c5efa6a0f24b

返回?cái)?shù)據(jù)

名稱

類型

描述

示例值

RequestId

String

請(qǐng)求ID。

130A2C10-B9EE-4D84-88E3-5384FF039795

Message

String

請(qǐng)求消息的響應(yīng)信息。

success

Code

String

返回碼,詳細(xì)說(shuō)明,請(qǐng)參見返回Code和Message

200

ResultObject.Passed

String

認(rèn)證結(jié)果:

  • T:通過(guò)

  • F:未通過(guò)

重要

認(rèn)證結(jié)果判定以此字段為準(zhǔn)。

T

ResultObject.SubCode

String

認(rèn)證結(jié)果描述。詳情請(qǐng)參見返回Code和Message

200

ResultObject.IdentityInfo

String

認(rèn)證的主體信息,一般的認(rèn)證場(chǎng)景返回為空。

null

ResultObject.DeviceRisk

String

設(shè)備風(fēng)險(xiǎn)標(biāo)簽。

VirtualBrowser

說(shuō)明

多個(gè)設(shè)備風(fēng)險(xiǎn)標(biāo)簽以半角逗號(hào)(,)分隔。如需了解更多設(shè)備風(fēng)險(xiǎn)標(biāo)簽及其含義,請(qǐng)參見人臉保鏢標(biāo)簽說(shuō)明

ResultObject.MaterialInfo

String

認(rèn)證主體附件信息,主要為圖片類材料。

示例見下文

ResultObject.UserInfo

String

記錄在生僻字模式下用戶輸入的身份信息與對(duì)應(yīng)編碼。返回?cái)?shù)據(jù)為JSON格式字符串,姓名中無(wú)生僻字返回為空字符串。

  • name:指用戶輸入的姓名。

  • verifyName:指通過(guò)驗(yàn)證的最終姓名編碼。例如生僻字是通過(guò)轉(zhuǎn)碼認(rèn)證通過(guò):“王先生”,實(shí)際認(rèn)證通過(guò)是“王先”。

  • number:指用戶輸入的證件號(hào)碼。

{
"number":"610***********1110",
"name":"王先生",
"verifyName":"王先"
}
重要

判斷認(rèn)證結(jié)果請(qǐng)以ResultObject.Passed字段為準(zhǔn)。

返回示例詳述

  • ResultObject.MaterialInfo的JSON格式示例:

    {
        // 是否為攻擊:攻擊為T,非攻擊為F。
        "faceAttack": "T",
        // 是否有臉部遮擋:有臉部遮擋為T,否則為F。
        "faceOcclusion": "F",
        // 認(rèn)證的照片信息。
        "facialPictureFront": {
             //人臉攻擊分。
             "faceAttackScore": 0.00008597839769208804,
            // 照片存放客戶上海區(qū)域的OSS里,此為照片的bucket名。
            "ossBucketName": "cn-shanghai-aliyun-cloudauth-1260051251634779",
            // 照片存放客戶上海區(qū)域的OSS里,此為照片的文件名。
            "ossObjectName": "verify/1260051251634779/03a081bd96328aedf83f635f39a50c57_0.jpeg",
            // 照片https地址,有效期15分鐘,從查詢時(shí)開始計(jì)時(shí)。
            "pictureUrl": "http://cn-shanghai-aliyun-cloudauth-1260051251634779.oss-cn-shanghai.aliyuncs.com/verify/1260051251634779/03a081bd96328aedf83f635f39a50c57_0.jpeg?Expires=1625371140&OSSAccessKeyId=STS.NTX1ngfr6Acg2Pmnn2RYM****&Signature=Hw5BF9WxJs6wI68IxKs41cxCU8****&security-token=CAISjgJ1q6Ft5B2yfSjIr5ftetTTi60X9qGMMHbcim5nXtZhu7GT1Dz2IH1PdXFgA%2Bgds%2Fswmm5U7vgalrkqEcEdHRGdN5YpsM8LrlzwO1h2TGRsq%2B5qsoasPETOITyZtZagToeUZdfZfejXGDKgvyRvwLz8WCy%2FVli%2BS%2FOggoJmadJlNWvRL0AxZrFsKxBltdUROFbIKP%2BpKWSKuGfLC1dysQcO4gEWq4bHm5fCskKD1Qenk7FO%2B9uuc6LJNZc8YM1NNP6ux%2FFze6b71ypd1gNH7q8ejtYfpGyW5oHHWwIMvErYbbaMrIV1WwZ9Z7knHaVAq%2BXwnOBkuuXYnIns0BdLMuZOSD7YQI2wYWEwgBcxt78agAF%2FHZbelNLYWtipAu5X5oG1t22SqIr1p3TMK5FrjDIVeWOppcxeRXtU%2BjR7hGcwd25scGhiraoxTXV3sxw%2F6dhFSswQ37O4j%2B%2FrCPtiGauqn2ZMdMj%2FvYwKb6KmpQqa%2BtR%2F9cxhS6hoIQRq0SUIfyXl5ZUiZbTjW22iwuX%2BPwzVCw%3D%3D",
            // 視頻存放客戶上海區(qū)域的OSS里,此為視頻的文件名(僅當(dāng)客戶端設(shè)置視頻參數(shù)時(shí)返回)。
            "ossVerifyVideoObjectName": "verify/1260051251634779/03a081bd96328aedf83f635****_verifyvideo_dcb7.mov",
            // 視頻https或htttp地址,有效期15分鐘,從查詢時(shí)開始計(jì)時(shí)(僅當(dāng)客戶端設(shè)置視頻參數(shù)時(shí)返回)。
            "verifyVideoUrl": "http://cn-shanghai-aliyun-cloudauth-1260051251634779.oss-cn-shanghai.aliyuncs.com/verify/******?
            // 活體人臉質(zhì)量分?jǐn)?shù)。
            "qualityScore": 99.93476867675781,
            // 人臉和公安比對(duì)分?jǐn)?shù),閾值可參考下表詳細(xì)說(shuō)明。
            "verifyScore": 57.678396649466755
            // 降級(jí)標(biāo)識(shí)字段(僅當(dāng)deviceType是h5時(shí)返回)Keep-未降級(jí);url-該筆認(rèn)證用戶觸發(fā)了URL降級(jí)完成認(rèn)證;video-該筆認(rèn)證用戶觸發(fā)了視頻降級(jí)完成認(rèn)證
            "procedurePriorityResult":"keep"
        },
    }
  • ResultObject.SubCode錯(cuò)誤碼說(shuō)明,請(qǐng)參見ResultObject.SubCode錯(cuò)誤碼說(shuō)明

  • verifyScore閾值說(shuō)明:

    千分之一誤識(shí)率

    萬(wàn)分之五誤識(shí)率

    萬(wàn)分之一誤識(shí)率

    十萬(wàn)分之五誤識(shí)率

    十萬(wàn)分之一誤識(shí)率

    70

    71.5

    75

    76.5

    80

    說(shuō)明

    如果您有個(gè)性化需求,您可以根據(jù)業(yè)務(wù)情況,參考返回的比對(duì)分和閾值,自定義認(rèn)證結(jié)果。

  • 返回Code和Message說(shuō)明,請(qǐng)參見返回Code和Message

SDK調(diào)用示例

阿里云提供了OpenAPI門戶,可以使用網(wǎng)頁(yè)或命令行方式預(yù)先驗(yàn)證接口,您可以通過(guò)下面的鏈接進(jìn)入調(diào)試:

重要

在集成操作前,默認(rèn)您已經(jīng)開通了服務(wù)并獲取了AccessKey認(rèn)證場(chǎng)景ID,這兩個(gè)參數(shù)是調(diào)用接口所必需的。如果沒有,請(qǐng)參考前提條件獲取。

SDK集成

Java語(yǔ)言為例,要求JDK 1.8及以上版本。

  1. 在pom.xml中添加如下依賴,即可在Maven工程中使用SDK。

    • Java SDK依賴。以下依賴版本僅供參考,建議在實(shí)際配置時(shí)獲取最新依賴版本

      <dependency>
       <groupId>com.aliyun</groupId>
       <artifactId>cloudauth20190307</artifactId>
       <version>2.7.2</version>
      </dependency>
    • 身份驗(yàn)證依賴。請(qǐng)查看ChangeLog.txt獲取所有已發(fā)布的版本列表(建議使用最新的版本)。

      <dependency>
         <groupId>com.aliyun</groupId>
         <artifactId>credentials-java</artifactId>
         <version>LATEST</version>
      </dependency>
      說(shuō)明

      本示例通過(guò)阿里云Credentials工具從環(huán)境變量中讀取AccessKey,來(lái)實(shí)現(xiàn)API訪問(wèn)的身份驗(yàn)證。您需要提前在系統(tǒng)配置環(huán)境變量,具體操作,請(qǐng)參見身份驗(yàn)證配置

  2. 接口調(diào)用示例。

    重要

    調(diào)用示例中僅設(shè)定了必要參數(shù),詳細(xì)參數(shù)請(qǐng)參見InitFaceVerify-發(fā)起認(rèn)證請(qǐng)求DescribeFaceVerify-獲取認(rèn)證詳細(xì)數(shù)據(jù)

    InitFaceVerify接口調(diào)用示例

    import java.util.Arrays;
    import java.util.List;
    
    import com.aliyun.cloudauth20190307.Client;
    import com.aliyun.cloudauth20190307.models.*;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class InitFaceVerify {
    
        public static void main(String[] args) throws Exception {
    
            InitFaceVerifyRequest request = new InitFaceVerifyRequest();
            // 場(chǎng)景ID+L。
            request.setSceneId(100000xxxxL);
            // 設(shè)置商戶請(qǐng)求的唯一標(biāo)識(shí)。
            request.setOuterOrderNo("xxxx");
            // 認(rèn)證方案。
            request.setProductCode("ID_PRO");
            // 模式。
            request.setModel("LIVENESS");
            request.setCertType("IDENTITY_CARD");
            request.setCertName("張先生");
            request.setCertNo("xxxx");
            // MetaInfo環(huán)境參數(shù),此參數(shù)應(yīng)由前端js獲取并傳入。
            request.setMetaInfo("{}");
            //業(yè)務(wù)頁(yè)面回跳的目標(biāo)地址。
            request.setReturnUrl("https://www.aliyundoc.com");
    
            InitFaceVerifyResponse response = initFaceVerifyAutoRoute(request);
    
            response.getBody().getRequestId();
            response.getBody().getResultObject().getCertifyId();
            System.out.println(response.getBody().getRequestId());
            System.out.println(response.getBody().getCode());
            System.out.println(response.getBody().getMessage());
            System.out.println(response.getBody().getResultObject() == null ? null
                    : response.getBody().getResultObject().getCertifyId());
        }
    
        private static InitFaceVerifyResponse initFaceVerifyAutoRoute(InitFaceVerifyRequest request) {
            // 第一個(gè)為主區(qū)域Endpoint,第二個(gè)為備區(qū)域Endpoint。
            List<String> endpoints = Arrays.asList("cloudauth.cn-shanghai.aliyuncs.com", "cloudauth.cn-beijing.aliyuncs.com");
            InitFaceVerifyResponse lastResponse = null;
            for (int i=0; i<endpoints.size(); i++) {
                try {
                    InitFaceVerifyResponse response = initFaceVerify(endpoints.get(i), request);
                    lastResponse = response;
    
                    // 服務(wù)端錯(cuò)誤,切換到下個(gè)區(qū)域調(diào)用。
                    if(response != null){
                        if(500 == response.getStatusCode()){
                            continue;
                        }
                        if(response.getBody() != null){
                            if("500".equals(response.getBody().getCode())){
                                continue;
                            }
                        }
                    }
    
                    // 正常返回
                    return lastResponse;
                }catch (Exception e) {
                    e.printStackTrace();
                    if(i == endpoints.size()-1){
                        throw new RuntimeException(e);
                    }
                }
            }
    
            return lastResponse;
        }
    
        private static InitFaceVerifyResponse initFaceVerify(String endpoint, InitFaceVerifyRequest request)
                throws Exception {
            // 阿里云賬號(hào)AccessKey擁有所有API的訪問(wèn)權(quán)限,建議您使用RAM用戶進(jìn)行API訪問(wèn)或日常運(yùn)維。
            // 強(qiáng)烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導(dǎo)致AccessKey泄露,威脅您賬號(hào)下所有資源的安全。
            // 本示例通過(guò)阿里云Credentials工具從環(huán)境變量中讀取AccessKey,來(lái)實(shí)現(xiàn)API訪問(wèn)的身份驗(yàn)證。如何配置環(huán)境變量,請(qǐng)參見http://m.bestwisewords.com/document_detail/378657.html。
            com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
            Config config = new Config();
            config.setCredential(credentialClient);
            config.setEndpoint(endpoint);
            // 設(shè)置http代理。
            //config.setHttpProxy("http://xx.xx.xx.xx:xxxx");
            // 設(shè)置https代理。
            //config.setHttpsProxy("https://xx.xx.xx.xx:xxxx");
            Client client = new Client(config);
    
            // 創(chuàng)建RuntimeObject實(shí)例并設(shè)置運(yùn)行參數(shù)。
            RuntimeOptions runtime = new RuntimeOptions();
            runtime.readTimeout = 10000;
            runtime.connectTimeout = 10000;
    
            return client.initFaceVerifyWithOptions(request, runtime);
        }
    
    }

    DescribeFaceVerify接口調(diào)用示例

    import java.util.Arrays;
    import java.util.List;
    
    import com.aliyun.cloudauth20190307.Client;
    import com.aliyun.cloudauth20190307.models.DescribeFaceVerifyRequest;
    import com.aliyun.cloudauth20190307.models.DescribeFaceVerifyResponse;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class DescribeFaceVerify {
    
        public static void main(String[] args) throws Exception {
            
            // 創(chuàng)建API請(qǐng)求并設(shè)置參數(shù)。
            DescribeFaceVerifyRequest request = new DescribeFaceVerifyRequest(); 
            // 場(chǎng)景ID+L。
            request.setSceneId(0L); 
            // CertifyId在InitFaceVerify接口的返回值中。
            request.setCertifyId("xxxx");
       
            DescribeFaceVerifyResponse response = describeFaceVerifyAutoRoute(request);
    
            System.out.println(response.getBody().getRequestId());
            System.out.println(response.getBody().getCode());
            System.out.println(response.getBody().getMessage());
            System.out.println(
                    response.getBody().getResultObject() == null ? null : response.getBody().getResultObject().getPassed());
            System.out.println(
                    response.getBody().getResultObject() == null ? null : response.getBody().getResultObject().getSubCode());
            System.out.println(
                    response.getBody().getResultObject() == null ? null
                            : response.getBody().getResultObject().getIdentityInfo());
            System.out.println(
                    response.getBody().getResultObject() == null ? null
                            : response.getBody().getResultObject().getDeviceToken());
            System.out.println(
                    response.getBody().getResultObject() == null ? null
                            : response.getBody().getResultObject().getMaterialInfo());
        }
    
        private static DescribeFaceVerifyResponse describeFaceVerifyAutoRoute(DescribeFaceVerifyRequest request) {
            // 第一個(gè)為主區(qū)域Endpoint,第二個(gè)為備區(qū)域Endpoint。
            List<String> endpoints = Arrays.asList("cloudauth.cn-shanghai.aliyuncs.com", "cloudauth.cn-beijing.aliyuncs.com");
            DescribeFaceVerifyResponse lastResponse = null;
            for (int i = 0; i < endpoints.size(); i++) {
                try {
                    DescribeFaceVerifyResponse response = describeFaceVerify(endpoints.get(i), request);
                    lastResponse = response;
    
                    // 服務(wù)端錯(cuò)誤,切換到下個(gè)區(qū)域調(diào)用。
                    if (response != null) {
                        if (500 == response.getStatusCode()) {
                            continue;
                        }
                        if (response.getBody() != null) {
                            if ("500".equals(response.getBody().getCode())) {
                                continue;
                            }
                        }
                    }
    
                    return lastResponse;
                } catch (Exception e) {
                    if (i == endpoints.size() - 1) {
                        throw new RuntimeException(e);
                    }
                }
            }
    
            return lastResponse;
        }
    
        private static DescribeFaceVerifyResponse describeFaceVerify(String endpoint, DescribeFaceVerifyRequest request)
                throws Exception {
            // 阿里云賬號(hào)AccessKey擁有所有API的訪問(wèn)權(quán)限,建議您使用RAM用戶進(jìn)行API訪問(wèn)或日常運(yùn)維。
            // 強(qiáng)烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導(dǎo)致AccessKey泄露,威脅您賬號(hào)下所有資源的安全。
            //本示例通過(guò)阿里云Credentials工具從環(huán)境變量中讀取AccessKey,來(lái)實(shí)現(xiàn)API訪問(wèn)的身份驗(yàn)證。如何配置環(huán)境變量,請(qǐng)參見http://m.bestwisewords.com/document_detail/378657.html。
            com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
            Config config = new Config();
            config.setCredential(credentialClient);
            config.setEndpoint(endpoint);
    
            Client client = new Client(config);
            
            RuntimeOptions runtime = new RuntimeOptions();
            runtime.readTimeout = 10000;
            runtime.connectTimeout = 10000;
    
            return client.describeFaceVerifyWithOptions(request, runtime);
        }
    }