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

服務端集成

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

在H5頁面接入金融級實人認證方案時,開發者需要在后端服務器集成SDK,以便調用InitFaceVerify接口獲取用于瀏覽器進行實人認證的認證鏈接CertifyUrl。本文將詳細介紹服務端SDK的安裝方式、所調接口的參數說明以及實際調用接口示例說明。

集成須知

服務接入點

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

重要

建議您參考本文示例代碼,配置主備地域Endpoint。在主Endpoint發生故障時可以自動切換到備用Endpoint,保證系統的持續可用性。

地域

服務地址

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

QPS限量

API獨享QPS限量,詳情請參見服務端接口QPS限量說明

服務端需要集成的兩個接口

InitFaceVerify-發起認證請求

每次開始認證前通過調用本接口獲取用于瀏覽器進行實人認證的認證鏈接CertifyUrl和每次認證的唯一CertifyId

須將此接口的請求封裝為開始認證的業務接口,供網頁端調用。

請求參數

名稱

類型

是否必選

描述

示例值

SceneId

Long

要接入的認證場景ID。該ID在控制臺創建認證場景后自動生成。關于如何創建認證場景,請參見添加認證場景

1000000006

OuterOrderNo

String

您自定義的業務唯一標識,用于后續定位和排查問題使用。

支持長度為32位的字母和數字組合,請確保唯一。

e0c34a77f5ac40a5aa5e6ed20c353888

ProductCode

String

要接入的認證方案。

唯一取值:ID_PRO。詳情方案說明,請參見H5網頁接入

ID_PRO

Model

String

要進行活體檢測的類型。

說明

活體檢測類型僅支持下列取值,暫不支持自定義動作或組合。

  • LIVENESS(默認):眨眼動作活體檢測。

  • PHOTINUS_LIVENESS:眨眼動作活體+炫彩活體雙重檢測。

  • MULTI_ACTION:多動作活體檢測,眨眼+任意搖頭檢測(順序隨機)。

  • MOVE_ACTION(推薦):遠近動作+眨眼動作活體檢測。

  • MULTI_FAPTCHA:多動作活體檢測,眨眼+形跡判斷(順序隨機)。

    說明

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

PHOTINUS_LIVENESS

CertType

String

用戶證件類型。支持的證件類型,請參見使用限制

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

IDENTITY_CARD

CertName

String

您的終端用戶的真實姓名。

張三

CertNo

String

您的終端用戶的證件號碼。

330103xxxxxxxxxxxx

ReturnUrl

String

認證結束后回跳頁面的鏈接地址。

https://www.aliyun.com

MetaInfo

String

MetaInfo環境參數。實際環境需要通過JS文件,調用函數getMetaInfo()獲取,詳情請參見認證觸發頁面(啟動刷臉)

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

該示例僅供參考,實際集成中不能直接應用,否則會導致無法正常獲取到CertifyUrl

Mobile

String

您終端用戶的手機號碼。

130xxxxxxxx

Ip

String

您終端用戶的IP。

47.100.XX.XX

UserId

String

您自定義的用戶ID,請保持唯一。

123456789

CallbackUrl

String

認證結果的回調通知地址,回調請求方式默認為GET,回調地址必須以https開頭。平臺在完成認證后會回調該地址,并自動添加certifyIdpassed字段,passed字段值返回的是subcode值,示例:https://www.aliyun.com?callbackToken=1000004826&certifyId=shaxxxx&passed=200

重要
  • 僅當認證完成(包含認證通過和認證未通過)時才會觸發回調,若認證中放棄、異常中斷或未進行認證均不會通知。建議您收到回調通知時,若有需要可通過查詢接口獲取認證詳情信息。

  • 該值的傳入會在調用接口前做可訪問校驗,如果傳入的地址不能在公網訪問,會返回401。

https://www.aliyun.com

CallbackToken

CallbackToken

安全Token,由您自行生成,用于防重復、防篡改校驗。

如果設置了該值,會在回調地址中顯示CallbackToken字段。

NMjvQanQgplBSaEI0sL86WnQplB

CertifyUrlType

String

Web SDK設備類型。取值WEB或者H5

說明

只支持Web SDK設備類型。

WEB

CertifyUrlStyle

String

返回CertifyUrl類型,包括:

  • L:原始長鏈

  • S(默認):短鏈

L

AuthId

String

用戶授權ID,最大長度為64位字符。

92d46b9e9e2d703f2897f350d5bd4149

EncryptType

String

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

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

如需傳入加密算法,需對CertNameCertNo進行加密,并傳入加密后的密文。有關參數加密的更多信息,請參見參數加密說明

SM2

ProcedurePriority

String

移動端H5方式認證出現WebRTC或者Webassembly不兼容時的降級配置。

默認值為url

  • keep:不支持降級,直接返回。

  • url:支持降級,返回認證URL,用戶使用此URL打開或者切換瀏覽器進行認證。

  • video:支持降級,使用系統相機錄制一段3~5秒的眨眼視頻進行認證。

    說明

    當降級模式為Video時如下功能將失效,且產品安全性會降低,建議僅面向安全場景配置。

    • 活體檢測的類型設置將不生效。

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

url

FaceGuardOutput

String

人臉保鏢標簽種類。

DeviceRisk:設備風險標簽。

說明
  • 選擇輸出人臉保鏢會產生額外的費用,具體費用,請參見計費概述

  • 如果不需要輸出人臉保鏢標簽,可以不傳遞參數或者傳入空值。

DeviceRisk

RarelyCharacters

String

是否開啟生僻字模式:

  • Y:開啟。

    用戶認證前會彈出信息輸入框,需輸入生僻字姓名和身份證號碼,同意協議后才能開始認證流程。

  • N:不開啟(默認)。

Y

uiCustomUrl

String

UI配置文件URL。關于Web SDK自定義UI說明,請參見Web SDK UI自定義配置說明

www.aliyundoc.com

VideoEvidence

String

是否開啟視頻存證。

  • true:開啟

  • false:不開啟(默認)

說明

因為視頻文件較大,當網絡不穩定時系統會丟棄視頻文件優先保障認證必要圖片傳輸,建議您業務上設置為弱依賴視頻。

false

返回數據

名稱

類型

描述

示例值

RequestId

String

請求ID。

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

Message

String

返回信息。

success

Code

String

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

詳細說明,請參見返回Code和Message說明

200

ResultObject.CertifyId

String

實人認證唯一標識。

重要

CertifyId字段為計費統計字段,為了方便后續核對賬單,請您在本地留存該字段信息。

初始化接口返回的認證CertifyId在30分鐘有效僅能認證提交一次,請您在有效期內使用,避免重復使用。

91707dc296d469ad38e4c5efa6a0f24b

ResultObject.CertifyUrl

String

Web瀏覽器進行實人認證的URL,認證結束后根據入參ReturnUrl進行跳轉。

警告
  • 初始化接口返回的認證CertifyUrl在30分鐘有效僅能認證提交一次,請您在有效期內使用,避免重復使用。

  • 此參數需要入參中MetaInfo正確傳入,以返回與客戶端匹配的CertifyUrl。如無法獲取,請檢查MetaInfo以及其他傳入參數是否正確。

  • 此地址域名可能會隨服務更新而變更,為保證服務正常可用,建議不要對此地址域名進行訪問控制。

https://t.aliyun.com/****

DescribeFaceVerify-獲取認證詳細數據

當您收到回調通知之后,可以在服務端通過該接口獲取相應的認證狀態和認證資料。

說明

雖然InitFaceVerify在認證結束后跳轉ReturnUrl時會攜帶認證結果,但考慮到瀏覽器的安全性,建議調用此接口進行認證結果的二次驗證。

請求參數

名稱

類型

是否必選

描述

示例值

SceneId

Long

認證場景ID。

1000000006

CertifyId

String

實人認證唯一標識。

91707dc296d469ad38e4c5efa6a0f24b

返回數據

名稱

類型

描述

示例值

RequestId

String

請求ID。

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

Message

String

請求消息的響應信息。

success

Code

String

返回碼,詳細說明,請參見返回Code和Message

200

ResultObject.Passed

String

認證結果:

  • T:通過

  • F:未通過

重要

認證結果判定以此字段為準。

T

ResultObject.SubCode

String

認證結果描述。詳情請參見返回Code和Message

200

ResultObject.IdentityInfo

String

認證的主體信息,一般的認證場景返回為空。

null

ResultObject.DeviceRisk

String

設備風險標簽。

VirtualBrowser

說明

多個設備風險標簽以半角逗號(,)分隔。如需了解更多設備風險標簽及其含義,請參見人臉保鏢標簽說明

ResultObject.MaterialInfo

String

認證主體附件信息,主要為圖片類材料。

示例見下文

ResultObject.UserInfo

String

記錄在生僻字模式下用戶輸入的身份信息與對應編碼。返回數據為JSON格式字符串,姓名中無生僻字返回為空字符串。

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

  • verifyName:指通過驗證的最終姓名編碼。例如生僻字是通過轉碼認證通過:“王先生”,實際認證通過是“王先”。

  • number:指用戶輸入的證件號碼。

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

判斷認證結果請以ResultObject.Passed字段為準。

返回示例詳述

  • ResultObject.MaterialInfo的JSON格式示例:

    {
        // 是否為攻擊:攻擊為T,非攻擊為F。
        "faceAttack": "T",
        // 是否有臉部遮擋:有臉部遮擋為T,否則為F。
        "faceOcclusion": "F",
        // 認證的照片信息。
        "facialPictureFront": {
             //人臉攻擊分。
             "faceAttackScore": 0.00008597839769208804,
            // 照片存放客戶上海區域的OSS里,此為照片的bucket名。
            "ossBucketName": "cn-shanghai-aliyun-cloudauth-1260051251634779",
            // 照片存放客戶上海區域的OSS里,此為照片的文件名。
            "ossObjectName": "verify/1260051251634779/03a081bd96328aedf83f635f39a50c57_0.jpeg",
            // 照片https地址,有效期15分鐘,從查詢時開始計時。
            "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",
            // 視頻存放客戶上海區域的OSS里,此為視頻的文件名(僅當客戶端設置視頻參數時返回)。
            "ossVerifyVideoObjectName": "verify/1260051251634779/03a081bd96328aedf83f635****_verifyvideo_dcb7.mov",
            // 視頻https或htttp地址,有效期15分鐘,從查詢時開始計時(僅當客戶端設置視頻參數時返回)。
            "verifyVideoUrl": "http://cn-shanghai-aliyun-cloudauth-1260051251634779.oss-cn-shanghai.aliyuncs.com/verify/******?
            // 活體人臉質量分數。
            "qualityScore": 99.93476867675781,
            // 人臉和公安比對分數,閾值可參考下表詳細說明。
            "verifyScore": 57.678396649466755
            // 降級標識字段(僅當deviceType是h5時返回)Keep-未降級;url-該筆認證用戶觸發了URL降級完成認證;video-該筆認證用戶觸發了視頻降級完成認證
            "procedurePriorityResult":"keep"
        },
    }
  • ResultObject.SubCode錯誤碼說明,請參見ResultObject.SubCode錯誤碼說明

  • verifyScore閾值說明:

    千分之一誤識率

    萬分之五誤識率

    萬分之一誤識率

    十萬分之五誤識率

    十萬分之一誤識率

    70

    71.5

    75

    76.5

    80

    說明

    如果您有個性化需求,您可以根據業務情況,參考返回的比對分和閾值,自定義認證結果。

  • 返回Code和Message說明,請參見返回Code和Message

SDK調用示例

阿里云提供了OpenAPI門戶,可以使用網頁或命令行方式預先驗證接口,您可以通過下面的鏈接進入調試:

重要

在集成操作前,默認您已經開通了服務并獲取了AccessKey認證場景ID,這兩個參數是調用接口所必需的。如果沒有,請參考前提條件獲取。

SDK集成

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

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

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

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

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

      本示例通過阿里云Credentials工具從環境變量中讀取AccessKey,來實現API訪問的身份驗證。您需要提前在系統配置環境變量,具體操作,請參見身份驗證配置

  2. 接口調用示例。

    重要

    調用示例中僅設定了必要參數,詳細參數請參見InitFaceVerify-發起認證請求DescribeFaceVerify-獲取認證詳細數據

    InitFaceVerify接口調用示例

    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();
            // 場景ID+L。
            request.setSceneId(100000xxxxL);
            // 設置商戶請求的唯一標識。
            request.setOuterOrderNo("xxxx");
            // 認證方案。
            request.setProductCode("ID_PRO");
            // 模式。
            request.setModel("LIVENESS");
            request.setCertType("IDENTITY_CARD");
            request.setCertName("張先生");
            request.setCertNo("xxxx");
            // MetaInfo環境參數,此參數應由前端js獲取并傳入。
            request.setMetaInfo("{}");
            //業務頁面回跳的目標地址。
            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) {
            // 第一個為主區域Endpoint,第二個為備區域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;
    
                    // 服務端錯誤,切換到下個區域調用。
                    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 {
            // 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
            // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
            // 本示例通過阿里云Credentials工具從環境變量中讀取AccessKey,來實現API訪問的身份驗證。如何配置環境變量,請參見http://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);
            // 設置http代理。
            //config.setHttpProxy("http://xx.xx.xx.xx:xxxx");
            // 設置https代理。
            //config.setHttpsProxy("https://xx.xx.xx.xx:xxxx");
            Client client = new Client(config);
    
            // 創建RuntimeObject實例并設置運行參數。
            RuntimeOptions runtime = new RuntimeOptions();
            runtime.readTimeout = 10000;
            runtime.connectTimeout = 10000;
    
            return client.initFaceVerifyWithOptions(request, runtime);
        }
    
    }

    DescribeFaceVerify接口調用示例

    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 {
            
            // 創建API請求并設置參數。
            DescribeFaceVerifyRequest request = new DescribeFaceVerifyRequest(); 
            // 場景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) {
            // 第一個為主區域Endpoint,第二個為備區域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;
    
                    // 服務端錯誤,切換到下個區域調用。
                    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 {
            // 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
            // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
            //本示例通過阿里云Credentials工具從環境變量中讀取AccessKey,來實現API訪問的身份驗證。如何配置環境變量,請參見http://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);
        }
    }