qifengquan 1 سال پیش
والد
کامیت
92a657eaa3
100فایلهای تغییر یافته به همراه10171 افزوده شده و 4 حذف شده
  1. 73 0
      application/api/controller/Demo.php
  2. 19 1
      application/api/controller/User.php
  3. 64 0
      application/common/controller/DescribeFaceVerify.php
  4. 71 0
      application/common/controller/InitFaceVerify.php
  5. 33 3
      public/api.html
  6. BIN
      vendor.7z
  7. 15 0
      vendor/alibabacloud/cloudauth-20190307/.gitignore
  8. 65 0
      vendor/alibabacloud/cloudauth-20190307/.php_cs.dist
  9. 45 0
      vendor/alibabacloud/cloudauth-20190307/ChangeLog.md
  10. 201 0
      vendor/alibabacloud/cloudauth-20190307/LICENSE
  11. 35 0
      vendor/alibabacloud/cloudauth-20190307/README-CN.md
  12. 35 0
      vendor/alibabacloud/cloudauth-20190307/README.md
  13. 17 0
      vendor/alibabacloud/cloudauth-20190307/autoload.php
  14. 37 0
      vendor/alibabacloud/cloudauth-20190307/composer.json
  15. 1194 0
      vendor/alibabacloud/cloudauth-20190307/src/Cloudauth.php
  16. 229 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyRequest.php
  17. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponse.php
  18. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponseBody.php
  19. 75 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponseBody/resultObject.php
  20. 91 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesRequest.php
  21. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponse.php
  22. 104 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponseBody.php
  23. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponseBody/data.php
  24. 292 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyAdvanceRequest.php
  25. 291 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyRequest.php
  26. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponse.php
  27. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponseBody.php
  28. 103 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponseBody/resultObject.php
  29. 91 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyRequest.php
  30. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyResponse.php
  31. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyResponseBody.php
  32. 117 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingRequest.php
  33. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingResponse.php
  34. 103 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingResponseBody.php
  35. 133 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoRequest.php
  36. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponse.php
  37. 104 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody.php
  38. 60 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList.php
  39. 105 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList/deviceInfo.php
  40. 77 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyRequest.php
  41. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponse.php
  42. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponseBody.php
  43. 117 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponseBody/resultObject.php
  44. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponse.php
  45. 62 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponseBody.php
  46. 133 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponseBody/ossUploadToken.php
  47. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultRequest.php
  48. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponse.php
  49. 118 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody.php
  50. 144 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody/material.php
  51. 167 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody/material/idCardInfo.php
  52. 49 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKRequest.php
  53. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKResponse.php
  54. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKResponseBody.php
  55. 243 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenRequest.php
  56. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponse.php
  57. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponseBody.php
  58. 133 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponseBody/ossUploadToken.php
  59. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesRequest.php
  60. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponse.php
  61. 104 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody.php
  62. 76 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data.php
  63. 60 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos.php
  64. 61 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo.php
  65. 145 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes.php
  66. 77 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/headpose.php
  67. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/smiling.php
  68. 91 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceRect.php
  69. 377 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyRequest.php
  70. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponse.php
  71. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponseBody.php
  72. 61 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponseBody/resultObject.php
  73. 203 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyRequest.php
  74. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponse.php
  75. 84 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponseBody.php
  76. 83 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponseBody/resultObject.php
  77. 105 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoRequest.php
  78. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoResponse.php
  79. 119 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoResponseBody.php
  80. 145 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialRequest.php
  81. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponse.php
  82. 118 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponseBody.php
  83. 130 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponseBody/material.php
  84. 167 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponseBody/material/idCardInfo.php
  85. 15 0
      vendor/alibabacloud/openplatform-20191219/.gitignore
  86. 65 0
      vendor/alibabacloud/openplatform-20191219/.php_cs.dist
  87. 15 0
      vendor/alibabacloud/openplatform-20191219/ChangeLog.md
  88. 201 0
      vendor/alibabacloud/openplatform-20191219/LICENSE
  89. 35 0
      vendor/alibabacloud/openplatform-20191219/README-CN.md
  90. 35 0
      vendor/alibabacloud/openplatform-20191219/README.md
  91. 17 0
      vendor/alibabacloud/openplatform-20191219/autoload.php
  92. 33 0
      vendor/alibabacloud/openplatform-20191219/composer.json
  93. 59 0
      vendor/alibabacloud/openplatform-20191219/src/Models/AuthorizeFileUploadRequest.php
  94. 74 0
      vendor/alibabacloud/openplatform-20191219/src/Models/AuthorizeFileUploadResponse.php
  95. 131 0
      vendor/alibabacloud/openplatform-20191219/src/Models/AuthorizeFileUploadResponseBody.php
  96. 89 0
      vendor/alibabacloud/openplatform-20191219/src/OpenPlatform.php
  97. 12 0
      vendor/alibabacloud/tea-fileform/.gitignore
  98. 65 0
      vendor/alibabacloud/tea-fileform/.php_cs.dist
  99. 31 0
      vendor/alibabacloud/tea-fileform/README-CN.md
  100. 31 0
      vendor/alibabacloud/tea-fileform/README.md

+ 73 - 0
application/api/controller/Demo.php

@@ -0,0 +1,73 @@
+<?php
+
+namespace app\api\controller;
+
+use app\common\controller\Api;
+
+/**
+ * 示例接口
+ */
+class Demo extends Api
+{
+
+    //如果$noNeedLogin为空表示所有接口都需要登录才能请求
+    //如果$noNeedRight为空表示所有接口都需要验证权限才能请求
+    //如果接口已经设置无需登录,那也就无需鉴权了
+    //
+    // 无需登录的接口,*表示全部
+    protected $noNeedLogin = ['test', 'test1'];
+    // 无需鉴权的接口,*表示全部
+    protected $noNeedRight = ['test2'];
+
+    /**
+     * 测试方法
+     *
+     * @ApiTitle    (测试名称)
+     * @ApiSummary  (测试描述信息)
+     * @ApiMethod   (POST)
+     * @ApiRoute    (/api/demo/test/id/{id}/name/{name})
+     * @ApiHeaders  (name=token, type=string, required=true, description="请求的Token")
+     * @ApiParams   (name="id", type="integer", required=true, description="会员ID")
+     * @ApiParams   (name="name", type="string", required=true, description="用户名")
+     * @ApiParams   (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据")
+     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
+     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
+     * @ApiReturnParams   (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
+     * @ApiReturn   ({
+         'code':'1',
+         'msg':'返回成功'
+        })
+     */
+    public function test()
+    {
+        $this->success('返回成功', $this->request->param());
+    }
+
+    /**
+     * 无需登录的接口
+     *
+     */
+    public function test1()
+    {
+        $this->success('返回成功', ['action' => 'test1']);
+    }
+
+    /**
+     * 需要登录的接口
+     *
+     */
+    public function test2()
+    {
+        $this->success('返回成功', ['action' => 'test2']);
+    }
+
+    /**
+     * 需要登录且需要验证有相应组的权限
+     *
+     */
+    public function test3()
+    {
+        $this->success('返回成功', ['action' => 'test3']);
+    }
+
+}

+ 19 - 1
application/api/controller/User.php

@@ -4,6 +4,7 @@ namespace app\api\controller;
 
 use app\admin\controller\general\Profile;
 use app\common\controller\Api;
+use app\common\controller\InitFaceVerify;
 use app\common\library\Ems;
 use app\common\library\Sms;
 use app\common\model\Activity;
@@ -670,9 +671,26 @@ class User extends Api
     }
     /**
      * 身份认证
-     * @param string $
+     * @param string $CertName 真实姓名
+     * @param string $CertNo 证件号码
+     * @param string $MetaInfo
+     * @param string $ReturnUrl
      */
     public function idAuthentication(){
+        $CertName = $this->request->post('CertName');
+        $CertNo = $this->request->post('CertNo');
+        $MetaInfo = $this->request->post('MetaInfo');
+        $ReturnUrl = $this->request->post('ReturnUrl');
+        if(!$CertName && !$CertNo && !$MetaInfo && !$ReturnUrl){
+            $this->error('参数缺失');
+        }
+        $res = [
+            'CertName'=>$CertName,
+            'CertNo'=>$CertNo,
+            'MetaInfo'=>$MetaInfo,
+            'ReturnUrl'=>$ReturnUrl,
+        ];
+        InitFaceVerify::main($res);
 
     }
 

+ 64 - 0
application/common/controller/DescribeFaceVerify.php

@@ -0,0 +1,64 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+namespace app\common\controller;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Cloudauth;
+use \Exception;
+use AlibabaCloud\Tea\Exception\TeaError;
+use AlibabaCloud\Tea\Utils\Utils;
+
+use Darabonba\OpenApi\Models\Config;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyRequest;
+use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
+
+class DescribeFaceVerify {
+
+    /**
+     * 使用AK&SK初始化账号Client
+     * @param string $accessKeyId
+     * @param string $accessKeySecret
+     * @return Cloudauth Client
+     */
+    public static function createClient($accessKeyId, $accessKeySecret){
+        $config = new Config([
+            // 必填,您的 AccessKey ID
+            "accessKeyId" => $accessKeyId,
+            // 必填,您的 AccessKey Secret
+            "accessKeySecret" => $accessKeySecret
+        ]);
+        // Endpoint 请参考 https://api.aliyun.com/product/Cloudauth
+        $config->endpoint = "cloudauth.aliyuncs.com";
+        return new Cloudauth($config);
+    }
+
+    /**
+     * @param string[] $args
+     * @return void
+     */
+    public static function main($args){
+        // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
+        // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html
+        $client = self::createClient(getenv("LTAI4GDXpn5FftNNP1SWardn"), getenv('yLU8B0KaiCwmvgbOKtc5XGxk6Kh1IU'));
+        $initFaceVerifyRequest = new InitFaceVerifyRequest([]);
+        $runtime = new RuntimeOptions([
+            
+        ]);
+        try {
+            // 复制代码运行请自行打印 API 的返回值
+            $client->initFaceVerifyWithOptions($initFaceVerifyRequest, $runtime);
+        }
+        catch (Exception $error) {
+            if (!($error instanceof TeaError)) {
+                $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
+            }
+            // 如有需要,请打印 error
+            Utils::assertAsString($error->message);
+        }
+    }
+}
+$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
+if (file_exists($path)) {
+    require_once $path;
+}
+DescribeFaceVerify::main(array_slice($argv, 1));

+ 71 - 0
application/common/controller/InitFaceVerify.php

@@ -0,0 +1,71 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+namespace app\common\controller;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Cloudauth;
+use \Exception;
+use AlibabaCloud\Tea\Exception\TeaError;
+use AlibabaCloud\Tea\Utils\Utils;
+
+use Darabonba\OpenApi\Models\Config;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyRequest;
+use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
+
+class InitFaceVerify {
+
+    /**
+     * 使用AK&SK初始化账号Client
+     * @param string $accessKeyId
+     * @param string $accessKeySecret
+     * @return Cloudauth Client
+     */
+    public static function createClient($accessKeyId, $accessKeySecret){
+        $config = new Config([
+            // 必填,您的 AccessKey ID
+            "accessKeyId" => $accessKeyId,
+            // 必填,您的 AccessKey Secret
+            "accessKeySecret" => $accessKeySecret
+        ]);
+        // Endpoint 请参考 https://api.aliyun.com/product/Cloudauth
+        $config->endpoint = "cloudauth.aliyuncs.com";
+        return new Cloudauth($config);
+    }
+
+    /**
+     * @param string[] $args
+     * @return void
+     */
+    public static function main($args){
+        $client = self::createClient(getenv("LTAI4GDXpn5FftNNP1SWardn"), getenv('yLU8B0KaiCwmvgbOKtc5XGxk6Kh1IU'));
+//        $ReturnUrl = 'http://xiangduilun.hdlkeji.com/app/common/notifyx/type/' . $type.'/orderid/'.$orderId;
+        $initFaceVerifyRequest = new InitFaceVerifyRequest([
+            'SceneId'=>1000007515,
+            'OuterOrderNo'=>1,
+            'ProductCode'=>'ID_PRO',
+            'Model'=>'LIVENESS',
+            'CertType'=>'IDENTITY_CARD',
+            'CertName'=>$args['CertName'],//真实姓名
+            'CertNo'=>$args['CertNo'],//证件号码
+            'ReturnUrl'=>$args['ReturnUrl'],
+            'MetaInfo'=>$args['MetaInfo']
+        ]);
+        $runtime = new RuntimeOptions([]);
+        try {
+            // 复制代码运行请自行打印 API 的返回值
+            $client->initFaceVerifyWithOptions($initFaceVerifyRequest, $runtime);
+        }
+        catch (Exception $error) {
+            if (!($error instanceof TeaError)) {
+                $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
+            }
+            // 如有需要,请打印 error
+            Utils::assertAsString($error->message);
+        }
+    }
+}
+$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
+if (file_exists($path)) {
+    require_once $path;
+}
+InitFaceVerify::main(array_slice($argv, 1));

+ 33 - 3
public/api.html

@@ -6412,7 +6412,25 @@
                                                 </thead>
                                                 <tbody>
                                                                                                         <tr>
+                                                        <td>CertName</td>
+                                                        <td>string</td>
+                                                        <td>是</td>
+                                                        <td>真实姓名</td>
+                                                    </tr>
+                                                                                                        <tr>
+                                                        <td>CertNo</td>
+                                                        <td>string</td>
+                                                        <td>是</td>
+                                                        <td>证件号码</td>
+                                                    </tr>
+                                                                                                        <tr>
+                                                        <td>MetaInfo</td>
+                                                        <td>string</td>
+                                                        <td>是</td>
                                                         <td></td>
+                                                    </tr>
+                                                                                                        <tr>
+                                                        <td>ReturnUrl</td>
                                                         <td>string</td>
                                                         <td>是</td>
                                                         <td></td>
@@ -6440,8 +6458,20 @@
                                                 <div class="panel-body">
                                                     <form enctype="application/x-www-form-urlencoded" role="form" action="/api/user/idAuthentication" method="get" name="form53" id="form53">
                                                                                                                 <div class="form-group">
-                                                            <label class="control-label" for=""></label>
-                                                            <input type="string" class="form-control input-sm" id="" required placeholder="" name="">
+                                                            <label class="control-label" for="CertName">CertName</label>
+                                                            <input type="string" class="form-control input-sm" id="CertName" required placeholder="真实姓名" name="CertName">
+                                                        </div>
+                                                                                                                <div class="form-group">
+                                                            <label class="control-label" for="CertNo">CertNo</label>
+                                                            <input type="string" class="form-control input-sm" id="CertNo" required placeholder="证件号码" name="CertNo">
+                                                        </div>
+                                                                                                                <div class="form-group">
+                                                            <label class="control-label" for="MetaInfo">MetaInfo</label>
+                                                            <input type="string" class="form-control input-sm" id="MetaInfo" required placeholder="" name="MetaInfo">
+                                                        </div>
+                                                                                                                <div class="form-group">
+                                                            <label class="control-label" for="ReturnUrl">ReturnUrl</label>
+                                                            <input type="string" class="form-control input-sm" id="ReturnUrl" required placeholder="" name="ReturnUrl">
                                                         </div>
                                                                                                                 <div class="form-group form-group-submit">
                                                             <button type="submit" class="btn btn-success send" rel="53">提交</button>
@@ -10367,7 +10397,7 @@
 
                 </div>
                 <div class="col-md-6" align="right">
-                    Generated on 2023-07-21 15:19:46 <a href="./" target="_blank">相对论</a>
+                    Generated on 2023-07-21 17:40:37 <a href="./" target="_blank">相对论</a>
                 </div>
             </div>
 

BIN
vendor.7z


+ 15 - 0
vendor/alibabacloud/cloudauth-20190307/.gitignore

@@ -0,0 +1,15 @@
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+composer.lock
+
+.vscode/
+.idea
+.DS_Store
+
+cache/
+*.cache
+runtime/
+.php_cs.cache

+ 65 - 0
vendor/alibabacloud/cloudauth-20190307/.php_cs.dist

@@ -0,0 +1,65 @@
+<?php
+/*
+ * This document has been generated with
+ * https://mlocati.github.io/php-cs-fixer-configurator/#version:2.15|configurator
+ * you can change this configuration by importing this file.
+ */
+
+return PhpCsFixer\Config::create()
+    ->setRiskyAllowed(true)
+    ->setIndent('    ')
+    ->setRules([
+        '@PSR2'                                       => true,
+        '@PhpCsFixer'                                 => true,
+        '@Symfony:risky'                              => true,
+        'concat_space'                                => ['spacing' => 'one'],
+        'array_syntax'                                => ['syntax' => 'short'],
+        'array_indentation'                           => true,
+        'combine_consecutive_unsets'                  => true,
+        'method_separation'                           => true,
+        'single_quote'                                => true,
+        'declare_equal_normalize'                     => true,
+        'function_typehint_space'                     => true,
+        'hash_to_slash_comment'                       => true,
+        'include'                                     => true,
+        'lowercase_cast'                              => true,
+        'no_multiline_whitespace_before_semicolons'   => true,
+        'no_leading_import_slash'                     => true,
+        'no_multiline_whitespace_around_double_arrow' => true,
+        'no_spaces_around_offset'                     => true,
+        'no_unneeded_control_parentheses'             => true,
+        'no_unused_imports'                           => true,
+        'no_whitespace_before_comma_in_array'         => true,
+        'no_whitespace_in_blank_line'                 => true,
+        'object_operator_without_whitespace'          => true,
+        'single_blank_line_before_namespace'          => true,
+        'single_class_element_per_statement'          => true,
+        'space_after_semicolon'                       => true,
+        'standardize_not_equals'                      => true,
+        'ternary_operator_spaces'                     => true,
+        'trailing_comma_in_multiline_array'           => true,
+        'trim_array_spaces'                           => true,
+        'unary_operator_spaces'                       => true,
+        'whitespace_after_comma_in_array'             => true,
+        'no_extra_consecutive_blank_lines'            => [
+            'curly_brace_block',
+            'extra',
+            'parenthesis_brace_block',
+            'square_brace_block',
+            'throw',
+            'use',
+        ],
+        'binary_operator_spaces'       => [
+            'align_double_arrow' => true,
+            'align_equals'       => true,
+        ],
+        'braces'                                    => [
+            'allow_single_line_closure' => true,
+        ],
+    ])
+    ->setFinder(
+        PhpCsFixer\Finder::create()
+            ->exclude('vendor')
+            ->exclude('tests')
+            ->in(__DIR__)
+  );

+ 45 - 0
vendor/alibabacloud/cloudauth-20190307/ChangeLog.md

@@ -0,0 +1,45 @@
+2023-07-14 Version: 2.0.7
+- For 2019-03-07.
+
+2023-05-18 Version: 2.0.6
+- For 2019-03-07.
+
+2022-11-02 Version: 2.0.5
+- For 2019-03-07.
+
+2022-10-17 Version: 2.0.4
+- For 2019-03-07.
+
+2022-06-29 Version: 2.0.3
+- For 2019-03-07.
+
+2022-02-23 Version: 1.0.7
+- Add AuthId.
+
+2021-12-16 Version: 2.0.2
+- Generated php 2019-03-07 for Cloudauth.
+
+2021-10-27 Version: 2.0.1
+- Generated php 2019-03-07 for Cloudauth.
+
+2021-10-27 Version: 1.0.6
+- Generated php 2019-03-07 for Cloudauth.
+
+2021-09-09 Version: 1.0.5
+- AMP Version Change.
+
+2021-09-08 Version: 1.0.4
+- Support crop face image.
+
+2021-04-20 Version: 1.0.2
+- LivenessFaceVerify ContrastFaceVerify CompareFaceVerify API Return CertifyId.
+
+2021-04-09 Version: 1.0.1
+- New API SDK.
+
+2020-12-30 Version: 2.0.0
+- AMP Version Change.
+
+2020-11-26 Version: 1.0.0
+- ContrastFaceVerify Support Video.
+

+ 201 - 0
vendor/alibabacloud/cloudauth-20190307/LICENSE

@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

+ 35 - 0
vendor/alibabacloud/cloudauth-20190307/README-CN.md

@@ -0,0 +1,35 @@
+[English](README.md) | 简体中文
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+# Alibaba Cloud Cloudauth SDK for PHP
+
+## 安装
+
+### Composer
+
+```bash
+composer require alibabacloud/cloudauth-20190307
+```
+
+## 问题
+
+[提交 Issue](https://github.com/aliyun/alibabacloud-php-sdk/issues/new),不符合指南的问题可能会立即关闭。
+
+## 使用说明
+
+[快速使用](https://github.com/aliyun/alibabacloud-php-sdk/blob/master/docs/0-Examples-CN.md#%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8)
+
+## 发行说明
+
+每个版本的详细更改记录在[发行说明](./ChangeLog.txt)中。
+
+## 相关
+
+* [最新源码](https://github.com/aliyun/alibabacloud-php-sdk/)
+
+## 许可证
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 35 - 0
vendor/alibabacloud/cloudauth-20190307/README.md

@@ -0,0 +1,35 @@
+English | [简体中文](README-CN.md)
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+# Alibaba Cloud Cloudauth SDK for PHP
+
+## Installation
+
+### Composer
+
+```bash
+composer require alibabacloud/cloudauth-20190307
+```
+
+## Issues
+
+[Opening an Issue](https://github.com/aliyun/alibabacloud-php-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.
+
+## Usage
+
+[Quick Examples](https://github.com/aliyun/alibabacloud-php-sdk/blob/master/docs/0-Examples-EN.md#quick-examples)
+
+## Changelog
+
+Detailed changes for each release are documented in the [release notes](./ChangeLog.txt).
+
+## References
+
+* [Latest Release](https://github.com/aliyun/alibabacloud-php-sdk/)
+
+## License
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 17 - 0
vendor/alibabacloud/cloudauth-20190307/autoload.php

@@ -0,0 +1,17 @@
+<?php
+
+if (file_exists(__DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php')) {
+    require_once __DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
+}
+
+spl_autoload_register(function ($class) {
+    $name = str_replace('AlibabaCloud\\SDK\\Cloudauth\\V20190307\\', '', $class);
+    $file = __DIR__ . \DIRECTORY_SEPARATOR . 'src' . \DIRECTORY_SEPARATOR . str_replace('\\', \DIRECTORY_SEPARATOR, $name) . '.php';
+    if (file_exists($file)) {
+        require_once $file;
+
+        return true;
+    }
+
+    return false;
+});

+ 37 - 0
vendor/alibabacloud/cloudauth-20190307/composer.json

@@ -0,0 +1,37 @@
+{
+  "name": "alibabacloud/cloudauth-20190307",
+  "description": "Alibaba Cloud ID Verification (20190307) SDK Library for PHP",
+  "type": "library",
+  "license": "Apache-2.0",
+  "authors": [
+    {
+      "name": "Alibaba Cloud SDK",
+      "email": "sdk-team@alibabacloud.com"
+    }
+  ],
+  "require": {
+    "php": ">5.5",
+    "alibabacloud/tea-utils": "^0.2.19",
+    "alibabacloud/tea-oss-sdk": "^0.3.0",
+    "alibabacloud/openplatform-20191219": "^2.0.1",
+    "alibabacloud/tea-oss-utils": "^0.3.1",
+    "alibabacloud/tea-fileform": "^0.3.0",
+    "alibabacloud/darabonba-openapi": "^0.2.8",
+    "alibabacloud/openapi-util": "^0.1.10|^0.2.1",
+    "alibabacloud/endpoint-util": "^0.1.0"
+  },
+  "autoload": {
+    "psr-4": {
+      "AlibabaCloud\\SDK\\Cloudauth\\V20190307\\": "src"
+    }
+  },
+  "scripts": {
+    "fixer": "php-cs-fixer fix ./"
+  },
+  "config": {
+    "sort-packages": true,
+    "preferred-install": "dist",
+    "optimize-autoloader": true
+  },
+  "prefer-stable": true
+}

+ 1194 - 0
vendor/alibabacloud/cloudauth-20190307/src/Cloudauth.php

@@ -0,0 +1,1194 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307;
+
+use AlibabaCloud\Endpoint\Endpoint;
+use AlibabaCloud\OpenApiUtil\OpenApiUtilClient;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFacesRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFacesResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFaceVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFaceVerifyResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyAdvanceRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateAuthKeyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateAuthKeyResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateVerifySettingRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateVerifySettingResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeOssUploadTokenResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifySDKRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifySDKResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyTokenRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyTokenResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\LivenessFaceVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\LivenessFaceVerifyResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ModifyDeviceInfoRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ModifyDeviceInfoResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponse;
+use AlibabaCloud\SDK\OpenPlatform\V20191219\Models\AuthorizeFileUploadRequest;
+use AlibabaCloud\SDK\OpenPlatform\V20191219\Models\AuthorizeFileUploadResponse;
+use AlibabaCloud\SDK\OpenPlatform\V20191219\OpenPlatform;
+use AlibabaCloud\SDK\OSS\OSS;
+use AlibabaCloud\SDK\OSS\OSS\PostObjectRequest;
+use AlibabaCloud\SDK\OSS\OSS\PostObjectRequest\header;
+use AlibabaCloud\Tea\FileForm\FileForm\FileField;
+use AlibabaCloud\Tea\Utils\Utils;
+use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
+use Darabonba\OpenApi\Models\Config;
+use Darabonba\OpenApi\Models\OpenApiRequest;
+use Darabonba\OpenApi\Models\Params;
+use Darabonba\OpenApi\OpenApiClient;
+
+class Cloudauth extends OpenApiClient
+{
+    public function __construct($config)
+    {
+        parent::__construct($config);
+        $this->_endpointRule = 'central';
+        $this->checkConfig($config);
+        $this->_endpoint = $this->getEndpoint('cloudauth', $this->_regionId, $this->_endpointRule, $this->_network, $this->_suffix, $this->_endpointMap, $this->_endpoint);
+    }
+
+    /**
+     * @param string   $productId
+     * @param string   $regionId
+     * @param string   $endpointRule
+     * @param string   $network
+     * @param string   $suffix
+     * @param string[] $endpointMap
+     * @param string   $endpoint
+     *
+     * @return string
+     */
+    public function getEndpoint($productId, $regionId, $endpointRule, $network, $suffix, $endpointMap, $endpoint)
+    {
+        if (!Utils::empty_($endpoint)) {
+            return $endpoint;
+        }
+        if (!Utils::isUnset($endpointMap) && !Utils::empty_(@$endpointMap[$regionId])) {
+            return @$endpointMap[$regionId];
+        }
+
+        return Endpoint::getEndpointRules($productId, $regionId, $endpointRule, $network, $suffix);
+    }
+
+    /**
+     * @param CompareFaceVerifyRequest $request
+     * @param RuntimeOptions           $runtime
+     *
+     * @return CompareFaceVerifyResponse
+     */
+    public function compareFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $body = [];
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $body['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $body['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $body['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->sourceCertifyId)) {
+            $body['SourceCertifyId'] = $request->sourceCertifyId;
+        }
+        if (!Utils::isUnset($request->sourceFaceContrastPicture)) {
+            $body['SourceFaceContrastPicture'] = $request->sourceFaceContrastPicture;
+        }
+        if (!Utils::isUnset($request->sourceFaceContrastPictureUrl)) {
+            $body['SourceFaceContrastPictureUrl'] = $request->sourceFaceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->sourceOssBucketName)) {
+            $body['SourceOssBucketName'] = $request->sourceOssBucketName;
+        }
+        if (!Utils::isUnset($request->sourceOssObjectName)) {
+            $body['SourceOssObjectName'] = $request->sourceOssObjectName;
+        }
+        if (!Utils::isUnset($request->targetCertifyId)) {
+            $body['TargetCertifyId'] = $request->targetCertifyId;
+        }
+        if (!Utils::isUnset($request->targetFaceContrastPicture)) {
+            $body['TargetFaceContrastPicture'] = $request->targetFaceContrastPicture;
+        }
+        if (!Utils::isUnset($request->targetFaceContrastPictureUrl)) {
+            $body['TargetFaceContrastPictureUrl'] = $request->targetFaceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->targetOssBucketName)) {
+            $body['TargetOssBucketName'] = $request->targetOssBucketName;
+        }
+        if (!Utils::isUnset($request->targetOssObjectName)) {
+            $body['TargetOssObjectName'] = $request->targetOssObjectName;
+        }
+        $req = new OpenApiRequest([
+            'body' => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'CompareFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return CompareFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param CompareFaceVerifyRequest $request
+     *
+     * @return CompareFaceVerifyResponse
+     */
+    public function compareFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->compareFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param CompareFacesRequest $request
+     * @param RuntimeOptions      $runtime
+     *
+     * @return CompareFacesResponse
+     */
+    public function compareFacesWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $body = [];
+        if (!Utils::isUnset($request->sourceImageType)) {
+            $body['SourceImageType'] = $request->sourceImageType;
+        }
+        if (!Utils::isUnset($request->sourceImageValue)) {
+            $body['SourceImageValue'] = $request->sourceImageValue;
+        }
+        if (!Utils::isUnset($request->targetImageType)) {
+            $body['TargetImageType'] = $request->targetImageType;
+        }
+        if (!Utils::isUnset($request->targetImageValue)) {
+            $body['TargetImageValue'] = $request->targetImageValue;
+        }
+        $req = new OpenApiRequest([
+            'body' => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'CompareFaces',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return CompareFacesResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param CompareFacesRequest $request
+     *
+     * @return CompareFacesResponse
+     */
+    public function compareFaces($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->compareFacesWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param ContrastFaceVerifyRequest $request
+     * @param RuntimeOptions            $runtime
+     *
+     * @return ContrastFaceVerifyResponse
+     */
+    public function contrastFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->model)) {
+            $query['Model'] = $request->model;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->certName)) {
+            $body['CertName'] = $request->certName;
+        }
+        if (!Utils::isUnset($request->certNo)) {
+            $body['CertNo'] = $request->certNo;
+        }
+        if (!Utils::isUnset($request->certType)) {
+            $body['CertType'] = $request->certType;
+        }
+        if (!Utils::isUnset($request->certifyId)) {
+            $body['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->deviceToken)) {
+            $body['DeviceToken'] = $request->deviceToken;
+        }
+        if (!Utils::isUnset($request->encryptType)) {
+            $body['EncryptType'] = $request->encryptType;
+        }
+        if (!Utils::isUnset($request->faceContrastFile)) {
+            $body['FaceContrastFile'] = $request->faceContrastFile;
+        }
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        if (!Utils::isUnset($request->faceContrastPictureUrl)) {
+            $body['FaceContrastPictureUrl'] = $request->faceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->ip)) {
+            $body['Ip'] = $request->ip;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $body['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->ossBucketName)) {
+            $body['OssBucketName'] = $request->ossBucketName;
+        }
+        if (!Utils::isUnset($request->ossObjectName)) {
+            $body['OssObjectName'] = $request->ossObjectName;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $body['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $body['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $body['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $body['UserId'] = $request->userId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'ContrastFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return ContrastFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param ContrastFaceVerifyRequest $request
+     *
+     * @return ContrastFaceVerifyResponse
+     */
+    public function contrastFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->contrastFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param ContrastFaceVerifyAdvanceRequest $request
+     * @param RuntimeOptions                   $runtime
+     *
+     * @return ContrastFaceVerifyResponse
+     */
+    public function contrastFaceVerifyAdvance($request, $runtime)
+    {
+        // Step 0: init client
+        $accessKeyId          = $this->_credential->getAccessKeyId();
+        $accessKeySecret      = $this->_credential->getAccessKeySecret();
+        $securityToken        = $this->_credential->getSecurityToken();
+        $credentialType       = $this->_credential->getType();
+        $openPlatformEndpoint = $this->_openPlatformEndpoint;
+        if (Utils::isUnset($openPlatformEndpoint)) {
+            $openPlatformEndpoint = 'openplatform.aliyuncs.com';
+        }
+        if (Utils::isUnset($credentialType)) {
+            $credentialType = 'access_key';
+        }
+        $authConfig = new Config([
+            'accessKeyId'     => $accessKeyId,
+            'accessKeySecret' => $accessKeySecret,
+            'securityToken'   => $securityToken,
+            'type'            => $credentialType,
+            'endpoint'        => $openPlatformEndpoint,
+            'protocol'        => $this->_protocol,
+            'regionId'        => $this->_regionId,
+        ]);
+        $authClient  = new OpenPlatform($authConfig);
+        $authRequest = new AuthorizeFileUploadRequest([
+            'product'  => 'Cloudauth',
+            'regionId' => $this->_regionId,
+        ]);
+        $authResponse = new AuthorizeFileUploadResponse([]);
+        $ossConfig    = new \AlibabaCloud\SDK\OSS\OSS\Config([
+            'accessKeySecret' => $accessKeySecret,
+            'type'            => 'access_key',
+            'protocol'        => $this->_protocol,
+            'regionId'        => $this->_regionId,
+        ]);
+        $ossClient     = null;
+        $fileObj       = new FileField([]);
+        $ossHeader     = new header([]);
+        $uploadRequest = new PostObjectRequest([]);
+        $ossRuntime    = new \AlibabaCloud\Tea\OSSUtils\OSSUtils\RuntimeOptions([]);
+        OpenApiUtilClient::convert($runtime, $ossRuntime);
+        $contrastFaceVerifyReq = new ContrastFaceVerifyRequest([]);
+        OpenApiUtilClient::convert($request, $contrastFaceVerifyReq);
+        if (!Utils::isUnset($request->faceContrastFileObject)) {
+            $authResponse           = $authClient->authorizeFileUploadWithOptions($authRequest, $runtime);
+            $ossConfig->accessKeyId = $authResponse->body->accessKeyId;
+            $ossConfig->endpoint    = OpenApiUtilClient::getEndpoint($authResponse->body->endpoint, $authResponse->body->useAccelerate, $this->_endpointType);
+            $ossClient              = new OSS($ossConfig);
+            $fileObj                = new FileField([
+                'filename'    => $authResponse->body->objectKey,
+                'content'     => $request->faceContrastFileObject,
+                'contentType' => '',
+            ]);
+            $ossHeader = new header([
+                'accessKeyId'         => $authResponse->body->accessKeyId,
+                'policy'              => $authResponse->body->encodedPolicy,
+                'signature'           => $authResponse->body->signature,
+                'key'                 => $authResponse->body->objectKey,
+                'file'                => $fileObj,
+                'successActionStatus' => '201',
+            ]);
+            $uploadRequest = new PostObjectRequest([
+                'bucketName' => $authResponse->body->bucket,
+                'header'     => $ossHeader,
+            ]);
+            $ossClient->postObject($uploadRequest, $ossRuntime);
+            $contrastFaceVerifyReq->faceContrastFile = 'http://' . $authResponse->body->bucket . '.' . $authResponse->body->endpoint . '/' . $authResponse->body->objectKey . '';
+        }
+
+        return $this->contrastFaceVerifyWithOptions($contrastFaceVerifyReq, $runtime);
+    }
+
+    /**
+     * @param CreateAuthKeyRequest $request
+     * @param RuntimeOptions       $runtime
+     *
+     * @return CreateAuthKeyResponse
+     */
+    public function createAuthKeyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->authYears)) {
+            $query['AuthYears'] = $request->authYears;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->test)) {
+            $query['Test'] = $request->test;
+        }
+        if (!Utils::isUnset($request->userDeviceId)) {
+            $query['UserDeviceId'] = $request->userDeviceId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'CreateAuthKey',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return CreateAuthKeyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param CreateAuthKeyRequest $request
+     *
+     * @return CreateAuthKeyResponse
+     */
+    public function createAuthKey($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->createAuthKeyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param CreateVerifySettingRequest $request
+     * @param RuntimeOptions             $runtime
+     *
+     * @return CreateVerifySettingResponse
+     */
+    public function createVerifySettingWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizName)) {
+            $query['BizName'] = $request->bizName;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->guideStep)) {
+            $query['GuideStep'] = $request->guideStep;
+        }
+        if (!Utils::isUnset($request->privacyStep)) {
+            $query['PrivacyStep'] = $request->privacyStep;
+        }
+        if (!Utils::isUnset($request->resultStep)) {
+            $query['ResultStep'] = $request->resultStep;
+        }
+        if (!Utils::isUnset($request->solution)) {
+            $query['Solution'] = $request->solution;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'CreateVerifySetting',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return CreateVerifySettingResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param CreateVerifySettingRequest $request
+     *
+     * @return CreateVerifySettingResponse
+     */
+    public function createVerifySetting($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->createVerifySettingWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param DescribeDeviceInfoRequest $request
+     * @param RuntimeOptions            $runtime
+     *
+     * @return DescribeDeviceInfoResponse
+     */
+    public function describeDeviceInfoWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->currentPage)) {
+            $query['CurrentPage'] = $request->currentPage;
+        }
+        if (!Utils::isUnset($request->deviceId)) {
+            $query['DeviceId'] = $request->deviceId;
+        }
+        if (!Utils::isUnset($request->expiredEndDay)) {
+            $query['ExpiredEndDay'] = $request->expiredEndDay;
+        }
+        if (!Utils::isUnset($request->expiredStartDay)) {
+            $query['ExpiredStartDay'] = $request->expiredStartDay;
+        }
+        if (!Utils::isUnset($request->pageSize)) {
+            $query['PageSize'] = $request->pageSize;
+        }
+        if (!Utils::isUnset($request->userDeviceId)) {
+            $query['UserDeviceId'] = $request->userDeviceId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeDeviceInfo',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeDeviceInfoResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param DescribeDeviceInfoRequest $request
+     *
+     * @return DescribeDeviceInfoResponse
+     */
+    public function describeDeviceInfo($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeDeviceInfoWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param DescribeFaceVerifyRequest $request
+     * @param RuntimeOptions            $runtime
+     *
+     * @return DescribeFaceVerifyResponse
+     */
+    public function describeFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->certifyId)) {
+            $query['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->pictureReturnType)) {
+            $query['PictureReturnType'] = $request->pictureReturnType;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $query['SceneId'] = $request->sceneId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param DescribeFaceVerifyRequest $request
+     *
+     * @return DescribeFaceVerifyResponse
+     */
+    public function describeFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param RuntimeOptions $runtime
+     *
+     * @return DescribeOssUploadTokenResponse
+     */
+    public function describeOssUploadTokenWithOptions($runtime)
+    {
+        $req    = new OpenApiRequest([]);
+        $params = new Params([
+            'action'      => 'DescribeOssUploadToken',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeOssUploadTokenResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @return DescribeOssUploadTokenResponse
+     */
+    public function describeOssUploadToken()
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeOssUploadTokenWithOptions($runtime);
+    }
+
+    /**
+     * @param DescribeVerifyResultRequest $request
+     * @param RuntimeOptions              $runtime
+     *
+     * @return DescribeVerifyResultResponse
+     */
+    public function describeVerifyResultWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizId)) {
+            $query['BizId'] = $request->bizId;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeVerifyResult',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeVerifyResultResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param DescribeVerifyResultRequest $request
+     *
+     * @return DescribeVerifyResultResponse
+     */
+    public function describeVerifyResult($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeVerifyResultWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param DescribeVerifySDKRequest $request
+     * @param RuntimeOptions           $runtime
+     *
+     * @return DescribeVerifySDKResponse
+     */
+    public function describeVerifySDKWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->taskId)) {
+            $query['TaskId'] = $request->taskId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeVerifySDK',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeVerifySDKResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param DescribeVerifySDKRequest $request
+     *
+     * @return DescribeVerifySDKResponse
+     */
+    public function describeVerifySDK($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeVerifySDKWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param DescribeVerifyTokenRequest $request
+     * @param RuntimeOptions             $runtime
+     *
+     * @return DescribeVerifyTokenResponse
+     */
+    public function describeVerifyTokenWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizId)) {
+            $query['BizId'] = $request->bizId;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->callbackSeed)) {
+            $query['CallbackSeed'] = $request->callbackSeed;
+        }
+        if (!Utils::isUnset($request->callbackUrl)) {
+            $query['CallbackUrl'] = $request->callbackUrl;
+        }
+        if (!Utils::isUnset($request->faceRetainedImageUrl)) {
+            $query['FaceRetainedImageUrl'] = $request->faceRetainedImageUrl;
+        }
+        if (!Utils::isUnset($request->failedRedirectUrl)) {
+            $query['FailedRedirectUrl'] = $request->failedRedirectUrl;
+        }
+        if (!Utils::isUnset($request->idCardBackImageUrl)) {
+            $query['IdCardBackImageUrl'] = $request->idCardBackImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardFrontImageUrl)) {
+            $query['IdCardFrontImageUrl'] = $request->idCardFrontImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardNumber)) {
+            $query['IdCardNumber'] = $request->idCardNumber;
+        }
+        if (!Utils::isUnset($request->name)) {
+            $query['Name'] = $request->name;
+        }
+        if (!Utils::isUnset($request->passedRedirectUrl)) {
+            $query['PassedRedirectUrl'] = $request->passedRedirectUrl;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $query['UserId'] = $request->userId;
+        }
+        if (!Utils::isUnset($request->userIp)) {
+            $query['UserIp'] = $request->userIp;
+        }
+        if (!Utils::isUnset($request->userPhoneNumber)) {
+            $query['UserPhoneNumber'] = $request->userPhoneNumber;
+        }
+        if (!Utils::isUnset($request->userRegistTime)) {
+            $query['UserRegistTime'] = $request->userRegistTime;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeVerifyToken',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeVerifyTokenResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param DescribeVerifyTokenRequest $request
+     *
+     * @return DescribeVerifyTokenResponse
+     */
+    public function describeVerifyToken($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeVerifyTokenWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param DetectFaceAttributesRequest $request
+     * @param RuntimeOptions              $runtime
+     *
+     * @return DetectFaceAttributesResponse
+     */
+    public function detectFaceAttributesWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $body = [];
+        if (!Utils::isUnset($request->bizType)) {
+            $body['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->materialValue)) {
+            $body['MaterialValue'] = $request->materialValue;
+        }
+        $req = new OpenApiRequest([
+            'body' => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'DetectFaceAttributes',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DetectFaceAttributesResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param DetectFaceAttributesRequest $request
+     *
+     * @return DetectFaceAttributesResponse
+     */
+    public function detectFaceAttributes($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->detectFaceAttributesWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param InitFaceVerifyRequest $request
+     * @param RuntimeOptions        $runtime
+     *
+     * @return InitFaceVerifyResponse
+     */
+    public function initFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->callbackToken)) {
+            $query['CallbackToken'] = $request->callbackToken;
+        }
+        if (!Utils::isUnset($request->callbackUrl)) {
+            $query['CallbackUrl'] = $request->callbackUrl;
+        }
+        if (!Utils::isUnset($request->certName)) {
+            $query['CertName'] = $request->certName;
+        }
+        if (!Utils::isUnset($request->certNo)) {
+            $query['CertNo'] = $request->certNo;
+        }
+        if (!Utils::isUnset($request->certType)) {
+            $query['CertType'] = $request->certType;
+        }
+        if (!Utils::isUnset($request->certifyId)) {
+            $query['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->certifyUrlType)) {
+            $query['CertifyUrlType'] = $request->certifyUrlType;
+        }
+        if (!Utils::isUnset($request->encryptType)) {
+            $query['EncryptType'] = $request->encryptType;
+        }
+        if (!Utils::isUnset($request->faceContrastPictureUrl)) {
+            $query['FaceContrastPictureUrl'] = $request->faceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->ip)) {
+            $query['Ip'] = $request->ip;
+        }
+        if (!Utils::isUnset($request->metaInfo)) {
+            $query['MetaInfo'] = $request->metaInfo;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $query['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->ossBucketName)) {
+            $query['OssBucketName'] = $request->ossBucketName;
+        }
+        if (!Utils::isUnset($request->ossObjectName)) {
+            $query['OssObjectName'] = $request->ossObjectName;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $query['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->procedurePriority)) {
+            $query['ProcedurePriority'] = $request->procedurePriority;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $query['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->returnUrl)) {
+            $query['ReturnUrl'] = $request->returnUrl;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $query['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->suitableType)) {
+            $query['SuitableType'] = $request->suitableType;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $query['UserId'] = $request->userId;
+        }
+        if (!Utils::isUnset($request->voluntaryCustomizedContent)) {
+            $query['VoluntaryCustomizedContent'] = $request->voluntaryCustomizedContent;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->authId)) {
+            $body['AuthId'] = $request->authId;
+        }
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        if (!Utils::isUnset($request->model)) {
+            $body['Model'] = $request->model;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'InitFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return InitFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param InitFaceVerifyRequest $request
+     *
+     * @return InitFaceVerifyResponse
+     */
+    public function initFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->initFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param LivenessFaceVerifyRequest $request
+     * @param RuntimeOptions            $runtime
+     *
+     * @return LivenessFaceVerifyResponse
+     */
+    public function livenessFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->model)) {
+            $query['Model'] = $request->model;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->certifyId)) {
+            $body['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->deviceToken)) {
+            $body['DeviceToken'] = $request->deviceToken;
+        }
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        if (!Utils::isUnset($request->faceContrastPictureUrl)) {
+            $body['FaceContrastPictureUrl'] = $request->faceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->ip)) {
+            $body['Ip'] = $request->ip;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $body['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->ossBucketName)) {
+            $body['OssBucketName'] = $request->ossBucketName;
+        }
+        if (!Utils::isUnset($request->ossObjectName)) {
+            $body['OssObjectName'] = $request->ossObjectName;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $body['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $body['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $body['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $body['UserId'] = $request->userId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'LivenessFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return LivenessFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param LivenessFaceVerifyRequest $request
+     *
+     * @return LivenessFaceVerifyResponse
+     */
+    public function livenessFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->livenessFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param ModifyDeviceInfoRequest $request
+     * @param RuntimeOptions          $runtime
+     *
+     * @return ModifyDeviceInfoResponse
+     */
+    public function modifyDeviceInfoWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->deviceId)) {
+            $query['DeviceId'] = $request->deviceId;
+        }
+        if (!Utils::isUnset($request->duration)) {
+            $query['Duration'] = $request->duration;
+        }
+        if (!Utils::isUnset($request->expiredDay)) {
+            $query['ExpiredDay'] = $request->expiredDay;
+        }
+        if (!Utils::isUnset($request->userDeviceId)) {
+            $query['UserDeviceId'] = $request->userDeviceId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'ModifyDeviceInfo',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return ModifyDeviceInfoResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param ModifyDeviceInfoRequest $request
+     *
+     * @return ModifyDeviceInfoResponse
+     */
+    public function modifyDeviceInfo($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->modifyDeviceInfoWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param VerifyMaterialRequest $request
+     * @param RuntimeOptions        $runtime
+     *
+     * @return VerifyMaterialResponse
+     */
+    public function verifyMaterialWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizId)) {
+            $query['BizId'] = $request->bizId;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->faceImageUrl)) {
+            $query['FaceImageUrl'] = $request->faceImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardBackImageUrl)) {
+            $query['IdCardBackImageUrl'] = $request->idCardBackImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardFrontImageUrl)) {
+            $query['IdCardFrontImageUrl'] = $request->idCardFrontImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardNumber)) {
+            $query['IdCardNumber'] = $request->idCardNumber;
+        }
+        if (!Utils::isUnset($request->name)) {
+            $query['Name'] = $request->name;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $query['UserId'] = $request->userId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'VerifyMaterial',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return VerifyMaterialResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param VerifyMaterialRequest $request
+     *
+     * @return VerifyMaterialResponse
+     */
+    public function verifyMaterial($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->verifyMaterialWithOptions($request, $runtime);
+    }
+}

+ 229 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyRequest.php

@@ -0,0 +1,229 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CompareFaceVerifyRequest extends Model
+{
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @example e0c34a77f5ac40a5aa5e6ed20c353888
+     *
+     * @var string
+     */
+    public $outerOrderNo;
+
+    /**
+     * @example PV_FC
+     *
+     * @var string
+     */
+    public $productCode;
+
+    /**
+     * @example 1000000006
+     *
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @example 0bfa7c493f850e5178b9f8613634c9xx
+     *
+     * @var string
+     */
+    public $sourceCertifyId;
+
+    /**
+     * @example /9j/4AAQSkZJRgABAQAASxxxxxxx
+     *
+     * @var string
+     */
+    public $sourceFaceContrastPicture;
+
+    /**
+     * @example https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg
+     *
+     * @var string
+     */
+    public $sourceFaceContrastPictureUrl;
+
+    /**
+     * @example cn-shanghai-aliyun-cloudauth-xxxxx
+     *
+     * @var string
+     */
+    public $sourceOssBucketName;
+
+    /**
+     * @example verify/xxxxx/xxxxxx.jpeg
+     *
+     * @var string
+     */
+    public $sourceOssObjectName;
+
+    /**
+     * @example 0bfa7c493f850e5178b9f8613634c9xx
+     *
+     * @var string
+     */
+    public $targetCertifyId;
+
+    /**
+     * @example /9j/4AAQSkZJRgABAQAASxxxxxxx
+     *
+     * @var string
+     */
+    public $targetFaceContrastPicture;
+
+    /**
+     * @example https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg
+     *
+     * @var string
+     */
+    public $targetFaceContrastPictureUrl;
+
+    /**
+     * @example cn-shanghai-aliyun-cloudauth-xxxxx
+     *
+     * @var string
+     */
+    public $targetOssBucketName;
+
+    /**
+     * @example verify/xxxxx/xxxxxx.jpeg
+     *
+     * @var string
+     */
+    public $targetOssObjectName;
+    protected $_name = [
+        'crop'                         => 'Crop',
+        'outerOrderNo'                 => 'OuterOrderNo',
+        'productCode'                  => 'ProductCode',
+        'sceneId'                      => 'SceneId',
+        'sourceCertifyId'              => 'SourceCertifyId',
+        'sourceFaceContrastPicture'    => 'SourceFaceContrastPicture',
+        'sourceFaceContrastPictureUrl' => 'SourceFaceContrastPictureUrl',
+        'sourceOssBucketName'          => 'SourceOssBucketName',
+        'sourceOssObjectName'          => 'SourceOssObjectName',
+        'targetCertifyId'              => 'TargetCertifyId',
+        'targetFaceContrastPicture'    => 'TargetFaceContrastPicture',
+        'targetFaceContrastPictureUrl' => 'TargetFaceContrastPictureUrl',
+        'targetOssBucketName'          => 'TargetOssBucketName',
+        'targetOssObjectName'          => 'TargetOssObjectName',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
+        }
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
+        }
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->sourceCertifyId) {
+            $res['SourceCertifyId'] = $this->sourceCertifyId;
+        }
+        if (null !== $this->sourceFaceContrastPicture) {
+            $res['SourceFaceContrastPicture'] = $this->sourceFaceContrastPicture;
+        }
+        if (null !== $this->sourceFaceContrastPictureUrl) {
+            $res['SourceFaceContrastPictureUrl'] = $this->sourceFaceContrastPictureUrl;
+        }
+        if (null !== $this->sourceOssBucketName) {
+            $res['SourceOssBucketName'] = $this->sourceOssBucketName;
+        }
+        if (null !== $this->sourceOssObjectName) {
+            $res['SourceOssObjectName'] = $this->sourceOssObjectName;
+        }
+        if (null !== $this->targetCertifyId) {
+            $res['TargetCertifyId'] = $this->targetCertifyId;
+        }
+        if (null !== $this->targetFaceContrastPicture) {
+            $res['TargetFaceContrastPicture'] = $this->targetFaceContrastPicture;
+        }
+        if (null !== $this->targetFaceContrastPictureUrl) {
+            $res['TargetFaceContrastPictureUrl'] = $this->targetFaceContrastPictureUrl;
+        }
+        if (null !== $this->targetOssBucketName) {
+            $res['TargetOssBucketName'] = $this->targetOssBucketName;
+        }
+        if (null !== $this->targetOssObjectName) {
+            $res['TargetOssObjectName'] = $this->targetOssObjectName;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFaceVerifyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
+        }
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
+        }
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['SourceCertifyId'])) {
+            $model->sourceCertifyId = $map['SourceCertifyId'];
+        }
+        if (isset($map['SourceFaceContrastPicture'])) {
+            $model->sourceFaceContrastPicture = $map['SourceFaceContrastPicture'];
+        }
+        if (isset($map['SourceFaceContrastPictureUrl'])) {
+            $model->sourceFaceContrastPictureUrl = $map['SourceFaceContrastPictureUrl'];
+        }
+        if (isset($map['SourceOssBucketName'])) {
+            $model->sourceOssBucketName = $map['SourceOssBucketName'];
+        }
+        if (isset($map['SourceOssObjectName'])) {
+            $model->sourceOssObjectName = $map['SourceOssObjectName'];
+        }
+        if (isset($map['TargetCertifyId'])) {
+            $model->targetCertifyId = $map['TargetCertifyId'];
+        }
+        if (isset($map['TargetFaceContrastPicture'])) {
+            $model->targetFaceContrastPicture = $map['TargetFaceContrastPicture'];
+        }
+        if (isset($map['TargetFaceContrastPictureUrl'])) {
+            $model->targetFaceContrastPictureUrl = $map['TargetFaceContrastPictureUrl'];
+        }
+        if (isset($map['TargetOssBucketName'])) {
+            $model->targetOssBucketName = $map['TargetOssBucketName'];
+        }
+        if (isset($map['TargetOssObjectName'])) {
+            $model->targetOssObjectName = $map['TargetOssObjectName'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CompareFaceVerifyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var CompareFaceVerifyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFaceVerifyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = CompareFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 90 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponseBody.php

@@ -0,0 +1,90 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class CompareFaceVerifyResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @example success
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example 130A2C10-B9EE-4D84-88E3-5384FF039795
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 75 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,75 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @example T
+     *
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @example 99.60875
+     *
+     * @var float
+     */
+    public $verifyScore;
+    protected $_name = [
+        'certifyId'   => 'CertifyId',
+        'passed'      => 'Passed',
+        'verifyScore' => 'VerifyScore',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->passed) {
+            $res['Passed'] = $this->passed;
+        }
+        if (null !== $this->verifyScore) {
+            $res['VerifyScore'] = $this->verifyScore;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['Passed'])) {
+            $model->passed = $map['Passed'];
+        }
+        if (isset($map['VerifyScore'])) {
+            $model->verifyScore = $map['VerifyScore'];
+        }
+
+        return $model;
+    }
+}

+ 91 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesRequest.php

@@ -0,0 +1,91 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CompareFacesRequest extends Model
+{
+    /**
+     * @example FacePic
+     *
+     * @var string
+     */
+    public $sourceImageType;
+
+    /**
+     * @example http%3A%2F%2Fjiangsu.china.com.cn%2Fuploadfile%2F2015%2F0114%2F1421221304095989.jpg
+     *
+     * @var string
+     */
+    public $sourceImageValue;
+
+    /**
+     * @example FacePic
+     *
+     * @var string
+     */
+    public $targetImageType;
+
+    /**
+     * @example http%3A%2F%2Fjiangsu.china.com.cn%2Fuploadfile%2F2015%2F0114%2F1421221304095989.jpg
+     *
+     * @var string
+     */
+    public $targetImageValue;
+    protected $_name = [
+        'sourceImageType'  => 'SourceImageType',
+        'sourceImageValue' => 'SourceImageValue',
+        'targetImageType'  => 'TargetImageType',
+        'targetImageValue' => 'TargetImageValue',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->sourceImageType) {
+            $res['SourceImageType'] = $this->sourceImageType;
+        }
+        if (null !== $this->sourceImageValue) {
+            $res['SourceImageValue'] = $this->sourceImageValue;
+        }
+        if (null !== $this->targetImageType) {
+            $res['TargetImageType'] = $this->targetImageType;
+        }
+        if (null !== $this->targetImageValue) {
+            $res['TargetImageValue'] = $this->targetImageValue;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFacesRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['SourceImageType'])) {
+            $model->sourceImageType = $map['SourceImageType'];
+        }
+        if (isset($map['SourceImageValue'])) {
+            $model->sourceImageValue = $map['SourceImageValue'];
+        }
+        if (isset($map['TargetImageType'])) {
+            $model->targetImageType = $map['TargetImageType'];
+        }
+        if (isset($map['TargetImageValue'])) {
+            $model->targetImageValue = $map['TargetImageValue'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CompareFacesResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var CompareFacesResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFacesResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = CompareFacesResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 104 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponseBody.php

@@ -0,0 +1,104 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFacesResponseBody\data;
+use AlibabaCloud\Tea\Model;
+
+class CompareFacesResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var data
+     */
+    public $data;
+
+    /**
+     * @example Error.InternalError
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example true
+     *
+     * @var bool
+     */
+    public $success;
+    protected $_name = [
+        'code'      => 'Code',
+        'data'      => 'Data',
+        'message'   => 'Message',
+        'requestId' => 'RequestId',
+        'success'   => 'Success',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->data) {
+            $res['Data'] = null !== $this->data ? $this->data->toMap() : null;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->success) {
+            $res['Success'] = $this->success;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFacesResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Data'])) {
+            $model->data = data::fromMap($map['Data']);
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['Success'])) {
+            $model->success = $map['Success'];
+        }
+
+        return $model;
+    }
+}

+ 63 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponseBody/data.php

@@ -0,0 +1,63 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFacesResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class data extends Model
+{
+    /**
+     * @example {"0.0001":"90.07","0.001":"80.01","0.01":"70.02"}
+     *
+     * @var string
+     */
+    public $confidenceThresholds;
+
+    /**
+     * @example 98.7913
+     *
+     * @var float
+     */
+    public $similarityScore;
+    protected $_name = [
+        'confidenceThresholds' => 'ConfidenceThresholds',
+        'similarityScore'      => 'SimilarityScore',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->confidenceThresholds) {
+            $res['ConfidenceThresholds'] = $this->confidenceThresholds;
+        }
+        if (null !== $this->similarityScore) {
+            $res['SimilarityScore'] = $this->similarityScore;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return data
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['ConfidenceThresholds'])) {
+            $model->confidenceThresholds = $map['ConfidenceThresholds'];
+        }
+        if (isset($map['SimilarityScore'])) {
+            $model->similarityScore = $map['SimilarityScore'];
+        }
+
+        return $model;
+    }
+}

+ 292 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyAdvanceRequest.php

@@ -0,0 +1,292 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+use GuzzleHttp\Psr7\Stream;
+
+class ContrastFaceVerifyAdvanceRequest extends Model
+{
+    /**
+     * @var string
+     */
+    public $certName;
+
+    /**
+     * @example 330103xxxxxxxxxxxx
+     *
+     * @var string
+     */
+    public $certNo;
+
+    /**
+     * @example IDENTITY_CARD
+     *
+     * @var string
+     */
+    public $certType;
+
+    /**
+     * @example 0bfa7c493f850e5178b9f8613634c9xx
+     *
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @example McozS1ZWRcRZStlERcZZo_QOytx5jcgZoZJEoRLOxxxxxxx
+     *
+     * @var string
+     */
+    public $deviceToken;
+
+    /**
+     * @var string
+     */
+    public $encryptType;
+
+    /**
+     * @var Stream
+     */
+    public $faceContrastFileObject;
+
+    /**
+     * @example /9j/4AAQSkZJRgABAQAASxxxxxxx
+     *
+     * @var string
+     */
+    public $faceContrastPicture;
+
+    /**
+     * @example https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg
+     *
+     * @var string
+     */
+    public $faceContrastPictureUrl;
+
+    /**
+     * @example 114.xxx.xxx.xxx
+     *
+     * @var string
+     */
+    public $ip;
+
+    /**
+     * @example 130xxxxxxxx
+     *
+     * @var string
+     */
+    public $mobile;
+
+    /**
+     * @var string
+     */
+    public $model;
+
+    /**
+     * @example cn-shanghai-aliyun-cloudauth-xxxxx
+     *
+     * @var string
+     */
+    public $ossBucketName;
+
+    /**
+     * @example verify/xxxxx/xxxxxx.jpeg
+     *
+     * @var string
+     */
+    public $ossObjectName;
+
+    /**
+     * @example e0c34a77f5ac40a5aa5e6ed20c353888
+     *
+     * @var string
+     */
+    public $outerOrderNo;
+
+    /**
+     * @example ID_MIN
+     *
+     * @var string
+     */
+    public $productCode;
+
+    /**
+     * @example 1000000006
+     *
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @example 123456789
+     *
+     * @var string
+     */
+    public $userId;
+    protected $_name = [
+        'certName'               => 'CertName',
+        'certNo'                 => 'CertNo',
+        'certType'               => 'CertType',
+        'certifyId'              => 'CertifyId',
+        'crop'                   => 'Crop',
+        'deviceToken'            => 'DeviceToken',
+        'encryptType'            => 'EncryptType',
+        'faceContrastFileObject' => 'FaceContrastFile',
+        'faceContrastPicture'    => 'FaceContrastPicture',
+        'faceContrastPictureUrl' => 'FaceContrastPictureUrl',
+        'ip'                     => 'Ip',
+        'mobile'                 => 'Mobile',
+        'model'                  => 'Model',
+        'ossBucketName'          => 'OssBucketName',
+        'ossObjectName'          => 'OssObjectName',
+        'outerOrderNo'           => 'OuterOrderNo',
+        'productCode'            => 'ProductCode',
+        'sceneId'                => 'SceneId',
+        'userId'                 => 'UserId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certName) {
+            $res['CertName'] = $this->certName;
+        }
+        if (null !== $this->certNo) {
+            $res['CertNo'] = $this->certNo;
+        }
+        if (null !== $this->certType) {
+            $res['CertType'] = $this->certType;
+        }
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
+        }
+        if (null !== $this->deviceToken) {
+            $res['DeviceToken'] = $this->deviceToken;
+        }
+        if (null !== $this->encryptType) {
+            $res['EncryptType'] = $this->encryptType;
+        }
+        if (null !== $this->faceContrastFileObject) {
+            $res['FaceContrastFile'] = $this->faceContrastFileObject;
+        }
+        if (null !== $this->faceContrastPicture) {
+            $res['FaceContrastPicture'] = $this->faceContrastPicture;
+        }
+        if (null !== $this->faceContrastPictureUrl) {
+            $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
+        }
+        if (null !== $this->ip) {
+            $res['Ip'] = $this->ip;
+        }
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
+        }
+        if (null !== $this->model) {
+            $res['Model'] = $this->model;
+        }
+        if (null !== $this->ossBucketName) {
+            $res['OssBucketName'] = $this->ossBucketName;
+        }
+        if (null !== $this->ossObjectName) {
+            $res['OssObjectName'] = $this->ossObjectName;
+        }
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
+        }
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ContrastFaceVerifyAdvanceRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertName'])) {
+            $model->certName = $map['CertName'];
+        }
+        if (isset($map['CertNo'])) {
+            $model->certNo = $map['CertNo'];
+        }
+        if (isset($map['CertType'])) {
+            $model->certType = $map['CertType'];
+        }
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
+        }
+        if (isset($map['DeviceToken'])) {
+            $model->deviceToken = $map['DeviceToken'];
+        }
+        if (isset($map['EncryptType'])) {
+            $model->encryptType = $map['EncryptType'];
+        }
+        if (isset($map['FaceContrastFile'])) {
+            $model->faceContrastFileObject = $map['FaceContrastFile'];
+        }
+        if (isset($map['FaceContrastPicture'])) {
+            $model->faceContrastPicture = $map['FaceContrastPicture'];
+        }
+        if (isset($map['FaceContrastPictureUrl'])) {
+            $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
+        }
+        if (isset($map['Ip'])) {
+            $model->ip = $map['Ip'];
+        }
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
+        }
+        if (isset($map['Model'])) {
+            $model->model = $map['Model'];
+        }
+        if (isset($map['OssBucketName'])) {
+            $model->ossBucketName = $map['OssBucketName'];
+        }
+        if (isset($map['OssObjectName'])) {
+            $model->ossObjectName = $map['OssObjectName'];
+        }
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
+        }
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
+        }
+
+        return $model;
+    }
+}

+ 291 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyRequest.php

@@ -0,0 +1,291 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class ContrastFaceVerifyRequest extends Model
+{
+    /**
+     * @var string
+     */
+    public $certName;
+
+    /**
+     * @example 330103xxxxxxxxxxxx
+     *
+     * @var string
+     */
+    public $certNo;
+
+    /**
+     * @example IDENTITY_CARD
+     *
+     * @var string
+     */
+    public $certType;
+
+    /**
+     * @example 0bfa7c493f850e5178b9f8613634c9xx
+     *
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @example McozS1ZWRcRZStlERcZZo_QOytx5jcgZoZJEoRLOxxxxxxx
+     *
+     * @var string
+     */
+    public $deviceToken;
+
+    /**
+     * @var string
+     */
+    public $encryptType;
+
+    /**
+     * @var string
+     */
+    public $faceContrastFile;
+
+    /**
+     * @example /9j/4AAQSkZJRgABAQAASxxxxxxx
+     *
+     * @var string
+     */
+    public $faceContrastPicture;
+
+    /**
+     * @example https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg
+     *
+     * @var string
+     */
+    public $faceContrastPictureUrl;
+
+    /**
+     * @example 114.xxx.xxx.xxx
+     *
+     * @var string
+     */
+    public $ip;
+
+    /**
+     * @example 130xxxxxxxx
+     *
+     * @var string
+     */
+    public $mobile;
+
+    /**
+     * @var string
+     */
+    public $model;
+
+    /**
+     * @example cn-shanghai-aliyun-cloudauth-xxxxx
+     *
+     * @var string
+     */
+    public $ossBucketName;
+
+    /**
+     * @example verify/xxxxx/xxxxxx.jpeg
+     *
+     * @var string
+     */
+    public $ossObjectName;
+
+    /**
+     * @example e0c34a77f5ac40a5aa5e6ed20c353888
+     *
+     * @var string
+     */
+    public $outerOrderNo;
+
+    /**
+     * @example ID_MIN
+     *
+     * @var string
+     */
+    public $productCode;
+
+    /**
+     * @example 1000000006
+     *
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @example 123456789
+     *
+     * @var string
+     */
+    public $userId;
+    protected $_name = [
+        'certName'               => 'CertName',
+        'certNo'                 => 'CertNo',
+        'certType'               => 'CertType',
+        'certifyId'              => 'CertifyId',
+        'crop'                   => 'Crop',
+        'deviceToken'            => 'DeviceToken',
+        'encryptType'            => 'EncryptType',
+        'faceContrastFile'       => 'FaceContrastFile',
+        'faceContrastPicture'    => 'FaceContrastPicture',
+        'faceContrastPictureUrl' => 'FaceContrastPictureUrl',
+        'ip'                     => 'Ip',
+        'mobile'                 => 'Mobile',
+        'model'                  => 'Model',
+        'ossBucketName'          => 'OssBucketName',
+        'ossObjectName'          => 'OssObjectName',
+        'outerOrderNo'           => 'OuterOrderNo',
+        'productCode'            => 'ProductCode',
+        'sceneId'                => 'SceneId',
+        'userId'                 => 'UserId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certName) {
+            $res['CertName'] = $this->certName;
+        }
+        if (null !== $this->certNo) {
+            $res['CertNo'] = $this->certNo;
+        }
+        if (null !== $this->certType) {
+            $res['CertType'] = $this->certType;
+        }
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
+        }
+        if (null !== $this->deviceToken) {
+            $res['DeviceToken'] = $this->deviceToken;
+        }
+        if (null !== $this->encryptType) {
+            $res['EncryptType'] = $this->encryptType;
+        }
+        if (null !== $this->faceContrastFile) {
+            $res['FaceContrastFile'] = $this->faceContrastFile;
+        }
+        if (null !== $this->faceContrastPicture) {
+            $res['FaceContrastPicture'] = $this->faceContrastPicture;
+        }
+        if (null !== $this->faceContrastPictureUrl) {
+            $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
+        }
+        if (null !== $this->ip) {
+            $res['Ip'] = $this->ip;
+        }
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
+        }
+        if (null !== $this->model) {
+            $res['Model'] = $this->model;
+        }
+        if (null !== $this->ossBucketName) {
+            $res['OssBucketName'] = $this->ossBucketName;
+        }
+        if (null !== $this->ossObjectName) {
+            $res['OssObjectName'] = $this->ossObjectName;
+        }
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
+        }
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ContrastFaceVerifyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertName'])) {
+            $model->certName = $map['CertName'];
+        }
+        if (isset($map['CertNo'])) {
+            $model->certNo = $map['CertNo'];
+        }
+        if (isset($map['CertType'])) {
+            $model->certType = $map['CertType'];
+        }
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
+        }
+        if (isset($map['DeviceToken'])) {
+            $model->deviceToken = $map['DeviceToken'];
+        }
+        if (isset($map['EncryptType'])) {
+            $model->encryptType = $map['EncryptType'];
+        }
+        if (isset($map['FaceContrastFile'])) {
+            $model->faceContrastFile = $map['FaceContrastFile'];
+        }
+        if (isset($map['FaceContrastPicture'])) {
+            $model->faceContrastPicture = $map['FaceContrastPicture'];
+        }
+        if (isset($map['FaceContrastPictureUrl'])) {
+            $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
+        }
+        if (isset($map['Ip'])) {
+            $model->ip = $map['Ip'];
+        }
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
+        }
+        if (isset($map['Model'])) {
+            $model->model = $map['Model'];
+        }
+        if (isset($map['OssBucketName'])) {
+            $model->ossBucketName = $map['OssBucketName'];
+        }
+        if (isset($map['OssObjectName'])) {
+            $model->ossObjectName = $map['OssObjectName'];
+        }
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
+        }
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class ContrastFaceVerifyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var ContrastFaceVerifyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ContrastFaceVerifyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = ContrastFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 90 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponseBody.php

@@ -0,0 +1,90 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class ContrastFaceVerifyResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @example success
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example 130A2C10-B9EE-4D84-88E3-5384FF039795
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ContrastFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 103 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,103 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @example null
+     *
+     * @var string
+     */
+    public $identityInfo;
+
+    /**
+     * @example {"faceAttack": "F","facialPictureFront": {"qualityScore": 88.3615493774414,"verifyScore": 50.28594166529785}}
+     *
+     * @var string
+     */
+    public $materialInfo;
+
+    /**
+     * @example T
+     *
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $subCode;
+    protected $_name = [
+        'certifyId'    => 'CertifyId',
+        'identityInfo' => 'IdentityInfo',
+        'materialInfo' => 'MaterialInfo',
+        'passed'       => 'Passed',
+        'subCode'      => 'SubCode',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->identityInfo) {
+            $res['IdentityInfo'] = $this->identityInfo;
+        }
+        if (null !== $this->materialInfo) {
+            $res['MaterialInfo'] = $this->materialInfo;
+        }
+        if (null !== $this->passed) {
+            $res['Passed'] = $this->passed;
+        }
+        if (null !== $this->subCode) {
+            $res['SubCode'] = $this->subCode;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['IdentityInfo'])) {
+            $model->identityInfo = $map['IdentityInfo'];
+        }
+        if (isset($map['MaterialInfo'])) {
+            $model->materialInfo = $map['MaterialInfo'];
+        }
+        if (isset($map['Passed'])) {
+            $model->passed = $map['Passed'];
+        }
+        if (isset($map['SubCode'])) {
+            $model->subCode = $map['SubCode'];
+        }
+
+        return $model;
+    }
+}

+ 91 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyRequest.php

@@ -0,0 +1,91 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CreateAuthKeyRequest extends Model
+{
+    /**
+     * @example 1
+     *
+     * @var int
+     */
+    public $authYears;
+
+    /**
+     * @example FACE_TEST
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example false
+     *
+     * @var bool
+     */
+    public $test;
+
+    /**
+     * @example 3iJ1AY$oHcu7mC69
+     *
+     * @var string
+     */
+    public $userDeviceId;
+    protected $_name = [
+        'authYears'    => 'AuthYears',
+        'bizType'      => 'BizType',
+        'test'         => 'Test',
+        'userDeviceId' => 'UserDeviceId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->authYears) {
+            $res['AuthYears'] = $this->authYears;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->test) {
+            $res['Test'] = $this->test;
+        }
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateAuthKeyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AuthYears'])) {
+            $model->authYears = $map['AuthYears'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['Test'])) {
+            $model->test = $map['Test'];
+        }
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CreateAuthKeyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var CreateAuthKeyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateAuthKeyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = CreateAuthKeyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 63 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyResponseBody.php

@@ -0,0 +1,63 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CreateAuthKeyResponseBody extends Model
+{
+    /**
+     * @example auth.1KQMcnLd4m37LN2D0F0WCD-1qtQI$
+     *
+     * @var string
+     */
+    public $authKey;
+
+    /**
+     * @example 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
+     *
+     * @var string
+     */
+    public $requestId;
+    protected $_name = [
+        'authKey'   => 'AuthKey',
+        'requestId' => 'RequestId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->authKey) {
+            $res['AuthKey'] = $this->authKey;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateAuthKeyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AuthKey'])) {
+            $model->authKey = $map['AuthKey'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+
+        return $model;
+    }
+}

+ 117 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingRequest.php

@@ -0,0 +1,117 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CreateVerifySettingRequest extends Model
+{
+    /**
+     * @var string
+     */
+    public $bizName;
+
+    /**
+     * @example UserRegister
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example false
+     *
+     * @var bool
+     */
+    public $guideStep;
+
+    /**
+     * @example true
+     *
+     * @var bool
+     */
+    public $privacyStep;
+
+    /**
+     * @example false
+     *
+     * @var bool
+     */
+    public $resultStep;
+
+    /**
+     * @example RPBasic
+     *
+     * @var string
+     */
+    public $solution;
+    protected $_name = [
+        'bizName'     => 'BizName',
+        'bizType'     => 'BizType',
+        'guideStep'   => 'GuideStep',
+        'privacyStep' => 'PrivacyStep',
+        'resultStep'  => 'ResultStep',
+        'solution'    => 'Solution',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizName) {
+            $res['BizName'] = $this->bizName;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->guideStep) {
+            $res['GuideStep'] = $this->guideStep;
+        }
+        if (null !== $this->privacyStep) {
+            $res['PrivacyStep'] = $this->privacyStep;
+        }
+        if (null !== $this->resultStep) {
+            $res['ResultStep'] = $this->resultStep;
+        }
+        if (null !== $this->solution) {
+            $res['Solution'] = $this->solution;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateVerifySettingRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BizName'])) {
+            $model->bizName = $map['BizName'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['GuideStep'])) {
+            $model->guideStep = $map['GuideStep'];
+        }
+        if (isset($map['PrivacyStep'])) {
+            $model->privacyStep = $map['PrivacyStep'];
+        }
+        if (isset($map['ResultStep'])) {
+            $model->resultStep = $map['ResultStep'];
+        }
+        if (isset($map['Solution'])) {
+            $model->solution = $map['Solution'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CreateVerifySettingResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var CreateVerifySettingResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateVerifySettingResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = CreateVerifySettingResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 103 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingResponseBody.php

@@ -0,0 +1,103 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CreateVerifySettingResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $bizName;
+
+    /**
+     * @example UserRegister
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example D6163397-15C5-419C-9ACC-B7C83E0B4C10
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example RPBasic
+     *
+     * @var string
+     */
+    public $solution;
+
+    /**
+     * @var string[]
+     */
+    public $stepList;
+    protected $_name = [
+        'bizName'   => 'BizName',
+        'bizType'   => 'BizType',
+        'requestId' => 'RequestId',
+        'solution'  => 'Solution',
+        'stepList'  => 'StepList',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizName) {
+            $res['BizName'] = $this->bizName;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->solution) {
+            $res['Solution'] = $this->solution;
+        }
+        if (null !== $this->stepList) {
+            $res['StepList'] = $this->stepList;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateVerifySettingResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BizName'])) {
+            $model->bizName = $map['BizName'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['Solution'])) {
+            $model->solution = $map['Solution'];
+        }
+        if (isset($map['StepList'])) {
+            if (!empty($map['StepList'])) {
+                $model->stepList = $map['StepList'];
+            }
+        }
+
+        return $model;
+    }
+}

+ 133 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoRequest.php

@@ -0,0 +1,133 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeDeviceInfoRequest extends Model
+{
+    /**
+     * @example FACE_TEST
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example 1
+     *
+     * @var int
+     */
+    public $currentPage;
+
+    /**
+     * @example wd.6ziUffspAeW5FVYbaqmexR-1qwNjM
+     *
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @example 20200330
+     *
+     * @var string
+     */
+    public $expiredEndDay;
+
+    /**
+     * @example 20190401
+     *
+     * @var string
+     */
+    public $expiredStartDay;
+
+    /**
+     * @example 20
+     *
+     * @var int
+     */
+    public $pageSize;
+
+    /**
+     * @example 3iJ1AY$oHcu7mC69
+     *
+     * @var string
+     */
+    public $userDeviceId;
+    protected $_name = [
+        'bizType'         => 'BizType',
+        'currentPage'     => 'CurrentPage',
+        'deviceId'        => 'DeviceId',
+        'expiredEndDay'   => 'ExpiredEndDay',
+        'expiredStartDay' => 'ExpiredStartDay',
+        'pageSize'        => 'PageSize',
+        'userDeviceId'    => 'UserDeviceId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->currentPage) {
+            $res['CurrentPage'] = $this->currentPage;
+        }
+        if (null !== $this->deviceId) {
+            $res['DeviceId'] = $this->deviceId;
+        }
+        if (null !== $this->expiredEndDay) {
+            $res['ExpiredEndDay'] = $this->expiredEndDay;
+        }
+        if (null !== $this->expiredStartDay) {
+            $res['ExpiredStartDay'] = $this->expiredStartDay;
+        }
+        if (null !== $this->pageSize) {
+            $res['PageSize'] = $this->pageSize;
+        }
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeDeviceInfoRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['CurrentPage'])) {
+            $model->currentPage = $map['CurrentPage'];
+        }
+        if (isset($map['DeviceId'])) {
+            $model->deviceId = $map['DeviceId'];
+        }
+        if (isset($map['ExpiredEndDay'])) {
+            $model->expiredEndDay = $map['ExpiredEndDay'];
+        }
+        if (isset($map['ExpiredStartDay'])) {
+            $model->expiredStartDay = $map['ExpiredStartDay'];
+        }
+        if (isset($map['PageSize'])) {
+            $model->pageSize = $map['PageSize'];
+        }
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeDeviceInfoResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var DescribeDeviceInfoResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeDeviceInfoResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeDeviceInfoResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 104 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody.php

@@ -0,0 +1,104 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponseBody\deviceInfoList;
+use AlibabaCloud\Tea\Model;
+
+class DescribeDeviceInfoResponseBody extends Model
+{
+    /**
+     * @example 1
+     *
+     * @var int
+     */
+    public $currentPage;
+
+    /**
+     * @var deviceInfoList
+     */
+    public $deviceInfoList;
+
+    /**
+     * @example 20
+     *
+     * @var int
+     */
+    public $pageSize;
+
+    /**
+     * @example 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example 1
+     *
+     * @var int
+     */
+    public $totalCount;
+    protected $_name = [
+        'currentPage'    => 'CurrentPage',
+        'deviceInfoList' => 'DeviceInfoList',
+        'pageSize'       => 'PageSize',
+        'requestId'      => 'RequestId',
+        'totalCount'     => 'TotalCount',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->currentPage) {
+            $res['CurrentPage'] = $this->currentPage;
+        }
+        if (null !== $this->deviceInfoList) {
+            $res['DeviceInfoList'] = null !== $this->deviceInfoList ? $this->deviceInfoList->toMap() : null;
+        }
+        if (null !== $this->pageSize) {
+            $res['PageSize'] = $this->pageSize;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->totalCount) {
+            $res['TotalCount'] = $this->totalCount;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeDeviceInfoResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CurrentPage'])) {
+            $model->currentPage = $map['CurrentPage'];
+        }
+        if (isset($map['DeviceInfoList'])) {
+            $model->deviceInfoList = deviceInfoList::fromMap($map['DeviceInfoList']);
+        }
+        if (isset($map['PageSize'])) {
+            $model->pageSize = $map['PageSize'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['TotalCount'])) {
+            $model->totalCount = $map['TotalCount'];
+        }
+
+        return $model;
+    }
+}

+ 60 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList.php

@@ -0,0 +1,60 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponseBody;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponseBody\deviceInfoList\deviceInfo;
+use AlibabaCloud\Tea\Model;
+
+class deviceInfoList extends Model
+{
+    /**
+     * @var deviceInfo[]
+     */
+    public $deviceInfo;
+    protected $_name = [
+        'deviceInfo' => 'DeviceInfo',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->deviceInfo) {
+            $res['DeviceInfo'] = [];
+            if (null !== $this->deviceInfo && \is_array($this->deviceInfo)) {
+                $n = 0;
+                foreach ($this->deviceInfo as $item) {
+                    $res['DeviceInfo'][$n++] = null !== $item ? $item->toMap() : $item;
+                }
+            }
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return deviceInfoList
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['DeviceInfo'])) {
+            if (!empty($map['DeviceInfo'])) {
+                $model->deviceInfo = [];
+                $n                 = 0;
+                foreach ($map['DeviceInfo'] as $item) {
+                    $model->deviceInfo[$n++] = null !== $item ? deviceInfo::fromMap($item) : $item;
+                }
+            }
+        }
+
+        return $model;
+    }
+}

+ 105 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList/deviceInfo.php

@@ -0,0 +1,105 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponseBody\deviceInfoList;
+
+use AlibabaCloud\Tea\Model;
+
+class deviceInfo extends Model
+{
+    /**
+     * @example 20180101
+     *
+     * @var string
+     */
+    public $beginDay;
+
+    /**
+     * @example FACE_TEST
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example wd.6ziUffspAeW5FVYbaqmexR-1qwNjM
+     *
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @example 20180101
+     *
+     * @var string
+     */
+    public $expiredDay;
+
+    /**
+     * @example 3iJ1AY$oHcu7mC69
+     *
+     * @var string
+     */
+    public $userDeviceId;
+    protected $_name = [
+        'beginDay'     => 'BeginDay',
+        'bizType'      => 'BizType',
+        'deviceId'     => 'DeviceId',
+        'expiredDay'   => 'ExpiredDay',
+        'userDeviceId' => 'UserDeviceId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->beginDay) {
+            $res['BeginDay'] = $this->beginDay;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->deviceId) {
+            $res['DeviceId'] = $this->deviceId;
+        }
+        if (null !== $this->expiredDay) {
+            $res['ExpiredDay'] = $this->expiredDay;
+        }
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return deviceInfo
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BeginDay'])) {
+            $model->beginDay = $map['BeginDay'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['DeviceId'])) {
+            $model->deviceId = $map['DeviceId'];
+        }
+        if (isset($map['ExpiredDay'])) {
+            $model->expiredDay = $map['ExpiredDay'];
+        }
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
+        }
+
+        return $model;
+    }
+}

+ 77 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyRequest.php

@@ -0,0 +1,77 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeFaceVerifyRequest extends Model
+{
+    /**
+     * @example 91707dc296d469ad38e4c5efa6a0f24b
+     *
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @example JPG
+     *
+     * @var string
+     */
+    public $pictureReturnType;
+
+    /**
+     * @example 1000000006
+     *
+     * @var int
+     */
+    public $sceneId;
+    protected $_name = [
+        'certifyId'         => 'CertifyId',
+        'pictureReturnType' => 'PictureReturnType',
+        'sceneId'           => 'SceneId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->pictureReturnType) {
+            $res['PictureReturnType'] = $this->pictureReturnType;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeFaceVerifyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['PictureReturnType'])) {
+            $model->pictureReturnType = $map['PictureReturnType'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeFaceVerifyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var DescribeFaceVerifyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeFaceVerifyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 90 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponseBody.php

@@ -0,0 +1,90 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class DescribeFaceVerifyResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @example success
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example 130A2C10-B9EE-4D84-88E3-5384FF039795
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 117 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,117 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @var string
+     */
+    public $deviceRisk;
+
+    /**
+     * @example McozS1ZWRcRZStlERcZZo_QOytx5jcgZoZJEoRLOxxxxxxx
+     *
+     * @var string
+     */
+    public $deviceToken;
+
+    /**
+     * @example null
+     *
+     * @var string
+     */
+    public $identityInfo;
+
+    /**
+     * @example {"faceAttack": "F","facialPictureFront": {"qualityScore": 88.3615493774414,"pictureUrl": "https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg","ossBucketName": "cn-shanghai-aliyun-cloudauth-1260051251634779","ossObjectName": "verify/1260051251634779/6ba7bcfccf33f56cdb44ed086f36ce3e0.jpeg"}}
+     *
+     * @var string
+     */
+    public $materialInfo;
+
+    /**
+     * @example T
+     *
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $subCode;
+    protected $_name = [
+        'deviceRisk'   => 'DeviceRisk',
+        'deviceToken'  => 'DeviceToken',
+        'identityInfo' => 'IdentityInfo',
+        'materialInfo' => 'MaterialInfo',
+        'passed'       => 'Passed',
+        'subCode'      => 'SubCode',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->deviceRisk) {
+            $res['DeviceRisk'] = $this->deviceRisk;
+        }
+        if (null !== $this->deviceToken) {
+            $res['DeviceToken'] = $this->deviceToken;
+        }
+        if (null !== $this->identityInfo) {
+            $res['IdentityInfo'] = $this->identityInfo;
+        }
+        if (null !== $this->materialInfo) {
+            $res['MaterialInfo'] = $this->materialInfo;
+        }
+        if (null !== $this->passed) {
+            $res['Passed'] = $this->passed;
+        }
+        if (null !== $this->subCode) {
+            $res['SubCode'] = $this->subCode;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['DeviceRisk'])) {
+            $model->deviceRisk = $map['DeviceRisk'];
+        }
+        if (isset($map['DeviceToken'])) {
+            $model->deviceToken = $map['DeviceToken'];
+        }
+        if (isset($map['IdentityInfo'])) {
+            $model->identityInfo = $map['IdentityInfo'];
+        }
+        if (isset($map['MaterialInfo'])) {
+            $model->materialInfo = $map['MaterialInfo'];
+        }
+        if (isset($map['Passed'])) {
+            $model->passed = $map['Passed'];
+        }
+        if (isset($map['SubCode'])) {
+            $model->subCode = $map['SubCode'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeOssUploadTokenResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var DescribeOssUploadTokenResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeOssUploadTokenResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeOssUploadTokenResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 62 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponseBody.php

@@ -0,0 +1,62 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeOssUploadTokenResponseBody\ossUploadToken;
+use AlibabaCloud\Tea\Model;
+
+class DescribeOssUploadTokenResponseBody extends Model
+{
+    /**
+     * @var ossUploadToken
+     */
+    public $ossUploadToken;
+
+    /**
+     * @example 2FA2C773-47DB-4156-B1EE-5B047321A939
+     *
+     * @var string
+     */
+    public $requestId;
+    protected $_name = [
+        'ossUploadToken' => 'OssUploadToken',
+        'requestId'      => 'RequestId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->ossUploadToken) {
+            $res['OssUploadToken'] = null !== $this->ossUploadToken ? $this->ossUploadToken->toMap() : null;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeOssUploadTokenResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['OssUploadToken'])) {
+            $model->ossUploadToken = ossUploadToken::fromMap($map['OssUploadToken']);
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+
+        return $model;
+    }
+}

+ 133 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponseBody/ossUploadToken.php

@@ -0,0 +1,133 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeOssUploadTokenResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class ossUploadToken extends Model
+{
+    /**
+     * @example cloudauth-zhangjiakou-external
+     *
+     * @var string
+     */
+    public $bucket;
+
+    /**
+     * @example https://oss-cn-zhangjiakou.aliyuncs.com
+     *
+     * @var string
+     */
+    public $endPoint;
+
+    /**
+     * @example 1582636610000
+     *
+     * @var int
+     */
+    public $expired;
+
+    /**
+     * @example STS.NU8rUBj****
+     *
+     * @var string
+     */
+    public $key;
+
+    /**
+     * @example prod/RdNLC@Ox2n-1s7NMt
+     *
+     * @var string
+     */
+    public $path;
+
+    /**
+     * @example FwmnyoqT8dHj7nJLuM67T****
+     *
+     * @var string
+     */
+    public $secret;
+
+    /**
+     * @example uWia500nTS5knZaDzq4/KqpvhcLnO****
+     *
+     * @var string
+     */
+    public $token;
+    protected $_name = [
+        'bucket'   => 'Bucket',
+        'endPoint' => 'EndPoint',
+        'expired'  => 'Expired',
+        'key'      => 'Key',
+        'path'     => 'Path',
+        'secret'   => 'Secret',
+        'token'    => 'Token',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bucket) {
+            $res['Bucket'] = $this->bucket;
+        }
+        if (null !== $this->endPoint) {
+            $res['EndPoint'] = $this->endPoint;
+        }
+        if (null !== $this->expired) {
+            $res['Expired'] = $this->expired;
+        }
+        if (null !== $this->key) {
+            $res['Key'] = $this->key;
+        }
+        if (null !== $this->path) {
+            $res['Path'] = $this->path;
+        }
+        if (null !== $this->secret) {
+            $res['Secret'] = $this->secret;
+        }
+        if (null !== $this->token) {
+            $res['Token'] = $this->token;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ossUploadToken
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Bucket'])) {
+            $model->bucket = $map['Bucket'];
+        }
+        if (isset($map['EndPoint'])) {
+            $model->endPoint = $map['EndPoint'];
+        }
+        if (isset($map['Expired'])) {
+            $model->expired = $map['Expired'];
+        }
+        if (isset($map['Key'])) {
+            $model->key = $map['Key'];
+        }
+        if (isset($map['Path'])) {
+            $model->path = $map['Path'];
+        }
+        if (isset($map['Secret'])) {
+            $model->secret = $map['Secret'];
+        }
+        if (isset($map['Token'])) {
+            $model->token = $map['Token'];
+        }
+
+        return $model;
+    }
+}

+ 63 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultRequest.php

@@ -0,0 +1,63 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifyResultRequest extends Model
+{
+    /**
+     * @example 39ecf51e-2f81-4dc5-90ee-ff86125b****
+     *
+     * @var string
+     */
+    public $bizId;
+
+    /**
+     * @example FVBioOnlyTest
+     *
+     * @var string
+     */
+    public $bizType;
+    protected $_name = [
+        'bizId'   => 'BizId',
+        'bizType' => 'BizType',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizId) {
+            $res['BizId'] = $this->bizId;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyResultRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BizId'])) {
+            $model->bizId = $map['BizId'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifyResultResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var DescribeVerifyResultResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyResultResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeVerifyResultResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 118 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody.php

@@ -0,0 +1,118 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponseBody\material;
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifyResultResponseBody extends Model
+{
+    /**
+     * @example 97
+     *
+     * @var float
+     */
+    public $authorityComparisionScore;
+
+    /**
+     * @example 97
+     *
+     * @var float
+     */
+    public $faceComparisonScore;
+
+    /**
+     * @example 97
+     *
+     * @var float
+     */
+    public $idCardFaceComparisonScore;
+
+    /**
+     * @var material
+     */
+    public $material;
+
+    /**
+     * @example 04F0F334-1335-436C-A1D7-6C044FE73368
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example 1
+     *
+     * @var int
+     */
+    public $verifyStatus;
+    protected $_name = [
+        'authorityComparisionScore' => 'AuthorityComparisionScore',
+        'faceComparisonScore'       => 'FaceComparisonScore',
+        'idCardFaceComparisonScore' => 'IdCardFaceComparisonScore',
+        'material'                  => 'Material',
+        'requestId'                 => 'RequestId',
+        'verifyStatus'              => 'VerifyStatus',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->authorityComparisionScore) {
+            $res['AuthorityComparisionScore'] = $this->authorityComparisionScore;
+        }
+        if (null !== $this->faceComparisonScore) {
+            $res['FaceComparisonScore'] = $this->faceComparisonScore;
+        }
+        if (null !== $this->idCardFaceComparisonScore) {
+            $res['IdCardFaceComparisonScore'] = $this->idCardFaceComparisonScore;
+        }
+        if (null !== $this->material) {
+            $res['Material'] = null !== $this->material ? $this->material->toMap() : null;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->verifyStatus) {
+            $res['VerifyStatus'] = $this->verifyStatus;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyResultResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AuthorityComparisionScore'])) {
+            $model->authorityComparisionScore = $map['AuthorityComparisionScore'];
+        }
+        if (isset($map['FaceComparisonScore'])) {
+            $model->faceComparisonScore = $map['FaceComparisonScore'];
+        }
+        if (isset($map['IdCardFaceComparisonScore'])) {
+            $model->idCardFaceComparisonScore = $map['IdCardFaceComparisonScore'];
+        }
+        if (isset($map['Material'])) {
+            $model->material = material::fromMap($map['Material']);
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['VerifyStatus'])) {
+            $model->verifyStatus = $map['VerifyStatus'];
+        }
+
+        return $model;
+    }
+}

+ 144 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody/material.php

@@ -0,0 +1,144 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponseBody;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponseBody\material\idCardInfo;
+use AlibabaCloud\Tea\Model;
+
+class material extends Model
+{
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/face-global-example.jpg
+     *
+     * @var string
+     */
+    public $faceGlobalUrl;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/face-image-example.jpg
+     *
+     * @var string
+     */
+    public $faceImageUrl;
+
+    /**
+     * @example false
+     *
+     * @var bool
+     */
+    public $faceMask;
+
+    /**
+     * @example NORMAL
+     *
+     * @var string
+     */
+    public $faceQuality;
+
+    /**
+     * @var idCardInfo
+     */
+    public $idCardInfo;
+
+    /**
+     * @var string
+     */
+    public $idCardName;
+
+    /**
+     * @example 02343218901123****
+     *
+     * @var string
+     */
+    public $idCardNumber;
+
+    /**
+     * @var string[]
+     */
+    public $videoUrls;
+    protected $_name = [
+        'faceGlobalUrl' => 'FaceGlobalUrl',
+        'faceImageUrl'  => 'FaceImageUrl',
+        'faceMask'      => 'FaceMask',
+        'faceQuality'   => 'FaceQuality',
+        'idCardInfo'    => 'IdCardInfo',
+        'idCardName'    => 'IdCardName',
+        'idCardNumber'  => 'IdCardNumber',
+        'videoUrls'     => 'VideoUrls',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceGlobalUrl) {
+            $res['FaceGlobalUrl'] = $this->faceGlobalUrl;
+        }
+        if (null !== $this->faceImageUrl) {
+            $res['FaceImageUrl'] = $this->faceImageUrl;
+        }
+        if (null !== $this->faceMask) {
+            $res['FaceMask'] = $this->faceMask;
+        }
+        if (null !== $this->faceQuality) {
+            $res['FaceQuality'] = $this->faceQuality;
+        }
+        if (null !== $this->idCardInfo) {
+            $res['IdCardInfo'] = null !== $this->idCardInfo ? $this->idCardInfo->toMap() : null;
+        }
+        if (null !== $this->idCardName) {
+            $res['IdCardName'] = $this->idCardName;
+        }
+        if (null !== $this->idCardNumber) {
+            $res['IdCardNumber'] = $this->idCardNumber;
+        }
+        if (null !== $this->videoUrls) {
+            $res['VideoUrls'] = $this->videoUrls;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return material
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceGlobalUrl'])) {
+            $model->faceGlobalUrl = $map['FaceGlobalUrl'];
+        }
+        if (isset($map['FaceImageUrl'])) {
+            $model->faceImageUrl = $map['FaceImageUrl'];
+        }
+        if (isset($map['FaceMask'])) {
+            $model->faceMask = $map['FaceMask'];
+        }
+        if (isset($map['FaceQuality'])) {
+            $model->faceQuality = $map['FaceQuality'];
+        }
+        if (isset($map['IdCardInfo'])) {
+            $model->idCardInfo = idCardInfo::fromMap($map['IdCardInfo']);
+        }
+        if (isset($map['IdCardName'])) {
+            $model->idCardName = $map['IdCardName'];
+        }
+        if (isset($map['IdCardNumber'])) {
+            $model->idCardNumber = $map['IdCardNumber'];
+        }
+        if (isset($map['VideoUrls'])) {
+            if (!empty($map['VideoUrls'])) {
+                $model->videoUrls = $map['VideoUrls'];
+            }
+        }
+
+        return $model;
+    }
+}

+ 167 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody/material/idCardInfo.php

@@ -0,0 +1,167 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponseBody\material;
+
+use AlibabaCloud\Tea\Model;
+
+class idCardInfo extends Model
+{
+    /**
+     * @var string
+     */
+    public $address;
+
+    /**
+     * @var string
+     */
+    public $authority;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/example3.jpg
+     *
+     * @var string
+     */
+    public $backImageUrl;
+
+    /**
+     * @example 19900101
+     *
+     * @var string
+     */
+    public $birth;
+
+    /**
+     * @example 20201101
+     *
+     * @var string
+     */
+    public $endDate;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/example2.jpg
+     *
+     * @var string
+     */
+    public $frontImageUrl;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @var string
+     */
+    public $nationality;
+
+    /**
+     * @example 02343218901123****
+     *
+     * @var string
+     */
+    public $number;
+
+    /**
+     * @example 20201101
+     *
+     * @var string
+     */
+    public $startDate;
+    protected $_name = [
+        'address'       => 'Address',
+        'authority'     => 'Authority',
+        'backImageUrl'  => 'BackImageUrl',
+        'birth'         => 'Birth',
+        'endDate'       => 'EndDate',
+        'frontImageUrl' => 'FrontImageUrl',
+        'name'          => 'Name',
+        'nationality'   => 'Nationality',
+        'number'        => 'Number',
+        'startDate'     => 'StartDate',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->address) {
+            $res['Address'] = $this->address;
+        }
+        if (null !== $this->authority) {
+            $res['Authority'] = $this->authority;
+        }
+        if (null !== $this->backImageUrl) {
+            $res['BackImageUrl'] = $this->backImageUrl;
+        }
+        if (null !== $this->birth) {
+            $res['Birth'] = $this->birth;
+        }
+        if (null !== $this->endDate) {
+            $res['EndDate'] = $this->endDate;
+        }
+        if (null !== $this->frontImageUrl) {
+            $res['FrontImageUrl'] = $this->frontImageUrl;
+        }
+        if (null !== $this->name) {
+            $res['Name'] = $this->name;
+        }
+        if (null !== $this->nationality) {
+            $res['Nationality'] = $this->nationality;
+        }
+        if (null !== $this->number) {
+            $res['Number'] = $this->number;
+        }
+        if (null !== $this->startDate) {
+            $res['StartDate'] = $this->startDate;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return idCardInfo
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Address'])) {
+            $model->address = $map['Address'];
+        }
+        if (isset($map['Authority'])) {
+            $model->authority = $map['Authority'];
+        }
+        if (isset($map['BackImageUrl'])) {
+            $model->backImageUrl = $map['BackImageUrl'];
+        }
+        if (isset($map['Birth'])) {
+            $model->birth = $map['Birth'];
+        }
+        if (isset($map['EndDate'])) {
+            $model->endDate = $map['EndDate'];
+        }
+        if (isset($map['FrontImageUrl'])) {
+            $model->frontImageUrl = $map['FrontImageUrl'];
+        }
+        if (isset($map['Name'])) {
+            $model->name = $map['Name'];
+        }
+        if (isset($map['Nationality'])) {
+            $model->nationality = $map['Nationality'];
+        }
+        if (isset($map['Number'])) {
+            $model->number = $map['Number'];
+        }
+        if (isset($map['StartDate'])) {
+            $model->startDate = $map['StartDate'];
+        }
+
+        return $model;
+    }
+}

+ 49 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKRequest.php

@@ -0,0 +1,49 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifySDKRequest extends Model
+{
+    /**
+     * @example 1KQMcnLd4m37LN2D0F0WCD
+     *
+     * @var string
+     */
+    public $taskId;
+    protected $_name = [
+        'taskId' => 'TaskId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->taskId) {
+            $res['TaskId'] = $this->taskId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifySDKRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['TaskId'])) {
+            $model->taskId = $map['TaskId'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifySDKResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var DescribeVerifySDKResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifySDKResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeVerifySDKResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 63 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKResponseBody.php

@@ -0,0 +1,63 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifySDKResponseBody extends Model
+{
+    /**
+     * @example 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example https://www.xxx.com
+     *
+     * @var string
+     */
+    public $sdkUrl;
+    protected $_name = [
+        'requestId' => 'RequestId',
+        'sdkUrl'    => 'SdkUrl',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->sdkUrl) {
+            $res['SdkUrl'] = $this->sdkUrl;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifySDKResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['SdkUrl'])) {
+            $model->sdkUrl = $map['SdkUrl'];
+        }
+
+        return $model;
+    }
+}

+ 243 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenRequest.php

@@ -0,0 +1,243 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifyTokenRequest extends Model
+{
+    /**
+     * @example 39ecf51e-2f81-4dc5-90ee-ff86125be683
+     *
+     * @var string
+     */
+    public $bizId;
+
+    /**
+     * @example RPBasicTest
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example -
+     *
+     * @var string
+     */
+    public $callbackSeed;
+
+    /**
+     * @example -
+     *
+     * @var string
+     */
+    public $callbackUrl;
+
+    /**
+     * @example http%3A%2F%2Fjiangsu.china.com.cn%2Fuploadfile%2F2015%2F0114%2F1421221304095989.jpg
+     *
+     * @var string
+     */
+    public $faceRetainedImageUrl;
+
+    /**
+     * @example -
+     *
+     * @var string
+     */
+    public $failedRedirectUrl;
+
+    /**
+     * @example http%3A%2F%2Fjiangsu.china.com.cn%2Fuploadfile%2F2015%2F0114%2F1421221304095989.jpg
+     *
+     * @var string
+     */
+    public $idCardBackImageUrl;
+
+    /**
+     * @example http%3A%2F%2Fjiangsu.china.com.cn%2Fuploadfile%2F2015%2F0114%2F1421221304095989.jpg
+     *
+     * @var string
+     */
+    public $idCardFrontImageUrl;
+
+    /**
+     * @example 330100xxxxxxxxxxxx
+     *
+     * @var string
+     */
+    public $idCardNumber;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @example -
+     *
+     * @var string
+     */
+    public $passedRedirectUrl;
+
+    /**
+     * @example user111
+     *
+     * @var string
+     */
+    public $userId;
+
+    /**
+     * @example 192.168.***.***
+     *
+     * @var string
+     */
+    public $userIp;
+
+    /**
+     * @example 187********
+     *
+     * @var string
+     */
+    public $userPhoneNumber;
+
+    /**
+     * @example 1577808000000
+     *
+     * @var int
+     */
+    public $userRegistTime;
+    protected $_name = [
+        'bizId'                => 'BizId',
+        'bizType'              => 'BizType',
+        'callbackSeed'         => 'CallbackSeed',
+        'callbackUrl'          => 'CallbackUrl',
+        'faceRetainedImageUrl' => 'FaceRetainedImageUrl',
+        'failedRedirectUrl'    => 'FailedRedirectUrl',
+        'idCardBackImageUrl'   => 'IdCardBackImageUrl',
+        'idCardFrontImageUrl'  => 'IdCardFrontImageUrl',
+        'idCardNumber'         => 'IdCardNumber',
+        'name'                 => 'Name',
+        'passedRedirectUrl'    => 'PassedRedirectUrl',
+        'userId'               => 'UserId',
+        'userIp'               => 'UserIp',
+        'userPhoneNumber'      => 'UserPhoneNumber',
+        'userRegistTime'       => 'UserRegistTime',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizId) {
+            $res['BizId'] = $this->bizId;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->callbackSeed) {
+            $res['CallbackSeed'] = $this->callbackSeed;
+        }
+        if (null !== $this->callbackUrl) {
+            $res['CallbackUrl'] = $this->callbackUrl;
+        }
+        if (null !== $this->faceRetainedImageUrl) {
+            $res['FaceRetainedImageUrl'] = $this->faceRetainedImageUrl;
+        }
+        if (null !== $this->failedRedirectUrl) {
+            $res['FailedRedirectUrl'] = $this->failedRedirectUrl;
+        }
+        if (null !== $this->idCardBackImageUrl) {
+            $res['IdCardBackImageUrl'] = $this->idCardBackImageUrl;
+        }
+        if (null !== $this->idCardFrontImageUrl) {
+            $res['IdCardFrontImageUrl'] = $this->idCardFrontImageUrl;
+        }
+        if (null !== $this->idCardNumber) {
+            $res['IdCardNumber'] = $this->idCardNumber;
+        }
+        if (null !== $this->name) {
+            $res['Name'] = $this->name;
+        }
+        if (null !== $this->passedRedirectUrl) {
+            $res['PassedRedirectUrl'] = $this->passedRedirectUrl;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
+        }
+        if (null !== $this->userIp) {
+            $res['UserIp'] = $this->userIp;
+        }
+        if (null !== $this->userPhoneNumber) {
+            $res['UserPhoneNumber'] = $this->userPhoneNumber;
+        }
+        if (null !== $this->userRegistTime) {
+            $res['UserRegistTime'] = $this->userRegistTime;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyTokenRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BizId'])) {
+            $model->bizId = $map['BizId'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['CallbackSeed'])) {
+            $model->callbackSeed = $map['CallbackSeed'];
+        }
+        if (isset($map['CallbackUrl'])) {
+            $model->callbackUrl = $map['CallbackUrl'];
+        }
+        if (isset($map['FaceRetainedImageUrl'])) {
+            $model->faceRetainedImageUrl = $map['FaceRetainedImageUrl'];
+        }
+        if (isset($map['FailedRedirectUrl'])) {
+            $model->failedRedirectUrl = $map['FailedRedirectUrl'];
+        }
+        if (isset($map['IdCardBackImageUrl'])) {
+            $model->idCardBackImageUrl = $map['IdCardBackImageUrl'];
+        }
+        if (isset($map['IdCardFrontImageUrl'])) {
+            $model->idCardFrontImageUrl = $map['IdCardFrontImageUrl'];
+        }
+        if (isset($map['IdCardNumber'])) {
+            $model->idCardNumber = $map['IdCardNumber'];
+        }
+        if (isset($map['Name'])) {
+            $model->name = $map['Name'];
+        }
+        if (isset($map['PassedRedirectUrl'])) {
+            $model->passedRedirectUrl = $map['PassedRedirectUrl'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
+        }
+        if (isset($map['UserIp'])) {
+            $model->userIp = $map['UserIp'];
+        }
+        if (isset($map['UserPhoneNumber'])) {
+            $model->userPhoneNumber = $map['UserPhoneNumber'];
+        }
+        if (isset($map['UserRegistTime'])) {
+            $model->userRegistTime = $map['UserRegistTime'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifyTokenResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var DescribeVerifyTokenResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyTokenResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeVerifyTokenResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 90 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponseBody.php

@@ -0,0 +1,90 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyTokenResponseBody\ossUploadToken;
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifyTokenResponseBody extends Model
+{
+    /**
+     * @var ossUploadToken
+     */
+    public $ossUploadToken;
+
+    /**
+     * @example 04F0F334-1335-436C-A1D7-6C044FE73368
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example http%3A%2F%2Fjiangsu.china.com.cn%2Fuploadfile%2F2015%2F0114%2F1421221304095989.jpg
+     *
+     * @var string
+     */
+    public $verifyPageUrl;
+
+    /**
+     * @example c302c0797679457685410ee51a5ba375
+     *
+     * @var string
+     */
+    public $verifyToken;
+    protected $_name = [
+        'ossUploadToken' => 'OssUploadToken',
+        'requestId'      => 'RequestId',
+        'verifyPageUrl'  => 'VerifyPageUrl',
+        'verifyToken'    => 'VerifyToken',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->ossUploadToken) {
+            $res['OssUploadToken'] = null !== $this->ossUploadToken ? $this->ossUploadToken->toMap() : null;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->verifyPageUrl) {
+            $res['VerifyPageUrl'] = $this->verifyPageUrl;
+        }
+        if (null !== $this->verifyToken) {
+            $res['VerifyToken'] = $this->verifyToken;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyTokenResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['OssUploadToken'])) {
+            $model->ossUploadToken = ossUploadToken::fromMap($map['OssUploadToken']);
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['VerifyPageUrl'])) {
+            $model->verifyPageUrl = $map['VerifyPageUrl'];
+        }
+        if (isset($map['VerifyToken'])) {
+            $model->verifyToken = $map['VerifyToken'];
+        }
+
+        return $model;
+    }
+}

+ 133 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponseBody/ossUploadToken.php

@@ -0,0 +1,133 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyTokenResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class ossUploadToken extends Model
+{
+    /**
+     * @example cloudauth-zhangjiakou-external
+     *
+     * @var string
+     */
+    public $bucket;
+
+    /**
+     * @example https://oss-cn-zhangjiakou.aliyuncs.com
+     *
+     * @var string
+     */
+    public $endPoint;
+
+    /**
+     * @example 1582636610000
+     *
+     * @var int
+     */
+    public $expired;
+
+    /**
+     * @example STS.NU8rUBj****
+     *
+     * @var string
+     */
+    public $key;
+
+    /**
+     * @example prod/RdNLC@Ox2n-1s7NMt
+     *
+     * @var string
+     */
+    public $path;
+
+    /**
+     * @example FwmnyoqT8dHj7nJLuM67T****
+     *
+     * @var string
+     */
+    public $secret;
+
+    /**
+     * @example uWia500nTS5knZaDzq4/KqpvhcLnO****
+     *
+     * @var string
+     */
+    public $token;
+    protected $_name = [
+        'bucket'   => 'Bucket',
+        'endPoint' => 'EndPoint',
+        'expired'  => 'Expired',
+        'key'      => 'Key',
+        'path'     => 'Path',
+        'secret'   => 'Secret',
+        'token'    => 'Token',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bucket) {
+            $res['Bucket'] = $this->bucket;
+        }
+        if (null !== $this->endPoint) {
+            $res['EndPoint'] = $this->endPoint;
+        }
+        if (null !== $this->expired) {
+            $res['Expired'] = $this->expired;
+        }
+        if (null !== $this->key) {
+            $res['Key'] = $this->key;
+        }
+        if (null !== $this->path) {
+            $res['Path'] = $this->path;
+        }
+        if (null !== $this->secret) {
+            $res['Secret'] = $this->secret;
+        }
+        if (null !== $this->token) {
+            $res['Token'] = $this->token;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ossUploadToken
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Bucket'])) {
+            $model->bucket = $map['Bucket'];
+        }
+        if (isset($map['EndPoint'])) {
+            $model->endPoint = $map['EndPoint'];
+        }
+        if (isset($map['Expired'])) {
+            $model->expired = $map['Expired'];
+        }
+        if (isset($map['Key'])) {
+            $model->key = $map['Key'];
+        }
+        if (isset($map['Path'])) {
+            $model->path = $map['Path'];
+        }
+        if (isset($map['Secret'])) {
+            $model->secret = $map['Secret'];
+        }
+        if (isset($map['Token'])) {
+            $model->token = $map['Token'];
+        }
+
+        return $model;
+    }
+}

+ 63 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesRequest.php

@@ -0,0 +1,63 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DetectFaceAttributesRequest extends Model
+{
+    /**
+     * @example RPBasicTest
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg
+     *
+     * @var string
+     */
+    public $materialValue;
+    protected $_name = [
+        'bizType'       => 'BizType',
+        'materialValue' => 'MaterialValue',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->materialValue) {
+            $res['MaterialValue'] = $this->materialValue;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DetectFaceAttributesRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['MaterialValue'])) {
+            $model->materialValue = $map['MaterialValue'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DetectFaceAttributesResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var DetectFaceAttributesResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DetectFaceAttributesResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DetectFaceAttributesResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 104 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody.php

@@ -0,0 +1,104 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data;
+use AlibabaCloud\Tea\Model;
+
+class DetectFaceAttributesResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var data
+     */
+    public $data;
+
+    /**
+     * @example Error.InternalError
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example true
+     *
+     * @var bool
+     */
+    public $success;
+    protected $_name = [
+        'code'      => 'Code',
+        'data'      => 'Data',
+        'message'   => 'Message',
+        'requestId' => 'RequestId',
+        'success'   => 'Success',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->data) {
+            $res['Data'] = null !== $this->data ? $this->data->toMap() : null;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->success) {
+            $res['Success'] = $this->success;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DetectFaceAttributesResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Data'])) {
+            $model->data = data::fromMap($map['Data']);
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['Success'])) {
+            $model->success = $map['Success'];
+        }
+
+        return $model;
+    }
+}

+ 76 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data.php

@@ -0,0 +1,76 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos;
+use AlibabaCloud\Tea\Model;
+
+class data extends Model
+{
+    /**
+     * @var faceInfos
+     */
+    public $faceInfos;
+
+    /**
+     * @example 1920
+     *
+     * @var int
+     */
+    public $imgHeight;
+
+    /**
+     * @example 1080
+     *
+     * @var int
+     */
+    public $imgWidth;
+    protected $_name = [
+        'faceInfos' => 'FaceInfos',
+        'imgHeight' => 'ImgHeight',
+        'imgWidth'  => 'ImgWidth',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceInfos) {
+            $res['FaceInfos'] = null !== $this->faceInfos ? $this->faceInfos->toMap() : null;
+        }
+        if (null !== $this->imgHeight) {
+            $res['ImgHeight'] = $this->imgHeight;
+        }
+        if (null !== $this->imgWidth) {
+            $res['ImgWidth'] = $this->imgWidth;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return data
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceInfos'])) {
+            $model->faceInfos = faceInfos::fromMap($map['FaceInfos']);
+        }
+        if (isset($map['ImgHeight'])) {
+            $model->imgHeight = $map['ImgHeight'];
+        }
+        if (isset($map['ImgWidth'])) {
+            $model->imgWidth = $map['ImgWidth'];
+        }
+
+        return $model;
+    }
+}

+ 60 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos.php

@@ -0,0 +1,60 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo;
+use AlibabaCloud\Tea\Model;
+
+class faceInfos extends Model
+{
+    /**
+     * @var faceAttributesDetectInfo[]
+     */
+    public $faceAttributesDetectInfo;
+    protected $_name = [
+        'faceAttributesDetectInfo' => 'FaceAttributesDetectInfo',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceAttributesDetectInfo) {
+            $res['FaceAttributesDetectInfo'] = [];
+            if (null !== $this->faceAttributesDetectInfo && \is_array($this->faceAttributesDetectInfo)) {
+                $n = 0;
+                foreach ($this->faceAttributesDetectInfo as $item) {
+                    $res['FaceAttributesDetectInfo'][$n++] = null !== $item ? $item->toMap() : $item;
+                }
+            }
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return faceInfos
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceAttributesDetectInfo'])) {
+            if (!empty($map['FaceAttributesDetectInfo'])) {
+                $model->faceAttributesDetectInfo = [];
+                $n                               = 0;
+                foreach ($map['FaceAttributesDetectInfo'] as $item) {
+                    $model->faceAttributesDetectInfo[$n++] = null !== $item ? faceAttributesDetectInfo::fromMap($item) : $item;
+                }
+            }
+        }
+
+        return $model;
+    }
+}

+ 61 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo.php

@@ -0,0 +1,61 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceRect;
+use AlibabaCloud\Tea\Model;
+
+class faceAttributesDetectInfo extends Model
+{
+    /**
+     * @var faceAttributes
+     */
+    public $faceAttributes;
+
+    /**
+     * @var faceRect
+     */
+    public $faceRect;
+    protected $_name = [
+        'faceAttributes' => 'FaceAttributes',
+        'faceRect'       => 'FaceRect',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceAttributes) {
+            $res['FaceAttributes'] = null !== $this->faceAttributes ? $this->faceAttributes->toMap() : null;
+        }
+        if (null !== $this->faceRect) {
+            $res['FaceRect'] = null !== $this->faceRect ? $this->faceRect->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return faceAttributesDetectInfo
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceAttributes'])) {
+            $model->faceAttributes = faceAttributes::fromMap($map['FaceAttributes']);
+        }
+        if (isset($map['FaceRect'])) {
+            $model->faceRect = faceRect::fromMap($map['FaceRect']);
+        }
+
+        return $model;
+    }
+}

+ 145 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes.php

@@ -0,0 +1,145 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes\headpose;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes\smiling;
+use AlibabaCloud\Tea\Model;
+
+class faceAttributes extends Model
+{
+    /**
+     * @example 0.1419367790222168
+     *
+     * @var float
+     */
+    public $blur;
+
+    /**
+     * @example 60
+     *
+     * @var float
+     */
+    public $facequal;
+
+    /**
+     * @example Face
+     *
+     * @var string
+     */
+    public $facetype;
+
+    /**
+     * @example None
+     *
+     * @var string
+     */
+    public $glasses;
+
+    /**
+     * @var headpose
+     */
+    public $headpose;
+
+    /**
+     * @example 70
+     *
+     * @var int
+     */
+    public $integrity;
+
+    /**
+     * @example Wear
+     *
+     * @var string
+     */
+    public $respirator;
+
+    /**
+     * @var smiling
+     */
+    public $smiling;
+    protected $_name = [
+        'blur'       => 'Blur',
+        'facequal'   => 'Facequal',
+        'facetype'   => 'Facetype',
+        'glasses'    => 'Glasses',
+        'headpose'   => 'Headpose',
+        'integrity'  => 'Integrity',
+        'respirator' => 'Respirator',
+        'smiling'    => 'Smiling',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->blur) {
+            $res['Blur'] = $this->blur;
+        }
+        if (null !== $this->facequal) {
+            $res['Facequal'] = $this->facequal;
+        }
+        if (null !== $this->facetype) {
+            $res['Facetype'] = $this->facetype;
+        }
+        if (null !== $this->glasses) {
+            $res['Glasses'] = $this->glasses;
+        }
+        if (null !== $this->headpose) {
+            $res['Headpose'] = null !== $this->headpose ? $this->headpose->toMap() : null;
+        }
+        if (null !== $this->integrity) {
+            $res['Integrity'] = $this->integrity;
+        }
+        if (null !== $this->respirator) {
+            $res['Respirator'] = $this->respirator;
+        }
+        if (null !== $this->smiling) {
+            $res['Smiling'] = null !== $this->smiling ? $this->smiling->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return faceAttributes
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Blur'])) {
+            $model->blur = $map['Blur'];
+        }
+        if (isset($map['Facequal'])) {
+            $model->facequal = $map['Facequal'];
+        }
+        if (isset($map['Facetype'])) {
+            $model->facetype = $map['Facetype'];
+        }
+        if (isset($map['Glasses'])) {
+            $model->glasses = $map['Glasses'];
+        }
+        if (isset($map['Headpose'])) {
+            $model->headpose = headpose::fromMap($map['Headpose']);
+        }
+        if (isset($map['Integrity'])) {
+            $model->integrity = $map['Integrity'];
+        }
+        if (isset($map['Respirator'])) {
+            $model->respirator = $map['Respirator'];
+        }
+        if (isset($map['Smiling'])) {
+            $model->smiling = smiling::fromMap($map['Smiling']);
+        }
+
+        return $model;
+    }
+}

+ 77 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/headpose.php

@@ -0,0 +1,77 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes;
+
+use AlibabaCloud\Tea\Model;
+
+class headpose extends Model
+{
+    /**
+     * @example -1.5683923959732056
+     *
+     * @var float
+     */
+    public $pitchAngle;
+
+    /**
+     * @example 7.163370132446289
+     *
+     * @var float
+     */
+    public $rollAngle;
+
+    /**
+     * @example -6.925303936004639
+     *
+     * @var float
+     */
+    public $yawAngle;
+    protected $_name = [
+        'pitchAngle' => 'PitchAngle',
+        'rollAngle'  => 'RollAngle',
+        'yawAngle'   => 'YawAngle',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->pitchAngle) {
+            $res['PitchAngle'] = $this->pitchAngle;
+        }
+        if (null !== $this->rollAngle) {
+            $res['RollAngle'] = $this->rollAngle;
+        }
+        if (null !== $this->yawAngle) {
+            $res['YawAngle'] = $this->yawAngle;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return headpose
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['PitchAngle'])) {
+            $model->pitchAngle = $map['PitchAngle'];
+        }
+        if (isset($map['RollAngle'])) {
+            $model->rollAngle = $map['RollAngle'];
+        }
+        if (isset($map['YawAngle'])) {
+            $model->yawAngle = $map['YawAngle'];
+        }
+
+        return $model;
+    }
+}

+ 63 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/smiling.php

@@ -0,0 +1,63 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes;
+
+use AlibabaCloud\Tea\Model;
+
+class smiling extends Model
+{
+    /**
+     * @example 95
+     *
+     * @var float
+     */
+    public $threshold;
+
+    /**
+     * @example 97
+     *
+     * @var float
+     */
+    public $value;
+    protected $_name = [
+        'threshold' => 'Threshold',
+        'value'     => 'Value',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->threshold) {
+            $res['Threshold'] = $this->threshold;
+        }
+        if (null !== $this->value) {
+            $res['Value'] = $this->value;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return smiling
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Threshold'])) {
+            $model->threshold = $map['Threshold'];
+        }
+        if (isset($map['Value'])) {
+            $model->value = $map['Value'];
+        }
+
+        return $model;
+    }
+}

+ 91 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceRect.php

@@ -0,0 +1,91 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo;
+
+use AlibabaCloud\Tea\Model;
+
+class faceRect extends Model
+{
+    /**
+     * @example 473
+     *
+     * @var int
+     */
+    public $height;
+
+    /**
+     * @example 354
+     *
+     * @var int
+     */
+    public $left;
+
+    /**
+     * @example 453
+     *
+     * @var int
+     */
+    public $top;
+
+    /**
+     * @example 473
+     *
+     * @var int
+     */
+    public $width;
+    protected $_name = [
+        'height' => 'Height',
+        'left'   => 'Left',
+        'top'    => 'Top',
+        'width'  => 'Width',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->height) {
+            $res['Height'] = $this->height;
+        }
+        if (null !== $this->left) {
+            $res['Left'] = $this->left;
+        }
+        if (null !== $this->top) {
+            $res['Top'] = $this->top;
+        }
+        if (null !== $this->width) {
+            $res['Width'] = $this->width;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return faceRect
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Height'])) {
+            $model->height = $map['Height'];
+        }
+        if (isset($map['Left'])) {
+            $model->left = $map['Left'];
+        }
+        if (isset($map['Top'])) {
+            $model->top = $map['Top'];
+        }
+        if (isset($map['Width'])) {
+            $model->width = $map['Width'];
+        }
+
+        return $model;
+    }
+}

+ 377 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyRequest.php

@@ -0,0 +1,377 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class InitFaceVerifyRequest extends Model
+{
+    /**
+     * @var string
+     */
+    public $authId;
+
+    /**
+     * @var string
+     */
+    public $callbackToken;
+
+    /**
+     * @var string
+     */
+    public $callbackUrl;
+
+    /**
+     * @var string
+     */
+    public $certName;
+
+    /**
+     * @example 330103xxxxxxxxxxxx
+     *
+     * @var string
+     */
+    public $certNo;
+
+    /**
+     * @example IDENTITY_CARD
+     *
+     * @var string
+     */
+    public $certType;
+
+    /**
+     * @example 0bfa7c493f850e5178b9f8613634c9xx
+     *
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $certifyUrlType;
+
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @var string
+     */
+    public $encryptType;
+
+    /**
+     * @example /9j/4AAQSkZJRgABAQAASxxxxxxx
+     *
+     * @var string
+     */
+    public $faceContrastPicture;
+
+    /**
+     * @example https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg
+     *
+     * @var string
+     */
+    public $faceContrastPictureUrl;
+
+    /**
+     * @example 114.xxx.xxx.xxx
+     *
+     * @var string
+     */
+    public $ip;
+
+    /**
+     * @example {"zimVer":"3.0.0","appVersion": "1","bioMetaInfo": "4.1.0:11501568,0","appName": "com.aliyun.antcloudauth","deviceType": "ios","osVersion": "iOS 10.3.2","apdidToken": "","deviceModel": "iPhone9,1"}
+     *
+     * @var string
+     */
+    public $metaInfo;
+
+    /**
+     * @example 130xxxxxxxx
+     *
+     * @var string
+     */
+    public $mobile;
+
+    /**
+     * @var string
+     */
+    public $model;
+
+    /**
+     * @example cn-shanghai-aliyun-cloudauth-xxxxx
+     *
+     * @var string
+     */
+    public $ossBucketName;
+
+    /**
+     * @example verify/xxxxx/xxxxxx.jpeg
+     *
+     * @var string
+     */
+    public $ossObjectName;
+
+    /**
+     * @example e0c34a77f5ac40a5aa5e6ed20c353888
+     *
+     * @var string
+     */
+    public $outerOrderNo;
+
+    /**
+     * @var string
+     */
+    public $procedurePriority;
+
+    /**
+     * @example ID_PRO
+     *
+     * @var string
+     */
+    public $productCode;
+
+    /**
+     * @example www.aliyun.com
+     *
+     * @var string
+     */
+    public $returnUrl;
+
+    /**
+     * @example 1000000006
+     *
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @var string
+     */
+    public $suitableType;
+
+    /**
+     * @example 123456789
+     *
+     * @var string
+     */
+    public $userId;
+
+    /**
+     * @var string
+     */
+    public $voluntaryCustomizedContent;
+    protected $_name = [
+        'authId'                     => 'AuthId',
+        'callbackToken'              => 'CallbackToken',
+        'callbackUrl'                => 'CallbackUrl',
+        'certName'                   => 'CertName',
+        'certNo'                     => 'CertNo',
+        'certType'                   => 'CertType',
+        'certifyId'                  => 'CertifyId',
+        'certifyUrlType'             => 'CertifyUrlType',
+        'crop'                       => 'Crop',
+        'encryptType'                => 'EncryptType',
+        'faceContrastPicture'        => 'FaceContrastPicture',
+        'faceContrastPictureUrl'     => 'FaceContrastPictureUrl',
+        'ip'                         => 'Ip',
+        'metaInfo'                   => 'MetaInfo',
+        'mobile'                     => 'Mobile',
+        'model'                      => 'Model',
+        'ossBucketName'              => 'OssBucketName',
+        'ossObjectName'              => 'OssObjectName',
+        'outerOrderNo'               => 'OuterOrderNo',
+        'procedurePriority'          => 'ProcedurePriority',
+        'productCode'                => 'ProductCode',
+        'returnUrl'                  => 'ReturnUrl',
+        'sceneId'                    => 'SceneId',
+        'suitableType'               => 'SuitableType',
+        'userId'                     => 'UserId',
+        'voluntaryCustomizedContent' => 'VoluntaryCustomizedContent',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->authId) {
+            $res['AuthId'] = $this->authId;
+        }
+        if (null !== $this->callbackToken) {
+            $res['CallbackToken'] = $this->callbackToken;
+        }
+        if (null !== $this->callbackUrl) {
+            $res['CallbackUrl'] = $this->callbackUrl;
+        }
+        if (null !== $this->certName) {
+            $res['CertName'] = $this->certName;
+        }
+        if (null !== $this->certNo) {
+            $res['CertNo'] = $this->certNo;
+        }
+        if (null !== $this->certType) {
+            $res['CertType'] = $this->certType;
+        }
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->certifyUrlType) {
+            $res['CertifyUrlType'] = $this->certifyUrlType;
+        }
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
+        }
+        if (null !== $this->encryptType) {
+            $res['EncryptType'] = $this->encryptType;
+        }
+        if (null !== $this->faceContrastPicture) {
+            $res['FaceContrastPicture'] = $this->faceContrastPicture;
+        }
+        if (null !== $this->faceContrastPictureUrl) {
+            $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
+        }
+        if (null !== $this->ip) {
+            $res['Ip'] = $this->ip;
+        }
+        if (null !== $this->metaInfo) {
+            $res['MetaInfo'] = $this->metaInfo;
+        }
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
+        }
+        if (null !== $this->model) {
+            $res['Model'] = $this->model;
+        }
+        if (null !== $this->ossBucketName) {
+            $res['OssBucketName'] = $this->ossBucketName;
+        }
+        if (null !== $this->ossObjectName) {
+            $res['OssObjectName'] = $this->ossObjectName;
+        }
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
+        }
+        if (null !== $this->procedurePriority) {
+            $res['ProcedurePriority'] = $this->procedurePriority;
+        }
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->returnUrl) {
+            $res['ReturnUrl'] = $this->returnUrl;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->suitableType) {
+            $res['SuitableType'] = $this->suitableType;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
+        }
+        if (null !== $this->voluntaryCustomizedContent) {
+            $res['VoluntaryCustomizedContent'] = $this->voluntaryCustomizedContent;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return InitFaceVerifyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AuthId'])) {
+            $model->authId = $map['AuthId'];
+        }
+        if (isset($map['CallbackToken'])) {
+            $model->callbackToken = $map['CallbackToken'];
+        }
+        if (isset($map['CallbackUrl'])) {
+            $model->callbackUrl = $map['CallbackUrl'];
+        }
+        if (isset($map['CertName'])) {
+            $model->certName = $map['CertName'];
+        }
+        if (isset($map['CertNo'])) {
+            $model->certNo = $map['CertNo'];
+        }
+        if (isset($map['CertType'])) {
+            $model->certType = $map['CertType'];
+        }
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['CertifyUrlType'])) {
+            $model->certifyUrlType = $map['CertifyUrlType'];
+        }
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
+        }
+        if (isset($map['EncryptType'])) {
+            $model->encryptType = $map['EncryptType'];
+        }
+        if (isset($map['FaceContrastPicture'])) {
+            $model->faceContrastPicture = $map['FaceContrastPicture'];
+        }
+        if (isset($map['FaceContrastPictureUrl'])) {
+            $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
+        }
+        if (isset($map['Ip'])) {
+            $model->ip = $map['Ip'];
+        }
+        if (isset($map['MetaInfo'])) {
+            $model->metaInfo = $map['MetaInfo'];
+        }
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
+        }
+        if (isset($map['Model'])) {
+            $model->model = $map['Model'];
+        }
+        if (isset($map['OssBucketName'])) {
+            $model->ossBucketName = $map['OssBucketName'];
+        }
+        if (isset($map['OssObjectName'])) {
+            $model->ossObjectName = $map['OssObjectName'];
+        }
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
+        }
+        if (isset($map['ProcedurePriority'])) {
+            $model->procedurePriority = $map['ProcedurePriority'];
+        }
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['ReturnUrl'])) {
+            $model->returnUrl = $map['ReturnUrl'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['SuitableType'])) {
+            $model->suitableType = $map['SuitableType'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
+        }
+        if (isset($map['VoluntaryCustomizedContent'])) {
+            $model->voluntaryCustomizedContent = $map['VoluntaryCustomizedContent'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class InitFaceVerifyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var InitFaceVerifyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return InitFaceVerifyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = InitFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 90 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponseBody.php

@@ -0,0 +1,90 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class InitFaceVerifyResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @example success
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example 130A2C10-B9EE-4D84-88E3-5384FF039795
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return InitFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 61 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,61 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @example 91707dc296d469ad38e4c5efa6a0f24b
+     *
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $certifyUrl;
+    protected $_name = [
+        'certifyId'  => 'CertifyId',
+        'certifyUrl' => 'CertifyUrl',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->certifyUrl) {
+            $res['CertifyUrl'] = $this->certifyUrl;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['CertifyUrl'])) {
+            $model->certifyUrl = $map['CertifyUrl'];
+        }
+
+        return $model;
+    }
+}

+ 203 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyRequest.php

@@ -0,0 +1,203 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class LivenessFaceVerifyRequest extends Model
+{
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @var string
+     */
+    public $deviceToken;
+
+    /**
+     * @var string
+     */
+    public $faceContrastPicture;
+
+    /**
+     * @var string
+     */
+    public $faceContrastPictureUrl;
+
+    /**
+     * @var string
+     */
+    public $ip;
+
+    /**
+     * @var string
+     */
+    public $mobile;
+
+    /**
+     * @var string
+     */
+    public $model;
+
+    /**
+     * @var string
+     */
+    public $ossBucketName;
+
+    /**
+     * @var string
+     */
+    public $ossObjectName;
+
+    /**
+     * @var string
+     */
+    public $outerOrderNo;
+
+    /**
+     * @var string
+     */
+    public $productCode;
+
+    /**
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @var string
+     */
+    public $userId;
+    protected $_name = [
+        'certifyId'              => 'CertifyId',
+        'crop'                   => 'Crop',
+        'deviceToken'            => 'DeviceToken',
+        'faceContrastPicture'    => 'FaceContrastPicture',
+        'faceContrastPictureUrl' => 'FaceContrastPictureUrl',
+        'ip'                     => 'Ip',
+        'mobile'                 => 'Mobile',
+        'model'                  => 'Model',
+        'ossBucketName'          => 'OssBucketName',
+        'ossObjectName'          => 'OssObjectName',
+        'outerOrderNo'           => 'OuterOrderNo',
+        'productCode'            => 'ProductCode',
+        'sceneId'                => 'SceneId',
+        'userId'                 => 'UserId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
+        }
+        if (null !== $this->deviceToken) {
+            $res['DeviceToken'] = $this->deviceToken;
+        }
+        if (null !== $this->faceContrastPicture) {
+            $res['FaceContrastPicture'] = $this->faceContrastPicture;
+        }
+        if (null !== $this->faceContrastPictureUrl) {
+            $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
+        }
+        if (null !== $this->ip) {
+            $res['Ip'] = $this->ip;
+        }
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
+        }
+        if (null !== $this->model) {
+            $res['Model'] = $this->model;
+        }
+        if (null !== $this->ossBucketName) {
+            $res['OssBucketName'] = $this->ossBucketName;
+        }
+        if (null !== $this->ossObjectName) {
+            $res['OssObjectName'] = $this->ossObjectName;
+        }
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
+        }
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return LivenessFaceVerifyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
+        }
+        if (isset($map['DeviceToken'])) {
+            $model->deviceToken = $map['DeviceToken'];
+        }
+        if (isset($map['FaceContrastPicture'])) {
+            $model->faceContrastPicture = $map['FaceContrastPicture'];
+        }
+        if (isset($map['FaceContrastPictureUrl'])) {
+            $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
+        }
+        if (isset($map['Ip'])) {
+            $model->ip = $map['Ip'];
+        }
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
+        }
+        if (isset($map['Model'])) {
+            $model->model = $map['Model'];
+        }
+        if (isset($map['OssBucketName'])) {
+            $model->ossBucketName = $map['OssBucketName'];
+        }
+        if (isset($map['OssObjectName'])) {
+            $model->ossObjectName = $map['OssObjectName'];
+        }
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
+        }
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class LivenessFaceVerifyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var LivenessFaceVerifyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return LivenessFaceVerifyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = LivenessFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 84 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponseBody.php

@@ -0,0 +1,84 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\LivenessFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class LivenessFaceVerifyResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return LivenessFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 83 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,83 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\LivenessFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $materialInfo;
+
+    /**
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @var string
+     */
+    public $subCode;
+    protected $_name = [
+        'certifyId'    => 'CertifyId',
+        'materialInfo' => 'MaterialInfo',
+        'passed'       => 'Passed',
+        'subCode'      => 'SubCode',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->materialInfo) {
+            $res['MaterialInfo'] = $this->materialInfo;
+        }
+        if (null !== $this->passed) {
+            $res['Passed'] = $this->passed;
+        }
+        if (null !== $this->subCode) {
+            $res['SubCode'] = $this->subCode;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['MaterialInfo'])) {
+            $model->materialInfo = $map['MaterialInfo'];
+        }
+        if (isset($map['Passed'])) {
+            $model->passed = $map['Passed'];
+        }
+        if (isset($map['SubCode'])) {
+            $model->subCode = $map['SubCode'];
+        }
+
+        return $model;
+    }
+}

+ 105 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoRequest.php

@@ -0,0 +1,105 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class ModifyDeviceInfoRequest extends Model
+{
+    /**
+     * @example FACE_TEST
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example wd.6ziUffspAeW5FVYbaqmexR-1qwNjM
+     *
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @example 1
+     *
+     * @var string
+     */
+    public $duration;
+
+    /**
+     * @example 20190401
+     *
+     * @var string
+     */
+    public $expiredDay;
+
+    /**
+     * @example 3iJ1AY$oHcu7mC69
+     *
+     * @var string
+     */
+    public $userDeviceId;
+    protected $_name = [
+        'bizType'      => 'BizType',
+        'deviceId'     => 'DeviceId',
+        'duration'     => 'Duration',
+        'expiredDay'   => 'ExpiredDay',
+        'userDeviceId' => 'UserDeviceId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->deviceId) {
+            $res['DeviceId'] = $this->deviceId;
+        }
+        if (null !== $this->duration) {
+            $res['Duration'] = $this->duration;
+        }
+        if (null !== $this->expiredDay) {
+            $res['ExpiredDay'] = $this->expiredDay;
+        }
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ModifyDeviceInfoRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['DeviceId'])) {
+            $model->deviceId = $map['DeviceId'];
+        }
+        if (isset($map['Duration'])) {
+            $model->duration = $map['Duration'];
+        }
+        if (isset($map['ExpiredDay'])) {
+            $model->expiredDay = $map['ExpiredDay'];
+        }
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class ModifyDeviceInfoResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var ModifyDeviceInfoResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ModifyDeviceInfoResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = ModifyDeviceInfoResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 119 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoResponseBody.php

@@ -0,0 +1,119 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class ModifyDeviceInfoResponseBody extends Model
+{
+    /**
+     * @example 20190401
+     *
+     * @var string
+     */
+    public $beginDay;
+
+    /**
+     * @example FACE_TEST
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example wd.6ziUffspAeW5FVYbaqmexR-1qwNjM
+     *
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @example 20200330
+     *
+     * @var string
+     */
+    public $expiredDay;
+
+    /**
+     * @example 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example 3iJ1AY$oHcu7mC69
+     *
+     * @var string
+     */
+    public $userDeviceId;
+    protected $_name = [
+        'beginDay'     => 'BeginDay',
+        'bizType'      => 'BizType',
+        'deviceId'     => 'DeviceId',
+        'expiredDay'   => 'ExpiredDay',
+        'requestId'    => 'RequestId',
+        'userDeviceId' => 'UserDeviceId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->beginDay) {
+            $res['BeginDay'] = $this->beginDay;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->deviceId) {
+            $res['DeviceId'] = $this->deviceId;
+        }
+        if (null !== $this->expiredDay) {
+            $res['ExpiredDay'] = $this->expiredDay;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ModifyDeviceInfoResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BeginDay'])) {
+            $model->beginDay = $map['BeginDay'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['DeviceId'])) {
+            $model->deviceId = $map['DeviceId'];
+        }
+        if (isset($map['ExpiredDay'])) {
+            $model->expiredDay = $map['ExpiredDay'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
+        }
+
+        return $model;
+    }
+}

+ 145 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialRequest.php

@@ -0,0 +1,145 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class VerifyMaterialRequest extends Model
+{
+    /**
+     * @example 39ecf51e-2f81-4dc5-90ee-ff86125b****
+     *
+     * @var string
+     */
+    public $bizId;
+
+    /**
+     * @example RPMinTest
+     *
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg
+     *
+     * @var string
+     */
+    public $faceImageUrl;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/example3.jpg
+     *
+     * @var string
+     */
+    public $idCardBackImageUrl;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/example2.jpg
+     *
+     * @var string
+     */
+    public $idCardFrontImageUrl;
+
+    /**
+     * @example 02343218901123****
+     *
+     * @var string
+     */
+    public $idCardNumber;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @example 54sdj
+     *
+     * @var string
+     */
+    public $userId;
+    protected $_name = [
+        'bizId'               => 'BizId',
+        'bizType'             => 'BizType',
+        'faceImageUrl'        => 'FaceImageUrl',
+        'idCardBackImageUrl'  => 'IdCardBackImageUrl',
+        'idCardFrontImageUrl' => 'IdCardFrontImageUrl',
+        'idCardNumber'        => 'IdCardNumber',
+        'name'                => 'Name',
+        'userId'              => 'UserId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizId) {
+            $res['BizId'] = $this->bizId;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->faceImageUrl) {
+            $res['FaceImageUrl'] = $this->faceImageUrl;
+        }
+        if (null !== $this->idCardBackImageUrl) {
+            $res['IdCardBackImageUrl'] = $this->idCardBackImageUrl;
+        }
+        if (null !== $this->idCardFrontImageUrl) {
+            $res['IdCardFrontImageUrl'] = $this->idCardFrontImageUrl;
+        }
+        if (null !== $this->idCardNumber) {
+            $res['IdCardNumber'] = $this->idCardNumber;
+        }
+        if (null !== $this->name) {
+            $res['Name'] = $this->name;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return VerifyMaterialRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BizId'])) {
+            $model->bizId = $map['BizId'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['FaceImageUrl'])) {
+            $model->faceImageUrl = $map['FaceImageUrl'];
+        }
+        if (isset($map['IdCardBackImageUrl'])) {
+            $model->idCardBackImageUrl = $map['IdCardBackImageUrl'];
+        }
+        if (isset($map['IdCardFrontImageUrl'])) {
+            $model->idCardFrontImageUrl = $map['IdCardFrontImageUrl'];
+        }
+        if (isset($map['IdCardNumber'])) {
+            $model->idCardNumber = $map['IdCardNumber'];
+        }
+        if (isset($map['Name'])) {
+            $model->name = $map['Name'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class VerifyMaterialResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var VerifyMaterialResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return VerifyMaterialResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = VerifyMaterialResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 118 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponseBody.php

@@ -0,0 +1,118 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponseBody\material;
+use AlibabaCloud\Tea\Model;
+
+class VerifyMaterialResponseBody extends Model
+{
+    /**
+     * @example 97
+     *
+     * @var float
+     */
+    public $authorityComparisionScore;
+
+    /**
+     * @example 97
+     *
+     * @var float
+     */
+    public $idCardFaceComparisonScore;
+
+    /**
+     * @var material
+     */
+    public $material;
+
+    /**
+     * @example 04F0F334-1335-436C-A1D7-6C044FE73368
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example 1
+     *
+     * @var int
+     */
+    public $verifyStatus;
+
+    /**
+     * @example c302c0797679457685410ee51a5ba375
+     *
+     * @var string
+     */
+    public $verifyToken;
+    protected $_name = [
+        'authorityComparisionScore' => 'AuthorityComparisionScore',
+        'idCardFaceComparisonScore' => 'IdCardFaceComparisonScore',
+        'material'                  => 'Material',
+        'requestId'                 => 'RequestId',
+        'verifyStatus'              => 'VerifyStatus',
+        'verifyToken'               => 'VerifyToken',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->authorityComparisionScore) {
+            $res['AuthorityComparisionScore'] = $this->authorityComparisionScore;
+        }
+        if (null !== $this->idCardFaceComparisonScore) {
+            $res['IdCardFaceComparisonScore'] = $this->idCardFaceComparisonScore;
+        }
+        if (null !== $this->material) {
+            $res['Material'] = null !== $this->material ? $this->material->toMap() : null;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->verifyStatus) {
+            $res['VerifyStatus'] = $this->verifyStatus;
+        }
+        if (null !== $this->verifyToken) {
+            $res['VerifyToken'] = $this->verifyToken;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return VerifyMaterialResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AuthorityComparisionScore'])) {
+            $model->authorityComparisionScore = $map['AuthorityComparisionScore'];
+        }
+        if (isset($map['IdCardFaceComparisonScore'])) {
+            $model->idCardFaceComparisonScore = $map['IdCardFaceComparisonScore'];
+        }
+        if (isset($map['Material'])) {
+            $model->material = material::fromMap($map['Material']);
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['VerifyStatus'])) {
+            $model->verifyStatus = $map['VerifyStatus'];
+        }
+        if (isset($map['VerifyToken'])) {
+            $model->verifyToken = $map['VerifyToken'];
+        }
+
+        return $model;
+    }
+}

+ 130 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponseBody/material.php

@@ -0,0 +1,130 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponseBody;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponseBody\material\idCardInfo;
+use AlibabaCloud\Tea\Model;
+
+class material extends Model
+{
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/face-global-example.jpg
+     *
+     * @var string
+     */
+    public $faceGlobalUrl;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg
+     *
+     * @var string
+     */
+    public $faceImageUrl;
+
+    /**
+     * @example false
+     *
+     * @var string
+     */
+    public $faceMask;
+
+    /**
+     * @example NORMAL
+     *
+     * @var string
+     */
+    public $faceQuality;
+
+    /**
+     * @var idCardInfo
+     */
+    public $idCardInfo;
+
+    /**
+     * @var string
+     */
+    public $idCardName;
+
+    /**
+     * @example 02343218901123****
+     *
+     * @var string
+     */
+    public $idCardNumber;
+    protected $_name = [
+        'faceGlobalUrl' => 'FaceGlobalUrl',
+        'faceImageUrl'  => 'FaceImageUrl',
+        'faceMask'      => 'FaceMask',
+        'faceQuality'   => 'FaceQuality',
+        'idCardInfo'    => 'IdCardInfo',
+        'idCardName'    => 'IdCardName',
+        'idCardNumber'  => 'IdCardNumber',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceGlobalUrl) {
+            $res['FaceGlobalUrl'] = $this->faceGlobalUrl;
+        }
+        if (null !== $this->faceImageUrl) {
+            $res['FaceImageUrl'] = $this->faceImageUrl;
+        }
+        if (null !== $this->faceMask) {
+            $res['FaceMask'] = $this->faceMask;
+        }
+        if (null !== $this->faceQuality) {
+            $res['FaceQuality'] = $this->faceQuality;
+        }
+        if (null !== $this->idCardInfo) {
+            $res['IdCardInfo'] = null !== $this->idCardInfo ? $this->idCardInfo->toMap() : null;
+        }
+        if (null !== $this->idCardName) {
+            $res['IdCardName'] = $this->idCardName;
+        }
+        if (null !== $this->idCardNumber) {
+            $res['IdCardNumber'] = $this->idCardNumber;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return material
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceGlobalUrl'])) {
+            $model->faceGlobalUrl = $map['FaceGlobalUrl'];
+        }
+        if (isset($map['FaceImageUrl'])) {
+            $model->faceImageUrl = $map['FaceImageUrl'];
+        }
+        if (isset($map['FaceMask'])) {
+            $model->faceMask = $map['FaceMask'];
+        }
+        if (isset($map['FaceQuality'])) {
+            $model->faceQuality = $map['FaceQuality'];
+        }
+        if (isset($map['IdCardInfo'])) {
+            $model->idCardInfo = idCardInfo::fromMap($map['IdCardInfo']);
+        }
+        if (isset($map['IdCardName'])) {
+            $model->idCardName = $map['IdCardName'];
+        }
+        if (isset($map['IdCardNumber'])) {
+            $model->idCardNumber = $map['IdCardNumber'];
+        }
+
+        return $model;
+    }
+}

+ 167 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponseBody/material/idCardInfo.php

@@ -0,0 +1,167 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponseBody\material;
+
+use AlibabaCloud\Tea\Model;
+
+class idCardInfo extends Model
+{
+    /**
+     * @var string
+     */
+    public $address;
+
+    /**
+     * @var string
+     */
+    public $authority;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/example3.jpg
+     *
+     * @var string
+     */
+    public $backImageUrl;
+
+    /**
+     * @example 19900101
+     *
+     * @var string
+     */
+    public $birth;
+
+    /**
+     * @example 20201101
+     *
+     * @var string
+     */
+    public $endDate;
+
+    /**
+     * @example http://image-demo.img-cn-hangzhou.aliyuncs.com/example2.jpg
+     *
+     * @var string
+     */
+    public $frontImageUrl;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @var string
+     */
+    public $nationality;
+
+    /**
+     * @example 02343218901123****
+     *
+     * @var string
+     */
+    public $number;
+
+    /**
+     * @example 20201101
+     *
+     * @var string
+     */
+    public $startDate;
+    protected $_name = [
+        'address'       => 'Address',
+        'authority'     => 'Authority',
+        'backImageUrl'  => 'BackImageUrl',
+        'birth'         => 'Birth',
+        'endDate'       => 'EndDate',
+        'frontImageUrl' => 'FrontImageUrl',
+        'name'          => 'Name',
+        'nationality'   => 'Nationality',
+        'number'        => 'Number',
+        'startDate'     => 'StartDate',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->address) {
+            $res['Address'] = $this->address;
+        }
+        if (null !== $this->authority) {
+            $res['Authority'] = $this->authority;
+        }
+        if (null !== $this->backImageUrl) {
+            $res['BackImageUrl'] = $this->backImageUrl;
+        }
+        if (null !== $this->birth) {
+            $res['Birth'] = $this->birth;
+        }
+        if (null !== $this->endDate) {
+            $res['EndDate'] = $this->endDate;
+        }
+        if (null !== $this->frontImageUrl) {
+            $res['FrontImageUrl'] = $this->frontImageUrl;
+        }
+        if (null !== $this->name) {
+            $res['Name'] = $this->name;
+        }
+        if (null !== $this->nationality) {
+            $res['Nationality'] = $this->nationality;
+        }
+        if (null !== $this->number) {
+            $res['Number'] = $this->number;
+        }
+        if (null !== $this->startDate) {
+            $res['StartDate'] = $this->startDate;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return idCardInfo
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Address'])) {
+            $model->address = $map['Address'];
+        }
+        if (isset($map['Authority'])) {
+            $model->authority = $map['Authority'];
+        }
+        if (isset($map['BackImageUrl'])) {
+            $model->backImageUrl = $map['BackImageUrl'];
+        }
+        if (isset($map['Birth'])) {
+            $model->birth = $map['Birth'];
+        }
+        if (isset($map['EndDate'])) {
+            $model->endDate = $map['EndDate'];
+        }
+        if (isset($map['FrontImageUrl'])) {
+            $model->frontImageUrl = $map['FrontImageUrl'];
+        }
+        if (isset($map['Name'])) {
+            $model->name = $map['Name'];
+        }
+        if (isset($map['Nationality'])) {
+            $model->nationality = $map['Nationality'];
+        }
+        if (isset($map['Number'])) {
+            $model->number = $map['Number'];
+        }
+        if (isset($map['StartDate'])) {
+            $model->startDate = $map['StartDate'];
+        }
+
+        return $model;
+    }
+}

+ 15 - 0
vendor/alibabacloud/openplatform-20191219/.gitignore

@@ -0,0 +1,15 @@
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+composer.lock
+
+.vscode/
+.idea
+.DS_Store
+
+cache/
+*.cache
+runtime/
+.php_cs.cache

+ 65 - 0
vendor/alibabacloud/openplatform-20191219/.php_cs.dist

@@ -0,0 +1,65 @@
+<?php
+/*
+ * This document has been generated with
+ * https://mlocati.github.io/php-cs-fixer-configurator/#version:2.15|configurator
+ * you can change this configuration by importing this file.
+ */
+
+return PhpCsFixer\Config::create()
+    ->setRiskyAllowed(true)
+    ->setIndent('    ')
+    ->setRules([
+        '@PSR2'                                       => true,
+        '@PhpCsFixer'                                 => true,
+        '@Symfony:risky'                              => true,
+        'concat_space'                                => ['spacing' => 'one'],
+        'array_syntax'                                => ['syntax' => 'short'],
+        'array_indentation'                           => true,
+        'combine_consecutive_unsets'                  => true,
+        'method_separation'                           => true,
+        'single_quote'                                => true,
+        'declare_equal_normalize'                     => true,
+        'function_typehint_space'                     => true,
+        'hash_to_slash_comment'                       => true,
+        'include'                                     => true,
+        'lowercase_cast'                              => true,
+        'no_multiline_whitespace_before_semicolons'   => true,
+        'no_leading_import_slash'                     => true,
+        'no_multiline_whitespace_around_double_arrow' => true,
+        'no_spaces_around_offset'                     => true,
+        'no_unneeded_control_parentheses'             => true,
+        'no_unused_imports'                           => true,
+        'no_whitespace_before_comma_in_array'         => true,
+        'no_whitespace_in_blank_line'                 => true,
+        'object_operator_without_whitespace'          => true,
+        'single_blank_line_before_namespace'          => true,
+        'single_class_element_per_statement'          => true,
+        'space_after_semicolon'                       => true,
+        'standardize_not_equals'                      => true,
+        'ternary_operator_spaces'                     => true,
+        'trailing_comma_in_multiline_array'           => true,
+        'trim_array_spaces'                           => true,
+        'unary_operator_spaces'                       => true,
+        'whitespace_after_comma_in_array'             => true,
+        'no_extra_consecutive_blank_lines'            => [
+            'curly_brace_block',
+            'extra',
+            'parenthesis_brace_block',
+            'square_brace_block',
+            'throw',
+            'use',
+        ],
+        'binary_operator_spaces'       => [
+            'align_double_arrow' => true,
+            'align_equals'       => true,
+        ],
+        'braces'                                    => [
+            'allow_single_line_closure' => true,
+        ],
+    ])
+    ->setFinder(
+        PhpCsFixer\Finder::create()
+            ->exclude('vendor')
+            ->exclude('tests')
+            ->in(__DIR__)
+  );

+ 15 - 0
vendor/alibabacloud/openplatform-20191219/ChangeLog.md

@@ -0,0 +1,15 @@
+2023-02-07 Version: 2.0.1
+- Generated php 2019-12-19 for OpenPlatform.
+
+2022-09-21 Version: 2.0.0
+- Generated php 2019-12-19 for OpenPlatform.
+
+2021-07-27 Version: 1.0.3
+- Generated php 2019-12-19 for OpenPlatform.
+
+2020-12-20 Version: 1.0.2
+- Generated php 2019-12-19 for OpenPlatform.
+
+2020-12-02 Version: 1.0.1
+- Generated php 2019-12-19 for OpenPlatform.
+

+ 201 - 0
vendor/alibabacloud/openplatform-20191219/LICENSE

@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

+ 35 - 0
vendor/alibabacloud/openplatform-20191219/README-CN.md

@@ -0,0 +1,35 @@
+[English](README.md) | 简体中文
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+# Alibaba Cloud OpenPlatform SDK for PHP
+
+## 安装
+
+### Composer
+
+```bash
+composer require alibabacloud/openplatform-20191219
+```
+
+## 问题
+
+[提交 Issue](https://github.com/aliyun/alibabacloud-php-sdk/issues/new),不符合指南的问题可能会立即关闭。
+
+## 使用说明
+
+[快速使用](https://github.com/aliyun/alibabacloud-php-sdk/blob/master/docs/0-Examples-CN.md#%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8)
+
+## 发行说明
+
+每个版本的详细更改记录在[发行说明](./ChangeLog.txt)中。
+
+## 相关
+
+* [最新源码](https://github.com/aliyun/alibabacloud-php-sdk/)
+
+## 许可证
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 35 - 0
vendor/alibabacloud/openplatform-20191219/README.md

@@ -0,0 +1,35 @@
+English | [简体中文](README-CN.md)
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+# Alibaba Cloud OpenPlatform SDK for PHP
+
+## Installation
+
+### Composer
+
+```bash
+composer require alibabacloud/openplatform-20191219
+```
+
+## Issues
+
+[Opening an Issue](https://github.com/aliyun/alibabacloud-php-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.
+
+## Usage
+
+[Quick Examples](https://github.com/aliyun/alibabacloud-php-sdk/blob/master/docs/0-Examples-EN.md#quick-examples)
+
+## Changelog
+
+Detailed changes for each release are documented in the [release notes](./ChangeLog.txt).
+
+## References
+
+* [Latest Release](https://github.com/aliyun/alibabacloud-php-sdk/)
+
+## License
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 17 - 0
vendor/alibabacloud/openplatform-20191219/autoload.php

@@ -0,0 +1,17 @@
+<?php
+
+if (file_exists(__DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php')) {
+    require_once __DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
+}
+
+spl_autoload_register(function ($class) {
+    $name = str_replace('AlibabaCloud\\SDK\\OpenPlatform\\V20191219\\', '', $class);
+    $file = __DIR__ . \DIRECTORY_SEPARATOR . 'src' . \DIRECTORY_SEPARATOR . str_replace('\\', \DIRECTORY_SEPARATOR, $name) . '.php';
+    if (file_exists($file)) {
+        require_once $file;
+
+        return true;
+    }
+
+    return false;
+});

+ 33 - 0
vendor/alibabacloud/openplatform-20191219/composer.json

@@ -0,0 +1,33 @@
+{
+  "name": "alibabacloud/openplatform-20191219",
+  "description": "Alibaba Cloud OpenPlatform (20191219) SDK Library for PHP",
+  "type": "library",
+  "license": "Apache-2.0",
+  "authors": [
+    {
+      "name": "Alibaba Cloud SDK",
+      "email": "sdk-team@alibabacloud.com"
+    }
+  ],
+  "require": {
+    "php": ">5.5",
+    "alibabacloud/tea-utils": "^0.2.17",
+    "alibabacloud/darabonba-openapi": "^0.2.8",
+    "alibabacloud/openapi-util": "^0.1.10|^0.2.1",
+    "alibabacloud/endpoint-util": "^0.1.0"
+  },
+  "autoload": {
+    "psr-4": {
+      "AlibabaCloud\\SDK\\OpenPlatform\\V20191219\\": "src"
+    }
+  },
+  "scripts": {
+    "fixer": "php-cs-fixer fix ./"
+  },
+  "config": {
+    "sort-packages": true,
+    "preferred-install": "dist",
+    "optimize-autoloader": true
+  },
+  "prefer-stable": true
+}

+ 59 - 0
vendor/alibabacloud/openplatform-20191219/src/Models/AuthorizeFileUploadRequest.php

@@ -0,0 +1,59 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\OpenPlatform\V20191219\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class AuthorizeFileUploadRequest extends Model
+{
+    /**
+     * @var string
+     */
+    public $product;
+
+    /**
+     * @var string
+     */
+    public $regionId;
+    protected $_name = [
+        'product'  => 'Product',
+        'regionId' => 'RegionId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->product) {
+            $res['Product'] = $this->product;
+        }
+        if (null !== $this->regionId) {
+            $res['RegionId'] = $this->regionId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return AuthorizeFileUploadRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Product'])) {
+            $model->product = $map['Product'];
+        }
+        if (isset($map['RegionId'])) {
+            $model->regionId = $map['RegionId'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 0
vendor/alibabacloud/openplatform-20191219/src/Models/AuthorizeFileUploadResponse.php

@@ -0,0 +1,74 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\OpenPlatform\V20191219\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class AuthorizeFileUploadResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var AuthorizeFileUploadResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return AuthorizeFileUploadResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = AuthorizeFileUploadResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

+ 131 - 0
vendor/alibabacloud/openplatform-20191219/src/Models/AuthorizeFileUploadResponseBody.php

@@ -0,0 +1,131 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\OpenPlatform\V20191219\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class AuthorizeFileUploadResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $accessKeyId;
+
+    /**
+     * @var string
+     */
+    public $bucket;
+
+    /**
+     * @var string
+     */
+    public $encodedPolicy;
+
+    /**
+     * @var string
+     */
+    public $endpoint;
+
+    /**
+     * @var string
+     */
+    public $objectKey;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var string
+     */
+    public $signature;
+
+    /**
+     * @var bool
+     */
+    public $useAccelerate;
+    protected $_name = [
+        'accessKeyId'   => 'AccessKeyId',
+        'bucket'        => 'Bucket',
+        'encodedPolicy' => 'EncodedPolicy',
+        'endpoint'      => 'Endpoint',
+        'objectKey'     => 'ObjectKey',
+        'requestId'     => 'RequestId',
+        'signature'     => 'Signature',
+        'useAccelerate' => 'UseAccelerate',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->accessKeyId) {
+            $res['AccessKeyId'] = $this->accessKeyId;
+        }
+        if (null !== $this->bucket) {
+            $res['Bucket'] = $this->bucket;
+        }
+        if (null !== $this->encodedPolicy) {
+            $res['EncodedPolicy'] = $this->encodedPolicy;
+        }
+        if (null !== $this->endpoint) {
+            $res['Endpoint'] = $this->endpoint;
+        }
+        if (null !== $this->objectKey) {
+            $res['ObjectKey'] = $this->objectKey;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->signature) {
+            $res['Signature'] = $this->signature;
+        }
+        if (null !== $this->useAccelerate) {
+            $res['UseAccelerate'] = $this->useAccelerate;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return AuthorizeFileUploadResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AccessKeyId'])) {
+            $model->accessKeyId = $map['AccessKeyId'];
+        }
+        if (isset($map['Bucket'])) {
+            $model->bucket = $map['Bucket'];
+        }
+        if (isset($map['EncodedPolicy'])) {
+            $model->encodedPolicy = $map['EncodedPolicy'];
+        }
+        if (isset($map['Endpoint'])) {
+            $model->endpoint = $map['Endpoint'];
+        }
+        if (isset($map['ObjectKey'])) {
+            $model->objectKey = $map['ObjectKey'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['Signature'])) {
+            $model->signature = $map['Signature'];
+        }
+        if (isset($map['UseAccelerate'])) {
+            $model->useAccelerate = $map['UseAccelerate'];
+        }
+
+        return $model;
+    }
+}

+ 89 - 0
vendor/alibabacloud/openplatform-20191219/src/OpenPlatform.php

@@ -0,0 +1,89 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\OpenPlatform\V20191219;
+
+use AlibabaCloud\Endpoint\Endpoint;
+use AlibabaCloud\OpenApiUtil\OpenApiUtilClient;
+use AlibabaCloud\SDK\OpenPlatform\V20191219\Models\AuthorizeFileUploadRequest;
+use AlibabaCloud\SDK\OpenPlatform\V20191219\Models\AuthorizeFileUploadResponse;
+use AlibabaCloud\Tea\Utils\Utils;
+use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
+use Darabonba\OpenApi\Models\OpenApiRequest;
+use Darabonba\OpenApi\Models\Params;
+use Darabonba\OpenApi\OpenApiClient;
+
+class OpenPlatform extends OpenApiClient
+{
+    public function __construct($config)
+    {
+        parent::__construct($config);
+        $this->_endpointRule = '';
+        $this->checkConfig($config);
+        $this->_endpoint = $this->getEndpoint('openplatform', $this->_regionId, $this->_endpointRule, $this->_network, $this->_suffix, $this->_endpointMap, $this->_endpoint);
+    }
+
+    /**
+     * @param string   $productId
+     * @param string   $regionId
+     * @param string   $endpointRule
+     * @param string   $network
+     * @param string   $suffix
+     * @param string[] $endpointMap
+     * @param string   $endpoint
+     *
+     * @return string
+     */
+    public function getEndpoint($productId, $regionId, $endpointRule, $network, $suffix, $endpointMap, $endpoint)
+    {
+        if (!Utils::empty_($endpoint)) {
+            return $endpoint;
+        }
+        if (!Utils::isUnset($endpointMap) && !Utils::empty_(@$endpointMap[$regionId])) {
+            return @$endpointMap[$regionId];
+        }
+
+        return Endpoint::getEndpointRules($productId, $regionId, $endpointRule, $network, $suffix);
+    }
+
+    /**
+     * @param AuthorizeFileUploadRequest $request
+     * @param RuntimeOptions             $runtime
+     *
+     * @return AuthorizeFileUploadResponse
+     */
+    public function authorizeFileUploadWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = OpenApiUtilClient::query(Utils::toMap($request));
+        $req   = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'AuthorizeFileUpload',
+            'version'     => '2019-12-19',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'GET',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return AuthorizeFileUploadResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param AuthorizeFileUploadRequest $request
+     *
+     * @return AuthorizeFileUploadResponse
+     */
+    public function authorizeFileUpload($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->authorizeFileUploadWithOptions($request, $runtime);
+    }
+}

+ 12 - 0
vendor/alibabacloud/tea-fileform/.gitignore

@@ -0,0 +1,12 @@
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+composer.lock
+
+.idea
+.DS_Store
+
+cache/
+*.cache

+ 65 - 0
vendor/alibabacloud/tea-fileform/.php_cs.dist

@@ -0,0 +1,65 @@
+<?php
+/*
+ * This document has been generated with
+ * https://mlocati.github.io/php-cs-fixer-configurator/#version:2.15|configurator
+ * you can change this configuration by importing this file.
+ */
+
+return PhpCsFixer\Config::create()
+    ->setRiskyAllowed(true)
+    ->setIndent('    ')
+    ->setRules([
+        '@PSR2'                                       => true,
+        '@PhpCsFixer'                                 => true,
+        '@Symfony:risky'                              => true,
+        'concat_space'                                => ['spacing' => 'one'],
+        'array_syntax'                                => ['syntax' => 'short'],
+        'array_indentation'                           => true,
+        'combine_consecutive_unsets'                  => true,
+        'method_separation'                           => true,
+        'single_quote'                                => true,
+        'declare_equal_normalize'                     => true,
+        'function_typehint_space'                     => true,
+        'hash_to_slash_comment'                       => true,
+        'include'                                     => true,
+        'lowercase_cast'                              => true,
+        'no_multiline_whitespace_before_semicolons'   => true,
+        'no_leading_import_slash'                     => true,
+        'no_multiline_whitespace_around_double_arrow' => true,
+        'no_spaces_around_offset'                     => true,
+        'no_unneeded_control_parentheses'             => true,
+        'no_unused_imports'                           => true,
+        'no_whitespace_before_comma_in_array'         => true,
+        'no_whitespace_in_blank_line'                 => true,
+        'object_operator_without_whitespace'          => true,
+        'single_blank_line_before_namespace'          => true,
+        'single_class_element_per_statement'          => true,
+        'space_after_semicolon'                       => true,
+        'standardize_not_equals'                      => true,
+        'ternary_operator_spaces'                     => true,
+        'trailing_comma_in_multiline_array'           => true,
+        'trim_array_spaces'                           => true,
+        'unary_operator_spaces'                       => true,
+        'whitespace_after_comma_in_array'             => true,
+        'no_extra_consecutive_blank_lines'            => [
+            'curly_brace_block',
+            'extra',
+            'parenthesis_brace_block',
+            'square_brace_block',
+            'throw',
+            'use',
+        ],
+        'binary_operator_spaces'       => [
+            'align_double_arrow' => true,
+            'align_equals'       => true,
+        ],
+        'braces'                                    => [
+            'allow_single_line_closure' => true,
+        ],
+    ])
+    ->setFinder(
+        PhpCsFixer\Finder::create()
+            ->exclude('vendor')
+            ->exclude('tests')
+            ->in(__DIR__)
+  );

+ 31 - 0
vendor/alibabacloud/tea-fileform/README-CN.md

@@ -0,0 +1,31 @@
+English | [简体中文](README-CN.md)
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+## Alibaba Cloud Tea File Library for PHP
+
+## Installation
+
+### Composer
+
+```bash
+composer require alibabacloud/tea-fileform
+```
+
+## Issues
+
+[Opening an Issue](https://github.com/aliyun/tea-fileform/issues/new), Issues not conforming to the guidelines may be closed immediately.
+
+## Changelog
+
+Detailed changes for each release are documented in the [release notes](./ChangeLog.txt).
+
+## References
+
+* [Latest Release](https://github.com/aliyun/tea-fileform)
+
+## License
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 31 - 0
vendor/alibabacloud/tea-fileform/README.md

@@ -0,0 +1,31 @@
+[English](README.md) | 简体中文
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+## Alibaba Cloud Tea File Library for PHP
+
+## 安装
+
+### Composer
+
+```bash
+composer require alibabacloud/tea-fileform
+```
+
+## 问题
+
+[提交 Issue](https://github.com/aliyun/tea-fileform/issues/new),不符合指南的问题可能会立即关闭。
+
+## 发行说明
+
+每个版本的详细更改记录在[发行说明](./ChangeLog.txt)中。
+
+## 相关
+
+* [最新源码](https://github.com/aliyun/tea-fileform)
+
+## 许可证
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است