songxingwei 2 năm trước cách đây
mục cha
commit
b9cc50dd8a
100 tập tin đã thay đổi với 12217 bổ sung5 xóa
  1. 14 0
      app/common.php
  2. 4 4
      app/data/controller/api/Certification.php
  3. 3 1
      composer.json
  4. 15 0
      vendor/alibabacloud/cloudauth-20190307/.gitignore
  5. 65 0
      vendor/alibabacloud/cloudauth-20190307/.php_cs.dist
  6. 33 0
      vendor/alibabacloud/cloudauth-20190307/ChangeLog.md
  7. 201 0
      vendor/alibabacloud/cloudauth-20190307/LICENSE
  8. 35 0
      vendor/alibabacloud/cloudauth-20190307/README-CN.md
  9. 35 0
      vendor/alibabacloud/cloudauth-20190307/README.md
  10. 17 0
      vendor/alibabacloud/cloudauth-20190307/autoload.php
  11. 38 0
      vendor/alibabacloud/cloudauth-20190307/composer.json
  12. 1185 0
      vendor/alibabacloud/cloudauth-20190307/src/Cloudauth.php
  13. 203 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyRequest.php
  14. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponse.php
  15. 84 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponseBody.php
  16. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponseBody/resultObject.php
  17. 83 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesRequest.php
  18. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponse.php
  19. 96 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponseBody.php
  20. 59 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponseBody/data.php
  21. 265 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyAdvanceRequest.php
  22. 263 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyRequest.php
  23. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponse.php
  24. 84 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponseBody.php
  25. 95 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponseBody/resultObject.php
  26. 83 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyRequest.php
  27. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyResponse.php
  28. 59 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyResponseBody.php
  29. 107 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingRequest.php
  30. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingResponse.php
  31. 97 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingResponseBody.php
  32. 119 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoRequest.php
  33. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponse.php
  34. 96 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody.php
  35. 60 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList.php
  36. 95 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList/deviceInfo.php
  37. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyRequest.php
  38. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponse.php
  39. 84 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponseBody.php
  40. 95 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponseBody/resultObject.php
  41. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponse.php
  42. 60 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponseBody.php
  43. 119 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponseBody/ossUploadToken.php
  44. 59 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultRequest.php
  45. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponse.php
  46. 108 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody.php
  47. 134 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody/material.php
  48. 155 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody/material/idCardInfo.php
  49. 47 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKRequest.php
  50. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKResponse.php
  51. 59 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKResponseBody.php
  52. 215 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenRequest.php
  53. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponse.php
  54. 84 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponseBody.php
  55. 119 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponseBody/ossUploadToken.php
  56. 59 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesRequest.php
  57. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponse.php
  58. 96 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody.php
  59. 72 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data.php
  60. 60 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos.php
  61. 61 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo.php
  62. 133 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes.php
  63. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/headpose.php
  64. 59 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/smiling.php
  65. 83 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceRect.php
  66. 311 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyRequest.php
  67. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponse.php
  68. 84 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponseBody.php
  69. 59 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponseBody/resultObject.php
  70. 203 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyRequest.php
  71. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponse.php
  72. 84 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponseBody.php
  73. 83 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponseBody/resultObject.php
  74. 95 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoRequest.php
  75. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoResponse.php
  76. 107 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoResponseBody.php
  77. 131 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialRequest.php
  78. 74 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponse.php
  79. 108 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponseBody.php
  80. 120 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponseBody/material.php
  81. 155 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialResponseBody/material/idCardInfo.php
  82. 15 0
      vendor/alibabacloud/cloudauth/Cloudauth.php
  83. 25 0
      vendor/alibabacloud/cloudauth/README-EN.md
  84. 25 0
      vendor/alibabacloud/cloudauth/README.md
  85. 455 0
      vendor/alibabacloud/cloudauth/V20180916/CloudauthApiResolver.php
  86. 1407 0
      vendor/alibabacloud/cloudauth/V20190307/CloudauthApiResolver.php
  87. 803 0
      vendor/alibabacloud/cloudauth/V20200618/CloudauthApiResolver.php
  88. 103 0
      vendor/alibabacloud/cloudauth/V20201112/CloudauthApiResolver.php
  89. 43 0
      vendor/alibabacloud/cloudauth/composer.json
  90. 1 0
      vendor/alibabacloud/cloudauth/endpoints.json
  91. 14 0
      vendor/alibabacloud/credentials/CHANGELOG.md
  92. 30 0
      vendor/alibabacloud/credentials/CONTRIBUTING.md
  93. 13 0
      vendor/alibabacloud/credentials/LICENSE.md
  94. 88 0
      vendor/alibabacloud/credentials/NOTICE.md
  95. 250 0
      vendor/alibabacloud/credentials/README-zh-CN.md
  96. 251 0
      vendor/alibabacloud/credentials/README.md
  97. 21 0
      vendor/alibabacloud/credentials/SECURITY.md
  98. 6 0
      vendor/alibabacloud/credentials/UPGRADING.md
  99. 104 0
      vendor/alibabacloud/credentials/composer.json
  100. 72 0
      vendor/alibabacloud/credentials/src/AccessKeyCredential.php

+ 14 - 0
app/common.php

@@ -44,4 +44,18 @@ function systemConfig($name,$value=null){
             ]);
         }
     }
+}
+/**
+ * 生成??位随机数
+ */
+function get32Str($length='32'){
+    // $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
+    $str = 'abcdefghijklmnopqrstuvwxyz0123456789';
+    $len = strlen($str)-1;
+    $randstr = '';
+    for ($i=0;$i<$length;$i++) {
+        $num=mt_rand(0,$len);
+        $randstr .= $str[$num];
+    }
+    return $randstr;
 }

+ 4 - 4
app/data/controller/Certification.php → app/data/controller/api/Certification.php

@@ -41,7 +41,7 @@ class Certification {
     public static function main($certName,$certNo,$metaInfo,$ReturnUrl){
         $client = self::createClient("LTAI5tMVT8vs7B1CApqhEgBo", "ESDiEM6zED1vyCMoGc9j5gZ9hWIXkP");
         $initFaceVerifyRequest = new InitFaceVerifyRequest([
-            "sceneId" => '1000004552',
+            "sceneId" => '1000006090',
             "outerOrderNo" => get32Str(),
             // 要接入的认证方案。
             "productCode" => "ID_PRO",
@@ -74,9 +74,9 @@ class Certification {
     public static function check($CertifyId){
         $client = self::createClient("LTAI5tAVV4VEU4vFVqpune1Q", "IMRENgb7kQsjLXfJ33aCyeTLeNj9DH");
         $describeFaceVerifyRequest = new DescribeFaceVerifyRequest([
-                'sceneId'           => '1000004552',
-                'certifyId'         => $CertifyId,
-            ]);
+            'sceneId'           => '1000004552',
+            'certifyId'         => $CertifyId,
+        ]);
         $runtime = new RuntimeOptions([]);
         try {
             // 复制代码运行请自行打印 API 的返回值

+ 3 - 1
composer.json

@@ -36,7 +36,9 @@
     "hg/apidoc-thinkphp": "^3.1",
     "voku/simple_html_dom": "^4.8",
     "php-ffmpeg/php-ffmpeg": "^0.19.0",
-    "alibabacloud/client": "^1.5"
+    "alibabacloud/client": "^1.5",
+    "alibabacloud/cloudauth": "^1.8",
+    "alibabacloud/cloudauth-20190307": "^2.0"
   },
   "autoload": {
     "psr-0": {

+ 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__)
+  );

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

@@ -0,0 +1,33 @@
+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;
+});

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

@@ -0,0 +1,38 @@
+{
+  "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.0",
+    "alibabacloud/tea-oss-sdk": "^0.3.0",
+    "alibabacloud/tea-rpc": "^0.1.5",
+    "alibabacloud/openplatform-20191219": "^1.0.3",
+    "alibabacloud/tea-oss-utils": "^0.2.0",
+    "alibabacloud/tea-fileform": "^0.3.0",
+    "alibabacloud/darabonba-openapi": "^0.2.5",
+    "alibabacloud/openapi-util": "^0.1.10",
+    "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
+}

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

@@ -0,0 +1,1185 @@
+<?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\Rpc\Rpc\Config;
+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 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->accessKeyId;
+            $ossConfig->endpoint    = OpenApiUtilClient::getEndpoint($authResponse->endpoint, $authResponse->useAccelerate, $this->_endpointType);
+            $ossClient              = new OSS($ossConfig);
+            $fileObj                = new FileField([
+                'filename'    => $authResponse->objectKey,
+                'content'     => $request->faceContrastFileObject,
+                'contentType' => '',
+            ]);
+            $ossHeader = new header([
+                'accessKeyId'         => $authResponse->accessKeyId,
+                'policy'              => $authResponse->encodedPolicy,
+                'signature'           => $authResponse->signature,
+                'key'                 => $authResponse->objectKey,
+                'file'                => $fileObj,
+                'successActionStatus' => '201',
+            ]);
+            $uploadRequest = new PostObjectRequest([
+                'bucketName' => $authResponse->bucket,
+                'header'     => $ossHeader,
+            ]);
+            $ossClient->postObject($uploadRequest, $ossRuntime);
+            $contrastFaceVerifyReq->faceContrastFile = 'http://' . $authResponse->bucket . '.' . $authResponse->endpoint . '/' . $authResponse->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->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->userId)) {
+            $query['UserId'] = $request->userId;
+        }
+        $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);
+    }
+}

+ 203 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyRequest.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 CompareFaceVerifyRequest extends Model
+{
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @var string
+     */
+    public $outerOrderNo;
+
+    /**
+     * @var string
+     */
+    public $productCode;
+
+    /**
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @var string
+     */
+    public $sourceCertifyId;
+
+    /**
+     * @var string
+     */
+    public $sourceFaceContrastPicture;
+
+    /**
+     * @var string
+     */
+    public $sourceFaceContrastPictureUrl;
+
+    /**
+     * @var string
+     */
+    public $sourceOssBucketName;
+
+    /**
+     * @var string
+     */
+    public $sourceOssObjectName;
+
+    /**
+     * @var string
+     */
+    public $targetCertifyId;
+
+    /**
+     * @var string
+     */
+    public $targetFaceContrastPicture;
+
+    /**
+     * @var string
+     */
+    public $targetFaceContrastPictureUrl;
+
+    /**
+     * @var string
+     */
+    public $targetOssBucketName;
+
+    /**
+     * @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;
+    }
+}

+ 84 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponseBody.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\CompareFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class CompareFaceVerifyResponseBody 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 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;
+    }
+}

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

@@ -0,0 +1,71 @@
+<?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;
+
+    /**
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,83 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $sourceImageType;
+
+    /**
+     * @var string
+     */
+    public $sourceImageValue;
+
+    /**
+     * @var string
+     */
+    public $targetImageType;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,96 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var data
+     */
+    public $data;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,59 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $confidenceThresholds;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,265 @@
+<?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 Stream
+     */
+    public $faceContrastFileObject;
+
+    /**
+     * @var string
+     */
+    public $certName;
+
+    /**
+     * @var string
+     */
+    public $certNo;
+
+    /**
+     * @var string
+     */
+    public $certType;
+
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @var string
+     */
+    public $deviceToken;
+
+    /**
+     * @var string
+     */
+    public $encryptType;
+
+    /**
+     * @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 = [
+        'faceContrastFileObject' => 'FaceContrastFileObject',
+        'certName'               => 'CertName',
+        'certNo'                 => 'CertNo',
+        'certType'               => 'CertType',
+        'certifyId'              => 'CertifyId',
+        'crop'                   => 'Crop',
+        'deviceToken'            => 'DeviceToken',
+        'encryptType'            => 'EncryptType',
+        '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()
+    {
+        Model::validateRequired('faceContrastFileObject', $this->faceContrastFileObject, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceContrastFileObject) {
+            $res['FaceContrastFileObject'] = $this->faceContrastFileObject;
+        }
+        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->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['FaceContrastFileObject'])) {
+            $model->faceContrastFileObject = $map['FaceContrastFileObject'];
+        }
+        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['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;
+    }
+}

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

@@ -0,0 +1,263 @@
+<?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;
+
+    /**
+     * @var string
+     */
+    public $certNo;
+
+    /**
+     * @var string
+     */
+    public $certType;
+
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @var string
+     */
+    public $deviceToken;
+
+    /**
+     * @var string
+     */
+    public $encryptType;
+
+    /**
+     * @var string
+     */
+    public $faceContrastFile;
+
+    /**
+     * @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 = [
+        '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;
+    }
+}

+ 84 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponseBody.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\ContrastFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class ContrastFaceVerifyResponseBody 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 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;
+    }
+}

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

@@ -0,0 +1,95 @@
+<?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;
+
+    /**
+     * @var string
+     */
+    public $identityInfo;
+
+    /**
+     * @var string
+     */
+    public $materialInfo;
+
+    /**
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,83 @@
+<?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
+{
+    /**
+     * @var int
+     */
+    public $authYears;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var bool
+     */
+    public $test;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,59 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $authKey;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,107 @@
+<?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;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var bool
+     */
+    public $guideStep;
+
+    /**
+     * @var bool
+     */
+    public $privacyStep;
+
+    /**
+     * @var bool
+     */
+    public $resultStep;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,97 @@
+<?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;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @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;
+    }
+}

+ 119 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoRequest.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 DescribeDeviceInfoRequest extends Model
+{
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var int
+     */
+    public $currentPage;
+
+    /**
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @var string
+     */
+    public $expiredEndDay;
+
+    /**
+     * @var string
+     */
+    public $expiredStartDay;
+
+    /**
+     * @var int
+     */
+    public $pageSize;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,96 @@
+<?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
+{
+    /**
+     * @var int
+     */
+    public $currentPage;
+
+    /**
+     * @var deviceInfoList
+     */
+    public $deviceInfoList;
+
+    /**
+     * @var int
+     */
+    public $pageSize;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,95 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $beginDay;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @var string
+     */
+    public $expiredDay;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,71 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $pictureReturnType;
+
+    /**
+     * @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;
+    }
+}

+ 84 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponseBody.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\DescribeFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class DescribeFaceVerifyResponseBody 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 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;
+    }
+}

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

@@ -0,0 +1,95 @@
+<?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 $deviceToken;
+
+    /**
+     * @var string
+     */
+    public $identityInfo;
+
+    /**
+     * @var string
+     */
+    public $materialInfo;
+
+    /**
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @var string
+     */
+    public $subCode;
+    protected $_name = [
+        'deviceToken'  => 'DeviceToken',
+        'identityInfo' => 'IdentityInfo',
+        'materialInfo' => 'MaterialInfo',
+        'passed'       => 'Passed',
+        'subCode'      => 'SubCode',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        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['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;
+    }
+}

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

@@ -0,0 +1,60 @@
+<?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;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,119 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $bucket;
+
+    /**
+     * @var string
+     */
+    public $endPoint;
+
+    /**
+     * @var int
+     */
+    public $expired;
+
+    /**
+     * @var string
+     */
+    public $key;
+
+    /**
+     * @var string
+     */
+    public $path;
+
+    /**
+     * @var string
+     */
+    public $secret;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,59 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $bizId;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,108 @@
+<?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
+{
+    /**
+     * @var float
+     */
+    public $authorityComparisionScore;
+
+    /**
+     * @var float
+     */
+    public $faceComparisonScore;
+
+    /**
+     * @var float
+     */
+    public $idCardFaceComparisonScore;
+
+    /**
+     * @var material
+     */
+    public $material;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,134 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $faceGlobalUrl;
+
+    /**
+     * @var string
+     */
+    public $faceImageUrl;
+
+    /**
+     * @var bool
+     */
+    public $faceMask;
+
+    /**
+     * @var string
+     */
+    public $faceQuality;
+
+    /**
+     * @var idCardInfo
+     */
+    public $idCardInfo;
+
+    /**
+     * @var string
+     */
+    public $idCardName;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,155 @@
+<?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;
+
+    /**
+     * @var string
+     */
+    public $backImageUrl;
+
+    /**
+     * @var string
+     */
+    public $birth;
+
+    /**
+     * @var string
+     */
+    public $endDate;
+
+    /**
+     * @var string
+     */
+    public $frontImageUrl;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @var string
+     */
+    public $nationality;
+
+    /**
+     * @var string
+     */
+    public $number;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,47 @@
+<?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
+{
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,59 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,215 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $bizId;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var string
+     */
+    public $callbackSeed;
+
+    /**
+     * @var string
+     */
+    public $callbackUrl;
+
+    /**
+     * @var string
+     */
+    public $faceRetainedImageUrl;
+
+    /**
+     * @var string
+     */
+    public $failedRedirectUrl;
+
+    /**
+     * @var string
+     */
+    public $idCardBackImageUrl;
+
+    /**
+     * @var string
+     */
+    public $idCardFrontImageUrl;
+
+    /**
+     * @var string
+     */
+    public $idCardNumber;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @var string
+     */
+    public $passedRedirectUrl;
+
+    /**
+     * @var string
+     */
+    public $userId;
+
+    /**
+     * @var string
+     */
+    public $userIp;
+
+    /**
+     * @var string
+     */
+    public $userPhoneNumber;
+
+    /**
+     * @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;
+    }
+}

+ 84 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponseBody.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\DescribeVerifyTokenResponseBody\ossUploadToken;
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifyTokenResponseBody extends Model
+{
+    /**
+     * @var ossUploadToken
+     */
+    public $ossUploadToken;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var string
+     */
+    public $verifyPageUrl;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,119 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $bucket;
+
+    /**
+     * @var string
+     */
+    public $endPoint;
+
+    /**
+     * @var int
+     */
+    public $expired;
+
+    /**
+     * @var string
+     */
+    public $key;
+
+    /**
+     * @var string
+     */
+    public $path;
+
+    /**
+     * @var string
+     */
+    public $secret;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,59 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,96 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var data
+     */
+    public $data;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,72 @@
+<?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;
+
+    /**
+     * @var int
+     */
+    public $imgHeight;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,133 @@
+<?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
+{
+    /**
+     * @var float
+     */
+    public $blur;
+
+    /**
+     * @var float
+     */
+    public $facequal;
+
+    /**
+     * @var string
+     */
+    public $facetype;
+
+    /**
+     * @var string
+     */
+    public $glasses;
+
+    /**
+     * @var headpose
+     */
+    public $headpose;
+
+    /**
+     * @var int
+     */
+    public $integrity;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,71 @@
+<?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
+{
+    /**
+     * @var float
+     */
+    public $pitchAngle;
+
+    /**
+     * @var float
+     */
+    public $rollAngle;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,59 @@
+<?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
+{
+    /**
+     * @var float
+     */
+    public $threshold;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,83 @@
+<?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
+{
+    /**
+     * @var int
+     */
+    public $height;
+
+    /**
+     * @var int
+     */
+    public $left;
+
+    /**
+     * @var int
+     */
+    public $top;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,311 @@
+<?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;
+
+    /**
+     * @var string
+     */
+    public $certNo;
+
+    /**
+     * @var string
+     */
+    public $certType;
+
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $certifyUrlType;
+
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @var string
+     */
+    public $encryptType;
+
+    /**
+     * @var string
+     */
+    public $faceContrastPicture;
+
+    /**
+     * @var string
+     */
+    public $faceContrastPictureUrl;
+
+    /**
+     * @var string
+     */
+    public $ip;
+
+    /**
+     * @var string
+     */
+    public $metaInfo;
+
+    /**
+     * @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 string
+     */
+    public $returnUrl;
+
+    /**
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @var string
+     */
+    public $userId;
+    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',
+        'productCode'            => 'ProductCode',
+        'returnUrl'              => 'ReturnUrl',
+        'sceneId'                => 'SceneId',
+        'userId'                 => 'UserId',
+    ];
+
+    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->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->returnUrl) {
+            $res['ReturnUrl'] = $this->returnUrl;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
+        }
+
+        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['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['ReturnUrl'])) {
+            $model->returnUrl = $map['ReturnUrl'];
+        }
+        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/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;
+    }
+}

+ 84 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponseBody.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\InitFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class InitFaceVerifyResponseBody 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 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;
+    }
+}

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

@@ -0,0 +1,59 @@
+<?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
+{
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,95 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @var string
+     */
+    public $duration;
+
+    /**
+     * @var string
+     */
+    public $expiredDay;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,107 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $beginDay;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @var string
+     */
+    public $expiredDay;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,131 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $bizId;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var string
+     */
+    public $faceImageUrl;
+
+    /**
+     * @var string
+     */
+    public $idCardBackImageUrl;
+
+    /**
+     * @var string
+     */
+    public $idCardFrontImageUrl;
+
+    /**
+     * @var string
+     */
+    public $idCardNumber;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,108 @@
+<?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
+{
+    /**
+     * @var float
+     */
+    public $authorityComparisionScore;
+
+    /**
+     * @var float
+     */
+    public $idCardFaceComparisonScore;
+
+    /**
+     * @var material
+     */
+    public $material;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var int
+     */
+    public $verifyStatus;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,120 @@
+<?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
+{
+    /**
+     * @var string
+     */
+    public $faceGlobalUrl;
+
+    /**
+     * @var string
+     */
+    public $faceImageUrl;
+
+    /**
+     * @var string
+     */
+    public $faceMask;
+
+    /**
+     * @var string
+     */
+    public $faceQuality;
+
+    /**
+     * @var idCardInfo
+     */
+    public $idCardInfo;
+
+    /**
+     * @var string
+     */
+    public $idCardName;
+
+    /**
+     * @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;
+    }
+}

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

@@ -0,0 +1,155 @@
+<?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;
+
+    /**
+     * @var string
+     */
+    public $backImageUrl;
+
+    /**
+     * @var string
+     */
+    public $birth;
+
+    /**
+     * @var string
+     */
+    public $endDate;
+
+    /**
+     * @var string
+     */
+    public $frontImageUrl;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @var string
+     */
+    public $nationality;
+
+    /**
+     * @var string
+     */
+    public $number;
+
+    /**
+     * @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/cloudauth/Cloudauth.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace AlibabaCloud\Cloudauth;
+
+use AlibabaCloud\Client\Resolver\VersionResolver;
+
+/**
+ * @method static V20180916\CloudauthApiResolver v20180916()
+ * @method static V20190307\CloudauthApiResolver v20190307()
+ * @method static V20200618\CloudauthApiResolver v20200618()
+ * @method static V20201112\CloudauthApiResolver v20201112()
+ */
+class Cloudauth extends VersionResolver
+{
+}

+ 25 - 0
vendor/alibabacloud/cloudauth/README-EN.md

@@ -0,0 +1,25 @@
+[简体中文](./README.md) | English
+
+<p align="center">
+<a href=" https://www.aliyun.com"><img src="https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg"></a>
+</p>
+
+<h1 align="center">Alibaba Cloud Cloudauth SDK for PHP</h1>
+
+If [Alibaba Cloud SDK for PHP][sdk] is installed, there is no need to install the product dependency package. This product dependency package is only part of the synchronization from [Alibaba Cloud SDK for PHP][sdk], and its namespace and usage are consistent with [Alibaba Cloud SDK for PHP][sdk].
+
+If you don't care about file size, we recommend that you install [Alibaba Cloud SDK for PHP][sdk] and update it regularly so as to maintain the latest and most complete product support:
+```
+composer require alibabacloud/sdk
+```
+
+The product can also be installed only:
+> The version of this product is always synchronized with [Alibaba Cloud SDK for PHP][sdk] to ensure that it can switch with [Alibaba Cloud SDK for PHP][sdk] at any time without changing the business code, although the code between different versions of this product may not change.
+```
+composer require alibabacloud/cloudauth
+```
+
+***
+Refer to document [Alibaba Cloud SDK for PHP][sdk] for more SDK usage.
+
+[sdk]: https://github.com/aliyun/openapi-sdk-php

+ 25 - 0
vendor/alibabacloud/cloudauth/README.md

@@ -0,0 +1,25 @@
+简体中文 | [English](./README-EN.md)
+
+<p align="center">
+<a href=" https://www.aliyun.com"><img src="https://aliyunsdk-pages.alicdn.com/icons/Aliyun.svg"></a>
+</p>
+
+<h1 align="center">Alibaba Cloud Cloudauth SDK for PHP</h1>
+
+若已安装 [Alibaba Cloud SDK for PHP][sdk] 则无需安装本产品依赖包。本产品依赖包只是从 [Alibaba Cloud SDK for PHP][sdk] 中同步出来的一部分,其命名空间、用法与 [Alibaba Cloud SDK for PHP][sdk] 一致。
+
+如果您不在乎文件体积,建议您安装 [Alibaba Cloud SDK for PHP][sdk] 并经常更新,以便保持最新、最全的产品支持:
+```
+composer require alibabacloud/sdk
+```
+
+也可仅安装本产品:
+> 本产品的版本始终和 [Alibaba Cloud SDK for PHP][sdk] 保持同步,以保证在不改变业务代码的情况下随时和 [Alibaba Cloud SDK for PHP][sdk] 相互切换,尽管本产品不同版本之间的代码可能没有变化。
+```
+composer require alibabacloud/cloudauth
+```
+
+***
+更多 SDK 的使用请参考 [Alibaba Cloud SDK for PHP][sdk] 文档。
+
+[sdk]: https://github.com/aliyun/openapi-sdk-php

+ 455 - 0
vendor/alibabacloud/cloudauth/V20180916/CloudauthApiResolver.php

@@ -0,0 +1,455 @@
+<?php
+
+namespace AlibabaCloud\Cloudauth\V20180916;
+
+use AlibabaCloud\Client\Resolver\ApiResolver;
+
+/**
+ * @method CompareFaces compareFaces(array $options = [])
+ * @method CreateAuthKey createAuthKey(array $options = [])
+ * @method CreateVerifySDK createVerifySDK(array $options = [])
+ * @method DescribeDeviceInfo describeDeviceInfo(array $options = [])
+ * @method DescribeVerifySDK describeVerifySDK(array $options = [])
+ * @method DetectFaceAttributes detectFaceAttributes(array $options = [])
+ * @method GetMaterials getMaterials(array $options = [])
+ * @method GetStatus getStatus(array $options = [])
+ * @method GetVerifyToken getVerifyToken(array $options = [])
+ * @method ModifyDeviceInfo modifyDeviceInfo(array $options = [])
+ * @method SubmitMaterials submitMaterials(array $options = [])
+ * @method SubmitVerification submitVerification(array $options = [])
+ */
+class CloudauthApiResolver extends ApiResolver
+{
+}
+
+class Rpc extends \AlibabaCloud\Client\Resolver\Rpc
+{
+    /** @var string */
+    public $product = 'Cloudauth';
+
+    /** @var string */
+    public $version = '2018-09-16';
+
+    /** @var string */
+    public $method = 'POST';
+
+    /** @var string */
+    public $serviceCode = 'cloudauth';
+}
+
+/**
+ * @method string getSourceImageType()
+ * @method string getResourceOwnerId()
+ * @method $this withResourceOwnerId($value)
+ * @method string getTargetImageType()
+ * @method string getTargetImageValue()
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getSourceImageValue()
+ */
+class CompareFaces extends Rpc
+{
+
+    /** @var string */
+    public $scheme = 'https';
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSourceImageType($value)
+    {
+        $this->data['SourceImageType'] = $value;
+        $this->options['form_params']['SourceImageType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTargetImageType($value)
+    {
+        $this->data['TargetImageType'] = $value;
+        $this->options['form_params']['TargetImageType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTargetImageValue($value)
+    {
+        $this->data['TargetImageValue'] = $value;
+        $this->options['form_params']['TargetImageValue'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSourceImageValue($value)
+    {
+        $this->data['SourceImageValue'] = $value;
+        $this->options['form_params']['SourceImageValue'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getUserDeviceId()
+ * @method $this withUserDeviceId($value)
+ * @method string getTest()
+ * @method $this withTest($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getAuthYears()
+ * @method $this withAuthYears($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class CreateAuthKey extends Rpc
+{
+}
+
+/**
+ * @method string getAppUrl()
+ * @method $this withAppUrl($value)
+ * @method string getPlatform()
+ * @method $this withPlatform($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class CreateVerifySDK extends Rpc
+{
+}
+
+/**
+ * @method string getUserDeviceId()
+ * @method $this withUserDeviceId($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getPageSize()
+ * @method $this withPageSize($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ * @method string getExpiredStartDay()
+ * @method $this withExpiredStartDay($value)
+ * @method string getTotalCount()
+ * @method $this withTotalCount($value)
+ * @method string getCurrentPage()
+ * @method $this withCurrentPage($value)
+ * @method string getDeviceId()
+ * @method $this withDeviceId($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getExpiredEndDay()
+ * @method $this withExpiredEndDay($value)
+ */
+class DescribeDeviceInfo extends Rpc
+{
+}
+
+/**
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ * @method string getTaskId()
+ * @method $this withTaskId($value)
+ */
+class DescribeVerifySDK extends Rpc
+{
+}
+
+/**
+ * @method string getMaxNumPhotosPerCategory()
+ * @method string getMaxFaceNum()
+ * @method string getResourceOwnerId()
+ * @method $this withResourceOwnerId($value)
+ * @method string getRetAttributes()
+ * @method string getClientTag()
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getMaterialValue()
+ * @method string getDontSaveDB()
+ */
+class DetectFaceAttributes extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMaxNumPhotosPerCategory($value)
+    {
+        $this->data['MaxNumPhotosPerCategory'] = $value;
+        $this->options['form_params']['MaxNumPhotosPerCategory'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMaxFaceNum($value)
+    {
+        $this->data['MaxFaceNum'] = $value;
+        $this->options['form_params']['MaxFaceNum'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withRetAttributes($value)
+    {
+        $this->data['RetAttributes'] = $value;
+        $this->options['form_params']['RetAttributes'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withClientTag($value)
+    {
+        $this->data['ClientTag'] = $value;
+        $this->options['form_params']['ClientTag'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMaterialValue($value)
+    {
+        $this->data['MaterialValue'] = $value;
+        $this->options['form_params']['MaterialValue'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withDontSaveDB($value)
+    {
+        $this->data['DontSaveDB'] = $value;
+        $this->options['form_params']['DontSaveDB'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getBiz()
+ * @method $this withBiz($value)
+ * @method string getTicketId()
+ * @method $this withTicketId($value)
+ */
+class GetMaterials extends Rpc
+{
+
+    /** @var string */
+    public $scheme = 'https';
+}
+
+/**
+ * @method string getBiz()
+ * @method $this withBiz($value)
+ * @method string getTicketId()
+ * @method $this withTicketId($value)
+ */
+class GetStatus extends Rpc
+{
+
+    /** @var string */
+    public $scheme = 'https';
+}
+
+/**
+ * @method string getBinding()
+ * @method string getVerifyConfigs()
+ * @method $this withVerifyConfigs($value)
+ * @method string getUserData()
+ * @method $this withUserData($value)
+ * @method string getBiz()
+ * @method $this withBiz($value)
+ * @method string getTicketId()
+ * @method $this withTicketId($value)
+ */
+class GetVerifyToken extends Rpc
+{
+
+    /** @var string */
+    public $scheme = 'https';
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withBinding($value)
+    {
+        $this->data['Binding'] = $value;
+        $this->options['form_params']['Binding'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getUserDeviceId()
+ * @method $this withUserDeviceId($value)
+ * @method string getDuration()
+ * @method $this withDuration($value)
+ * @method string getExpiredDay()
+ * @method $this withExpiredDay($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ * @method string getDeviceId()
+ * @method $this withDeviceId($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ */
+class ModifyDeviceInfo extends Rpc
+{
+}
+
+/**
+ * @method string getResourceOwnerId()
+ * @method $this withResourceOwnerId($value)
+ * @method string getVerifyToken()
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method array getMaterial()
+ */
+class SubmitMaterials extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withVerifyToken($value)
+    {
+        $this->data['VerifyToken'] = $value;
+        $this->options['form_params']['VerifyToken'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param array $material
+     *
+     * @return $this
+     */
+	public function withMaterial(array $material)
+	{
+	    $this->data['Material'] = $material;
+		foreach ($material as $depth1 => $depth1Value) {
+			if(isset($depth1Value['MaterialType'])){
+				$this->options['form_params']['Material.' . ($depth1 + 1) . '.MaterialType'] = $depth1Value['MaterialType'];
+			}
+			if(isset($depth1Value['Value'])){
+				$this->options['form_params']['Material.' . ($depth1 + 1) . '.Value'] = $depth1Value['Value'];
+			}
+		}
+
+		return $this;
+    }
+}
+
+/**
+ * @method string getResourceOwnerId()
+ * @method $this withResourceOwnerId($value)
+ * @method string getBiz()
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method array getMaterial()
+ * @method string getTicketId()
+ */
+class SubmitVerification extends Rpc
+{
+
+    /** @var string */
+    public $scheme = 'https';
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withBiz($value)
+    {
+        $this->data['Biz'] = $value;
+        $this->options['form_params']['Biz'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param array $material
+     *
+     * @return $this
+     */
+	public function withMaterial(array $material)
+	{
+	    $this->data['Material'] = $material;
+		foreach ($material as $depth1 => $depth1Value) {
+			if(isset($depth1Value['MaterialType'])){
+				$this->options['form_params']['Material.' . ($depth1 + 1) . '.MaterialType'] = $depth1Value['MaterialType'];
+			}
+			if(isset($depth1Value['Value'])){
+				$this->options['form_params']['Material.' . ($depth1 + 1) . '.Value'] = $depth1Value['Value'];
+			}
+		}
+
+		return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTicketId($value)
+    {
+        $this->data['TicketId'] = $value;
+        $this->options['form_params']['TicketId'] = $value;
+
+        return $this;
+    }
+}

+ 1407 - 0
vendor/alibabacloud/cloudauth/V20190307/CloudauthApiResolver.php

@@ -0,0 +1,1407 @@
+<?php
+
+namespace AlibabaCloud\Cloudauth\V20190307;
+
+use AlibabaCloud\Client\Resolver\ApiResolver;
+
+/**
+ * @method CompareFaces compareFaces(array $options = [])
+ * @method CompareFaceVerify compareFaceVerify(array $options = [])
+ * @method ContrastFaceVerify contrastFaceVerify(array $options = [])
+ * @method CreateAuthKey createAuthKey(array $options = [])
+ * @method CreateFaceConfig createFaceConfig(array $options = [])
+ * @method CreateRPSDK createRPSDK(array $options = [])
+ * @method CreateVerifySDK createVerifySDK(array $options = [])
+ * @method CreateVerifySetting createVerifySetting(array $options = [])
+ * @method CreateWhitelist createWhitelist(array $options = [])
+ * @method DeleteWhitelist deleteWhitelist(array $options = [])
+ * @method DescribeAppInfo describeAppInfo(array $options = [])
+ * @method DescribeDeviceInfo describeDeviceInfo(array $options = [])
+ * @method DescribeFaceConfig describeFaceConfig(array $options = [])
+ * @method DescribeFaceUsage describeFaceUsage(array $options = [])
+ * @method DescribeFaceVerify describeFaceVerify(array $options = [])
+ * @method DescribeOssUploadToken describeOssUploadToken(array $options = [])
+ * @method DescribeRPSDK describeRPSDK(array $options = [])
+ * @method DescribeSdkUrl describeSdkUrl(array $options = [])
+ * @method DescribeUpdatePackageResult describeUpdatePackageResult(array $options = [])
+ * @method DescribeUploadInfo describeUploadInfo(array $options = [])
+ * @method DescribeUserStatus describeUserStatus(array $options = [])
+ * @method DescribeVerifyRecords describeVerifyRecords(array $options = [])
+ * @method DescribeVerifyResult describeVerifyResult(array $options = [])
+ * @method DescribeVerifySDK describeVerifySDK(array $options = [])
+ * @method DescribeVerifySetting describeVerifySetting(array $options = [])
+ * @method DescribeVerifyToken describeVerifyToken(array $options = [])
+ * @method DescribeVerifyUsage describeVerifyUsage(array $options = [])
+ * @method DescribeWhitelist describeWhitelist(array $options = [])
+ * @method DetectFaceAttributes detectFaceAttributes(array $options = [])
+ * @method InitDevice initDevice(array $options = [])
+ * @method InitFaceVerify initFaceVerify(array $options = [])
+ * @method LivenessFaceVerify livenessFaceVerify(array $options = [])
+ * @method ModifyDeviceInfo modifyDeviceInfo(array $options = [])
+ * @method UpdateAppPackage updateAppPackage(array $options = [])
+ * @method UpdateFaceConfig updateFaceConfig(array $options = [])
+ * @method UpdateVerifySetting updateVerifySetting(array $options = [])
+ * @method VerifyDevice verifyDevice(array $options = [])
+ * @method VerifyMaterial verifyMaterial(array $options = [])
+ */
+class CloudauthApiResolver extends ApiResolver
+{
+}
+
+class Rpc extends \AlibabaCloud\Client\Resolver\Rpc
+{
+    /** @var string */
+    public $product = 'Cloudauth';
+
+    /** @var string */
+    public $version = '2019-03-07';
+
+    /** @var string */
+    public $method = 'POST';
+
+    /** @var string */
+    public $serviceCode = 'cloudauth';
+}
+
+/**
+ * @method string getSourceImageType()
+ * @method string getTargetImageType()
+ * @method string getTargetImageValue()
+ * @method string getBizType()
+ * @method string getSourceImageValue()
+ */
+class CompareFaces extends Rpc
+{
+
+    /** @var string */
+    public $scheme = 'https';
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSourceImageType($value)
+    {
+        $this->data['SourceImageType'] = $value;
+        $this->options['form_params']['SourceImageType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTargetImageType($value)
+    {
+        $this->data['TargetImageType'] = $value;
+        $this->options['form_params']['TargetImageType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTargetImageValue($value)
+    {
+        $this->data['TargetImageValue'] = $value;
+        $this->options['form_params']['TargetImageValue'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withBizType($value)
+    {
+        $this->data['BizType'] = $value;
+        $this->options['form_params']['BizType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSourceImageValue($value)
+    {
+        $this->data['SourceImageValue'] = $value;
+        $this->options['form_params']['SourceImageValue'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getTargetFaceContrastPictureUrl()
+ * @method string getProductCode()
+ * @method string getTargetCertifyId()
+ * @method string getSourceOssObjectName()
+ * @method string getTargetFaceContrastPicture()
+ * @method string getTargetOssBucketName()
+ * @method string getSourceOssBucketName()
+ * @method string getOuterOrderNo()
+ * @method string getTargetOssObjectName()
+ * @method string getSourceFaceContrastPicture()
+ * @method string getSceneId()
+ * @method string getSourceFaceContrastPictureUrl()
+ * @method string getSourceCertifyId()
+ */
+class CompareFaceVerify extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTargetFaceContrastPictureUrl($value)
+    {
+        $this->data['TargetFaceContrastPictureUrl'] = $value;
+        $this->options['form_params']['TargetFaceContrastPictureUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withProductCode($value)
+    {
+        $this->data['ProductCode'] = $value;
+        $this->options['form_params']['ProductCode'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTargetCertifyId($value)
+    {
+        $this->data['TargetCertifyId'] = $value;
+        $this->options['form_params']['TargetCertifyId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSourceOssObjectName($value)
+    {
+        $this->data['SourceOssObjectName'] = $value;
+        $this->options['form_params']['SourceOssObjectName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTargetFaceContrastPicture($value)
+    {
+        $this->data['TargetFaceContrastPicture'] = $value;
+        $this->options['form_params']['TargetFaceContrastPicture'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTargetOssBucketName($value)
+    {
+        $this->data['TargetOssBucketName'] = $value;
+        $this->options['form_params']['TargetOssBucketName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSourceOssBucketName($value)
+    {
+        $this->data['SourceOssBucketName'] = $value;
+        $this->options['form_params']['SourceOssBucketName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOuterOrderNo($value)
+    {
+        $this->data['OuterOrderNo'] = $value;
+        $this->options['form_params']['OuterOrderNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withTargetOssObjectName($value)
+    {
+        $this->data['TargetOssObjectName'] = $value;
+        $this->options['form_params']['TargetOssObjectName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSourceFaceContrastPicture($value)
+    {
+        $this->data['SourceFaceContrastPicture'] = $value;
+        $this->options['form_params']['SourceFaceContrastPicture'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSceneId($value)
+    {
+        $this->data['SceneId'] = $value;
+        $this->options['form_params']['SceneId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSourceFaceContrastPictureUrl($value)
+    {
+        $this->data['SourceFaceContrastPictureUrl'] = $value;
+        $this->options['form_params']['SourceFaceContrastPictureUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSourceCertifyId($value)
+    {
+        $this->data['SourceCertifyId'] = $value;
+        $this->options['form_params']['SourceCertifyId'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getProductCode()
+ * @method string getFaceContrastPicture()
+ * @method string getDeviceToken()
+ * @method string getUserId()
+ * @method string getCertifyId()
+ * @method string getCertNo()
+ * @method string getOuterOrderNo()
+ * @method string getCertType()
+ * @method string getFaceContrastPictureUrl()
+ * @method string getModel()
+ * @method $this withModel($value)
+ * @method string getOssObjectName()
+ * @method string getCertName()
+ * @method string getIp()
+ * @method string getMobile()
+ * @method string getFaceContrastFile()
+ * @method string getSceneId()
+ * @method string getOssBucketName()
+ */
+class ContrastFaceVerify extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withProductCode($value)
+    {
+        $this->data['ProductCode'] = $value;
+        $this->options['form_params']['ProductCode'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFaceContrastPicture($value)
+    {
+        $this->data['FaceContrastPicture'] = $value;
+        $this->options['form_params']['FaceContrastPicture'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withDeviceToken($value)
+    {
+        $this->data['DeviceToken'] = $value;
+        $this->options['form_params']['DeviceToken'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withUserId($value)
+    {
+        $this->data['UserId'] = $value;
+        $this->options['form_params']['UserId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertifyId($value)
+    {
+        $this->data['CertifyId'] = $value;
+        $this->options['form_params']['CertifyId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertNo($value)
+    {
+        $this->data['CertNo'] = $value;
+        $this->options['form_params']['CertNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOuterOrderNo($value)
+    {
+        $this->data['OuterOrderNo'] = $value;
+        $this->options['form_params']['OuterOrderNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertType($value)
+    {
+        $this->data['CertType'] = $value;
+        $this->options['form_params']['CertType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFaceContrastPictureUrl($value)
+    {
+        $this->data['FaceContrastPictureUrl'] = $value;
+        $this->options['form_params']['FaceContrastPictureUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOssObjectName($value)
+    {
+        $this->data['OssObjectName'] = $value;
+        $this->options['form_params']['OssObjectName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertName($value)
+    {
+        $this->data['CertName'] = $value;
+        $this->options['form_params']['CertName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withIp($value)
+    {
+        $this->data['Ip'] = $value;
+        $this->options['form_params']['Ip'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMobile($value)
+    {
+        $this->data['Mobile'] = $value;
+        $this->options['form_params']['Mobile'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFaceContrastFile($value)
+    {
+        $this->data['FaceContrastFile'] = $value;
+        $this->options['form_params']['FaceContrastFile'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSceneId($value)
+    {
+        $this->data['SceneId'] = $value;
+        $this->options['form_params']['SceneId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOssBucketName($value)
+    {
+        $this->data['OssBucketName'] = $value;
+        $this->options['form_params']['OssBucketName'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getUserDeviceId()
+ * @method $this withUserDeviceId($value)
+ * @method string getTest()
+ * @method $this withTest($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getAuthYears()
+ * @method $this withAuthYears($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class CreateAuthKey extends Rpc
+{
+}
+
+/**
+ * @method string getBizName()
+ * @method $this withBizName($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class CreateFaceConfig extends Rpc
+{
+}
+
+/**
+ * @method string getAppUrl()
+ * @method $this withAppUrl($value)
+ * @method string getPlatform()
+ * @method $this withPlatform($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class CreateRPSDK extends Rpc
+{
+}
+
+/**
+ * @method string getAppUrl()
+ * @method $this withAppUrl($value)
+ * @method string getPlatform()
+ * @method $this withPlatform($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class CreateVerifySDK extends Rpc
+{
+}
+
+/**
+ * @method string getGuideStep()
+ * @method $this withGuideStep($value)
+ * @method string getResultStep()
+ * @method $this withResultStep($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getSolution()
+ * @method $this withSolution($value)
+ * @method string getBizName()
+ * @method $this withBizName($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getPrivacyStep()
+ * @method $this withPrivacyStep($value)
+ */
+class CreateVerifySetting extends Rpc
+{
+}
+
+/**
+ * @method string getValidDay()
+ * @method $this withValidDay($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getIdCardNum()
+ * @method $this withIdCardNum($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getBizId()
+ * @method $this withBizId($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class CreateWhitelist extends Rpc
+{
+}
+
+/**
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getIds()
+ * @method $this withIds($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class DeleteWhitelist extends Rpc
+{
+}
+
+/**
+ * @method string getCurrentPage()
+ * @method $this withCurrentPage($value)
+ * @method string getPlatform()
+ * @method $this withPlatform($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getPageSize()
+ * @method $this withPageSize($value)
+ */
+class DescribeAppInfo extends Rpc
+{
+}
+
+/**
+ * @method string getUserDeviceId()
+ * @method $this withUserDeviceId($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getPageSize()
+ * @method $this withPageSize($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ * @method string getExpiredStartDay()
+ * @method $this withExpiredStartDay($value)
+ * @method string getTotalCount()
+ * @method $this withTotalCount($value)
+ * @method string getCurrentPage()
+ * @method $this withCurrentPage($value)
+ * @method string getDeviceId()
+ * @method $this withDeviceId($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getExpiredEndDay()
+ * @method $this withExpiredEndDay($value)
+ */
+class DescribeDeviceInfo extends Rpc
+{
+}
+
+/**
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class DescribeFaceConfig extends Rpc
+{
+}
+
+/**
+ * @method string getStartDate()
+ * @method $this withStartDate($value)
+ * @method string getEndDate()
+ * @method $this withEndDate($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ */
+class DescribeFaceUsage extends Rpc
+{
+}
+
+/**
+ * @method string getCertifyId()
+ * @method $this withCertifyId($value)
+ * @method string getPictureReturnType()
+ * @method $this withPictureReturnType($value)
+ * @method string getSceneId()
+ * @method $this withSceneId($value)
+ */
+class DescribeFaceVerify extends Rpc
+{
+}
+
+/**
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ */
+class DescribeOssUploadToken extends Rpc
+{
+}
+
+/**
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ * @method string getTaskId()
+ * @method $this withTaskId($value)
+ */
+class DescribeRPSDK extends Rpc
+{
+}
+
+/**
+ * @method string getDebug()
+ * @method $this withDebug($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getId()
+ * @method $this withId($value)
+ */
+class DescribeSdkUrl extends Rpc
+{
+}
+
+/**
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getTaskId()
+ * @method $this withTaskId($value)
+ */
+class DescribeUpdatePackageResult extends Rpc
+{
+}
+
+/**
+ * @method string getBiz()
+ * @method $this withBiz($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ */
+class DescribeUploadInfo extends Rpc
+{
+}
+
+/**
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ */
+class DescribeUserStatus extends Rpc
+{
+}
+
+/**
+ * @method string getStatusList()
+ * @method $this withStatusList($value)
+ * @method string getStartDate()
+ * @method $this withStartDate($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getPageSize()
+ * @method $this withPageSize($value)
+ * @method string getTotalCount()
+ * @method $this withTotalCount($value)
+ * @method string getCurrentPage()
+ * @method $this withCurrentPage($value)
+ * @method string getQueryId()
+ * @method $this withQueryId($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getIdCardNum()
+ * @method $this withIdCardNum($value)
+ * @method string getEndDate()
+ * @method $this withEndDate($value)
+ * @method string getBizId()
+ * @method $this withBizId($value)
+ */
+class DescribeVerifyRecords extends Rpc
+{
+}
+
+/**
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getBizId()
+ * @method $this withBizId($value)
+ */
+class DescribeVerifyResult extends Rpc
+{
+}
+
+/**
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ * @method string getTaskId()
+ * @method $this withTaskId($value)
+ */
+class DescribeVerifySDK extends Rpc
+{
+}
+
+/**
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ */
+class DescribeVerifySetting extends Rpc
+{
+}
+
+/**
+ * @method string getFaceRetainedImageUrl()
+ * @method $this withFaceRetainedImageUrl($value)
+ * @method string getUserId()
+ * @method $this withUserId($value)
+ * @method string getCallbackSeed()
+ * @method $this withCallbackSeed($value)
+ * @method string getUserIp()
+ * @method $this withUserIp($value)
+ * @method string getIdCardBackImageUrl()
+ * @method $this withIdCardBackImageUrl($value)
+ * @method string getIdCardNumber()
+ * @method $this withIdCardNumber($value)
+ * @method string getIdCardFrontImageUrl()
+ * @method $this withIdCardFrontImageUrl($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getPassedRedirectUrl()
+ * @method $this withPassedRedirectUrl($value)
+ * @method string getUserRegistTime()
+ * @method $this withUserRegistTime($value)
+ * @method string getBizId()
+ * @method $this withBizId($value)
+ * @method string getName()
+ * @method $this withName($value)
+ * @method string getUserPhoneNumber()
+ * @method $this withUserPhoneNumber($value)
+ * @method string getCallbackUrl()
+ * @method $this withCallbackUrl($value)
+ * @method string getFailedRedirectUrl()
+ * @method $this withFailedRedirectUrl($value)
+ */
+class DescribeVerifyToken extends Rpc
+{
+}
+
+/**
+ * @method string getStartDate()
+ * @method $this withStartDate($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getEndDate()
+ * @method $this withEndDate($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ */
+class DescribeVerifyUsage extends Rpc
+{
+}
+
+/**
+ * @method string getValidEndDate()
+ * @method $this withValidEndDate($value)
+ * @method string getValid()
+ * @method $this withValid($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getPageSize()
+ * @method $this withPageSize($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ * @method string getCurrentPage()
+ * @method $this withCurrentPage($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getIdCardNum()
+ * @method $this withIdCardNum($value)
+ * @method string getBizId()
+ * @method $this withBizId($value)
+ * @method string getValidStartDate()
+ * @method $this withValidStartDate($value)
+ */
+class DescribeWhitelist extends Rpc
+{
+}
+
+/**
+ * @method string getBizType()
+ * @method string getMaterialValue()
+ */
+class DetectFaceAttributes extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withBizType($value)
+    {
+        $this->data['BizType'] = $value;
+        $this->options['form_params']['BizType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMaterialValue($value)
+    {
+        $this->data['MaterialValue'] = $value;
+        $this->options['form_params']['MaterialValue'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getChannel()
+ * @method $this withChannel($value)
+ * @method string getBizData()
+ * @method $this withBizData($value)
+ * @method string getMerchant()
+ * @method $this withMerchant($value)
+ * @method string getAppVersion()
+ * @method $this withAppVersion($value)
+ * @method string getDeviceToken()
+ * @method $this withDeviceToken($value)
+ * @method string getCertifyId()
+ * @method $this withCertifyId($value)
+ * @method string getWebUmidToken()
+ * @method string getOuterOrderNo()
+ * @method $this withOuterOrderNo($value)
+ * @method string getProduceNode()
+ * @method $this withProduceNode($value)
+ * @method string getUaToken()
+ * @method string getProductName()
+ * @method $this withProductName($value)
+ * @method string getCertifyPrincipal()
+ * @method $this withCertifyPrincipal($value)
+ * @method string getMetaInfo()
+ * @method $this withMetaInfo($value)
+ */
+class InitDevice extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withWebUmidToken($value)
+    {
+        $this->data['WebUmidToken'] = $value;
+        $this->options['form_params']['WebUmidToken'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withUaToken($value)
+    {
+        $this->data['UaToken'] = $value;
+        $this->options['form_params']['UaToken'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getProductCode()
+ * @method $this withProductCode($value)
+ * @method string getFaceContrastPicture()
+ * @method string getUserId()
+ * @method $this withUserId($value)
+ * @method string getCertifyId()
+ * @method $this withCertifyId($value)
+ * @method string getCertNo()
+ * @method $this withCertNo($value)
+ * @method string getOuterOrderNo()
+ * @method $this withOuterOrderNo($value)
+ * @method string getCertType()
+ * @method $this withCertType($value)
+ * @method string getFaceContrastPictureUrl()
+ * @method $this withFaceContrastPictureUrl($value)
+ * @method string getModel()
+ * @method string getMetaInfo()
+ * @method $this withMetaInfo($value)
+ * @method string getOssObjectName()
+ * @method $this withOssObjectName($value)
+ * @method string getCertName()
+ * @method $this withCertName($value)
+ * @method string getIp()
+ * @method $this withIp($value)
+ * @method string getMobile()
+ * @method $this withMobile($value)
+ * @method string getSceneId()
+ * @method $this withSceneId($value)
+ * @method string getOssBucketName()
+ * @method $this withOssBucketName($value)
+ * @method string getCallbackToken()
+ * @method $this withCallbackToken($value)
+ * @method string getReturnUrl()
+ * @method $this withReturnUrl($value)
+ * @method string getCallbackUrl()
+ * @method $this withCallbackUrl($value)
+ */
+class InitFaceVerify extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFaceContrastPicture($value)
+    {
+        $this->data['FaceContrastPicture'] = $value;
+        $this->options['form_params']['FaceContrastPicture'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withModel($value)
+    {
+        $this->data['Model'] = $value;
+        $this->options['form_params']['Model'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getProductCode()
+ * @method string getOssObjectName()
+ * @method string getFaceContrastPicture()
+ * @method string getIp()
+ * @method string getMobile()
+ * @method string getDeviceToken()
+ * @method string getUserId()
+ * @method string getCertifyId()
+ * @method string getOuterOrderNo()
+ * @method string getFaceContrastPictureUrl()
+ * @method string getSceneId()
+ * @method string getOssBucketName()
+ * @method string getModel()
+ * @method $this withModel($value)
+ */
+class LivenessFaceVerify extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withProductCode($value)
+    {
+        $this->data['ProductCode'] = $value;
+        $this->options['form_params']['ProductCode'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOssObjectName($value)
+    {
+        $this->data['OssObjectName'] = $value;
+        $this->options['form_params']['OssObjectName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFaceContrastPicture($value)
+    {
+        $this->data['FaceContrastPicture'] = $value;
+        $this->options['form_params']['FaceContrastPicture'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withIp($value)
+    {
+        $this->data['Ip'] = $value;
+        $this->options['form_params']['Ip'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMobile($value)
+    {
+        $this->data['Mobile'] = $value;
+        $this->options['form_params']['Mobile'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withDeviceToken($value)
+    {
+        $this->data['DeviceToken'] = $value;
+        $this->options['form_params']['DeviceToken'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withUserId($value)
+    {
+        $this->data['UserId'] = $value;
+        $this->options['form_params']['UserId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertifyId($value)
+    {
+        $this->data['CertifyId'] = $value;
+        $this->options['form_params']['CertifyId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOuterOrderNo($value)
+    {
+        $this->data['OuterOrderNo'] = $value;
+        $this->options['form_params']['OuterOrderNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFaceContrastPictureUrl($value)
+    {
+        $this->data['FaceContrastPictureUrl'] = $value;
+        $this->options['form_params']['FaceContrastPictureUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSceneId($value)
+    {
+        $this->data['SceneId'] = $value;
+        $this->options['form_params']['SceneId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOssBucketName($value)
+    {
+        $this->data['OssBucketName'] = $value;
+        $this->options['form_params']['OssBucketName'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getUserDeviceId()
+ * @method $this withUserDeviceId($value)
+ * @method string getDuration()
+ * @method $this withDuration($value)
+ * @method string getExpiredDay()
+ * @method $this withExpiredDay($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ * @method string getDeviceId()
+ * @method $this withDeviceId($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ */
+class ModifyDeviceInfo extends Rpc
+{
+}
+
+/**
+ * @method string getDebug()
+ * @method $this withDebug($value)
+ * @method string getPlatform()
+ * @method $this withPlatform($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getPackageUrl()
+ * @method $this withPackageUrl($value)
+ * @method string getId()
+ * @method $this withId($value)
+ */
+class UpdateAppPackage extends Rpc
+{
+}
+
+/**
+ * @method string getBizName()
+ * @method $this withBizName($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getLang()
+ * @method $this withLang($value)
+ */
+class UpdateFaceConfig extends Rpc
+{
+}
+
+/**
+ * @method string getGuideStep()
+ * @method $this withGuideStep($value)
+ * @method string getResultStep()
+ * @method $this withResultStep($value)
+ * @method string getSourceIp()
+ * @method $this withSourceIp($value)
+ * @method string getSolution()
+ * @method $this withSolution($value)
+ * @method string getBizName()
+ * @method $this withBizName($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getPrivacyStep()
+ * @method $this withPrivacyStep($value)
+ */
+class UpdateVerifySetting extends Rpc
+{
+}
+
+/**
+ * @method string getExtInfo()
+ * @method string getCertifyData()
+ * @method $this withCertifyData($value)
+ * @method string getAppVersion()
+ * @method $this withAppVersion($value)
+ * @method string getDeviceToken()
+ * @method string getCertifyId()
+ * @method $this withCertifyId($value)
+ */
+class VerifyDevice extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withExtInfo($value)
+    {
+        $this->data['ExtInfo'] = $value;
+        $this->options['form_params']['ExtInfo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withDeviceToken($value)
+    {
+        $this->data['DeviceToken'] = $value;
+        $this->options['form_params']['DeviceToken'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getFaceImageUrl()
+ * @method $this withFaceImageUrl($value)
+ * @method string getUserId()
+ * @method $this withUserId($value)
+ * @method string getIdCardBackImageUrl()
+ * @method $this withIdCardBackImageUrl($value)
+ * @method string getIdCardNumber()
+ * @method $this withIdCardNumber($value)
+ * @method string getIdCardFrontImageUrl()
+ * @method $this withIdCardFrontImageUrl($value)
+ * @method string getBizType()
+ * @method $this withBizType($value)
+ * @method string getBizId()
+ * @method $this withBizId($value)
+ * @method string getName()
+ * @method $this withName($value)
+ */
+class VerifyMaterial extends Rpc
+{
+}

+ 803 - 0
vendor/alibabacloud/cloudauth/V20200618/CloudauthApiResolver.php

@@ -0,0 +1,803 @@
+<?php
+
+namespace AlibabaCloud\Cloudauth\V20200618;
+
+use AlibabaCloud\Client\Resolver\ApiResolver;
+
+/**
+ * @method ContrastSmartVerify contrastSmartVerify(array $options = [])
+ * @method DescribeSmartVerify describeSmartVerify(array $options = [])
+ * @method ElementSmartVerify elementSmartVerify(array $options = [])
+ * @method InitSmartVerify initSmartVerify(array $options = [])
+ * @method VerifyBankElement verifyBankElement(array $options = [])
+ */
+class CloudauthApiResolver extends ApiResolver
+{
+}
+
+class Rpc extends \AlibabaCloud\Client\Resolver\Rpc
+{
+    /** @var string */
+    public $product = 'Cloudauth';
+
+    /** @var string */
+    public $version = '2020-06-18';
+
+    /** @var string */
+    public $method = 'POST';
+
+    /** @var string */
+    public $serviceCode = 'cloudauth';
+}
+
+/**
+ * @method string getFacePicFile()
+ * @method string getIp()
+ * @method string getCertName()
+ * @method string getFacePicString()
+ * @method string getMobile()
+ * @method string getUserId()
+ * @method string getMode()
+ * @method string getCertNo()
+ * @method string getOuterOrderNo()
+ * @method string getFacePicUrl()
+ * @method string getCertType()
+ * @method string getSceneId()
+ */
+class ContrastSmartVerify extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFacePicFile($value)
+    {
+        $this->data['FacePicFile'] = $value;
+        $this->options['form_params']['FacePicFile'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withIp($value)
+    {
+        $this->data['Ip'] = $value;
+        $this->options['form_params']['Ip'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertName($value)
+    {
+        $this->data['CertName'] = $value;
+        $this->options['form_params']['CertName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFacePicString($value)
+    {
+        $this->data['FacePicString'] = $value;
+        $this->options['form_params']['FacePicString'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMobile($value)
+    {
+        $this->data['Mobile'] = $value;
+        $this->options['form_params']['Mobile'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withUserId($value)
+    {
+        $this->data['UserId'] = $value;
+        $this->options['form_params']['UserId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMode($value)
+    {
+        $this->data['Mode'] = $value;
+        $this->options['form_params']['Mode'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertNo($value)
+    {
+        $this->data['CertNo'] = $value;
+        $this->options['form_params']['CertNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOuterOrderNo($value)
+    {
+        $this->data['OuterOrderNo'] = $value;
+        $this->options['form_params']['OuterOrderNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFacePicUrl($value)
+    {
+        $this->data['FacePicUrl'] = $value;
+        $this->options['form_params']['FacePicUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertType($value)
+    {
+        $this->data['CertType'] = $value;
+        $this->options['form_params']['CertType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSceneId($value)
+    {
+        $this->data['SceneId'] = $value;
+        $this->options['form_params']['SceneId'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getCertifyId()
+ * @method string getPictureReturnType()
+ * @method string getSceneId()
+ */
+class DescribeSmartVerify extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertifyId($value)
+    {
+        $this->data['CertifyId'] = $value;
+        $this->options['form_params']['CertifyId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withPictureReturnType($value)
+    {
+        $this->data['PictureReturnType'] = $value;
+        $this->options['form_params']['PictureReturnType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSceneId($value)
+    {
+        $this->data['SceneId'] = $value;
+        $this->options['form_params']['SceneId'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getCertFile()
+ * @method string getCertNationalEmblemUrl()
+ * @method string getCertName()
+ * @method string getMode()
+ * @method string getCertNo()
+ * @method string getOuterOrderNo()
+ * @method string getCertUrl()
+ * @method string getCertType()
+ * @method string getSceneId()
+ */
+class ElementSmartVerify extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertFile($value)
+    {
+        $this->data['CertFile'] = $value;
+        $this->options['form_params']['CertFile'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertNationalEmblemUrl($value)
+    {
+        $this->data['CertNationalEmblemUrl'] = $value;
+        $this->options['form_params']['CertNationalEmblemUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertName($value)
+    {
+        $this->data['CertName'] = $value;
+        $this->options['form_params']['CertName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMode($value)
+    {
+        $this->data['Mode'] = $value;
+        $this->options['form_params']['Mode'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertNo($value)
+    {
+        $this->data['CertNo'] = $value;
+        $this->options['form_params']['CertNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOuterOrderNo($value)
+    {
+        $this->data['OuterOrderNo'] = $value;
+        $this->options['form_params']['OuterOrderNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertUrl($value)
+    {
+        $this->data['CertUrl'] = $value;
+        $this->options['form_params']['CertUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertType($value)
+    {
+        $this->data['CertType'] = $value;
+        $this->options['form_params']['CertType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSceneId($value)
+    {
+        $this->data['SceneId'] = $value;
+        $this->options['form_params']['SceneId'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getIdName()
+ * @method string getUserId()
+ * @method string getCertifyId()
+ * @method string getFacePictureBase64()
+ * @method string getMode()
+ * @method string getCertNo()
+ * @method string getOuterOrderNo()
+ * @method string getCertType()
+ * @method string getMetaInfo()
+ * @method string getOcr()
+ * @method string getOssObjectName()
+ * @method string getFacePictureUrl()
+ * @method string getIp()
+ * @method string getCertName()
+ * @method string getMobile()
+ * @method string getIdNo()
+ * @method string getSceneId()
+ * @method string getCallbackToken()
+ * @method string getOssBucketName()
+ * @method string getCallbackUrl()
+ */
+class InitSmartVerify extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withIdName($value)
+    {
+        $this->data['IdName'] = $value;
+        $this->options['form_params']['IdName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withUserId($value)
+    {
+        $this->data['UserId'] = $value;
+        $this->options['form_params']['UserId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertifyId($value)
+    {
+        $this->data['CertifyId'] = $value;
+        $this->options['form_params']['CertifyId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFacePictureBase64($value)
+    {
+        $this->data['FacePictureBase64'] = $value;
+        $this->options['form_params']['FacePictureBase64'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMode($value)
+    {
+        $this->data['Mode'] = $value;
+        $this->options['form_params']['Mode'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertNo($value)
+    {
+        $this->data['CertNo'] = $value;
+        $this->options['form_params']['CertNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOuterOrderNo($value)
+    {
+        $this->data['OuterOrderNo'] = $value;
+        $this->options['form_params']['OuterOrderNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertType($value)
+    {
+        $this->data['CertType'] = $value;
+        $this->options['form_params']['CertType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMetaInfo($value)
+    {
+        $this->data['MetaInfo'] = $value;
+        $this->options['form_params']['MetaInfo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOcr($value)
+    {
+        $this->data['Ocr'] = $value;
+        $this->options['form_params']['Ocr'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOssObjectName($value)
+    {
+        $this->data['OssObjectName'] = $value;
+        $this->options['form_params']['OssObjectName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withFacePictureUrl($value)
+    {
+        $this->data['FacePictureUrl'] = $value;
+        $this->options['form_params']['FacePictureUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withIp($value)
+    {
+        $this->data['Ip'] = $value;
+        $this->options['form_params']['Ip'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCertName($value)
+    {
+        $this->data['CertName'] = $value;
+        $this->options['form_params']['CertName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMobile($value)
+    {
+        $this->data['Mobile'] = $value;
+        $this->options['form_params']['Mobile'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withIdNo($value)
+    {
+        $this->data['IdNo'] = $value;
+        $this->options['form_params']['IdNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSceneId($value)
+    {
+        $this->data['SceneId'] = $value;
+        $this->options['form_params']['SceneId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCallbackToken($value)
+    {
+        $this->data['CallbackToken'] = $value;
+        $this->options['form_params']['CallbackToken'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOssBucketName($value)
+    {
+        $this->data['OssBucketName'] = $value;
+        $this->options['form_params']['OssBucketName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withCallbackUrl($value)
+    {
+        $this->data['CallbackUrl'] = $value;
+        $this->options['form_params']['CallbackUrl'] = $value;
+
+        return $this;
+    }
+}
+
+/**
+ * @method string getIdName()
+ * @method string getMobile()
+ * @method string getBankCardUrl()
+ * @method string getIdNo()
+ * @method string getBankCardNo()
+ * @method string getMode()
+ * @method string getOuterOrderNo()
+ * @method string getBankCardFile()
+ * @method string getSceneId()
+ */
+class VerifyBankElement extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withIdName($value)
+    {
+        $this->data['IdName'] = $value;
+        $this->options['form_params']['IdName'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMobile($value)
+    {
+        $this->data['Mobile'] = $value;
+        $this->options['form_params']['Mobile'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withBankCardUrl($value)
+    {
+        $this->data['BankCardUrl'] = $value;
+        $this->options['form_params']['BankCardUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withIdNo($value)
+    {
+        $this->data['IdNo'] = $value;
+        $this->options['form_params']['IdNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withBankCardNo($value)
+    {
+        $this->data['BankCardNo'] = $value;
+        $this->options['form_params']['BankCardNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMode($value)
+    {
+        $this->data['Mode'] = $value;
+        $this->options['form_params']['Mode'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withOuterOrderNo($value)
+    {
+        $this->data['OuterOrderNo'] = $value;
+        $this->options['form_params']['OuterOrderNo'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withBankCardFile($value)
+    {
+        $this->data['BankCardFile'] = $value;
+        $this->options['form_params']['BankCardFile'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withSceneId($value)
+    {
+        $this->data['SceneId'] = $value;
+        $this->options['form_params']['SceneId'] = $value;
+
+        return $this;
+    }
+}

+ 103 - 0
vendor/alibabacloud/cloudauth/V20201112/CloudauthApiResolver.php

@@ -0,0 +1,103 @@
+<?php
+
+namespace AlibabaCloud\Cloudauth\V20201112;
+
+use AlibabaCloud\Client\Resolver\ApiResolver;
+
+/**
+ * @method LivenessDetect livenessDetect(array $options = [])
+ */
+class CloudauthApiResolver extends ApiResolver
+{
+}
+
+class Rpc extends \AlibabaCloud\Client\Resolver\Rpc
+{
+    /** @var string */
+    public $product = 'Cloudauth';
+
+    /** @var string */
+    public $version = '2020-11-12';
+
+    /** @var string */
+    public $method = 'POST';
+
+    /** @var string */
+    public $serviceCode = 'cloudauth';
+}
+
+/**
+ * @method string getMediaCategory()
+ * @method string getMediaUrl()
+ * @method string getBizType()
+ * @method string getBizId()
+ * @method string getMediaFile()
+ */
+class LivenessDetect extends Rpc
+{
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMediaCategory($value)
+    {
+        $this->data['MediaCategory'] = $value;
+        $this->options['form_params']['MediaCategory'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMediaUrl($value)
+    {
+        $this->data['MediaUrl'] = $value;
+        $this->options['form_params']['MediaUrl'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withBizType($value)
+    {
+        $this->data['BizType'] = $value;
+        $this->options['form_params']['BizType'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withBizId($value)
+    {
+        $this->data['BizId'] = $value;
+        $this->options['form_params']['BizId'] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function withMediaFile($value)
+    {
+        $this->data['MediaFile'] = $value;
+        $this->options['form_params']['MediaFile'] = $value;
+
+        return $this;
+    }
+}

+ 43 - 0
vendor/alibabacloud/cloudauth/composer.json

@@ -0,0 +1,43 @@
+{
+    "name": "alibabacloud/cloudauth",
+    "homepage": "https://www.alibabacloud.com/",
+    "description": "Alibaba Cloud Cloudauth SDK for PHP",
+    "keywords": [
+        "cloudauth",
+        "sdk",
+        "cloud",
+        "aliyun",
+        "alibaba",
+        "library",
+        "alibabacloud"
+    ],
+    "type": "library",
+    "license": "Apache-2.0",
+    "support": {
+        "source": "https://github.com/alibabacloud-sdk-php/cloudauth",
+        "issues": "https://github.com/alibabacloud-sdk-php/cloudauth/issues"
+    },
+    "authors": [
+        {
+            "name": "Alibaba Cloud SDK",
+            "email": "sdk-team@alibabacloud.com",
+            "homepage": "http://www.alibabacloud.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.5",
+        "alibabacloud/client": "^1.5"
+    },
+    "autoload": {
+        "psr-4": {
+            "AlibabaCloud\\Cloudauth\\": ""
+        }
+    },
+    "config": {
+        "sort-packages": true,
+        "preferred-install": "dist",
+        "optimize-autoloader": true
+    },
+    "prefer-stable": true,
+    "minimum-stability": "dev"
+}

+ 1 - 0
vendor/alibabacloud/cloudauth/endpoints.json

@@ -0,0 +1 @@
+{"endpoint_map":{},"endpoint_regional":"central","standard":{"cn-hangzhou":"cloudauth.aliyuncs.com","ap-northeast-1":"cloudauth.aliyuncs.com","ap-south-1":"cloudauth.aliyuncs.com","ap-southeast-1":"cloudauth.aliyuncs.com","ap-southeast-2":"cloudauth.aliyuncs.com","ap-southeast-3":"cloudauth.aliyuncs.com","ap-southeast-5":"cloudauth.aliyuncs.com","cn-beijing":"cloudauth.aliyuncs.com","cn-chengdu":"cloudauth.aliyuncs.com","cn-hongkong":"cloudauth.aliyuncs.com","cn-huhehaote":"cloudauth.aliyuncs.com","cn-qingdao":"cloudauth.aliyuncs.com","cn-shanghai":"cloudauth.aliyuncs.com","cn-shenzhen":"cloudauth.aliyuncs.com","cn-zhangjiakou":"cloudauth.aliyuncs.com","eu-central-1":"cloudauth.aliyuncs.com","eu-west-1":"cloudauth.aliyuncs.com","me-east-1":"cloudauth.aliyuncs.com","us-east-1":"cloudauth.aliyuncs.com","us-west-1":"cloudauth.aliyuncs.com","cn-hangzhou-finance":"cloudauth.aliyuncs.com","cn-shenzhen-finance-1":"cloudauth.aliyuncs.com","cn-shanghai-finance-1":"cloudauth.aliyuncs.com","cn-north-2-gov-1":"cloudauth.aliyuncs.com"},"regions":["cn-hangzhou","ap-northeast-1","ap-south-1","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-5","cn-beijing","cn-chengdu","cn-hongkong","cn-huhehaote","cn-qingdao","cn-shanghai","cn-shenzhen","cn-zhangjiakou","eu-central-1","eu-west-1","me-east-1","us-east-1","us-west-1","cn-hangzhou-finance","cn-shenzhen-finance-1","cn-shanghai-finance-1","cn-north-2-gov-1"],"endpoint_health":[]}

+ 14 - 0
vendor/alibabacloud/credentials/CHANGELOG.md

@@ -0,0 +1,14 @@
+# CHANGELOG
+
+## 1.1.3 - 2020-12-24
+
+- Require guzzle ^6.3|^7.0
+
+## 1.0.2 - 2020-02-14
+- Update Tea.
+
+## 1.0.1 - 2019-12-30
+- Supported get `Role Name` automatically.
+
+## 1.0.0 - 2019-09-01
+- Initial release of the Alibaba Cloud Credentials for PHP Version 1.0.0 on Packagist See <https://github.com/aliyun/credentials-php> for more information.

+ 30 - 0
vendor/alibabacloud/credentials/CONTRIBUTING.md

@@ -0,0 +1,30 @@
+# CONTRIBUTING
+
+We work hard to provide a high-quality and useful SDK for Alibaba Cloud, and
+we greatly value feedback and contributions from our community. Please submit
+your [issues][issues] or [pull requests][pull-requests] through GitHub.
+
+## Tips
+
+- The SDK is released under the [Apache license][license]. Any code you submit
+   will be released under that license. For substantial contributions, we may
+   ask you to sign a [Alibaba Documentation Corporate Contributor License 
+   Agreement (CLA)][cla].
+- We follow all of the relevant PSR recommendations from the [PHP Framework
+   Interop Group][php-fig]. Please submit code that follows these standards.
+   The [PHP CS Fixer][cs-fixer] tool can be helpful for formatting your code.
+   Your can use `composer fixer` to fix code.
+- We maintain a high percentage of code coverage in our unit tests. If you make
+   changes to the code, please add, update, and/or remove tests as appropriate.
+- If your code does not conform to the PSR standards, does not include adequate
+   tests, or does not contain a changelog document, we may ask you to update
+   your pull requests before we accept them. We also reserve the right to deny
+   any pull requests that do not align with our standards or goals.
+
+[issues]: https://github.com/aliyun/credentials-php/issues
+[pull-requests]: https://github.com/aliyun/credentials-php/pulls
+[license]: http://www.apache.org/licenses/LICENSE-2.0
+[cla]: https://alibaba-cla-2018.oss-cn-beijing.aliyuncs.com/Alibaba_Documentation_Open_Source_Corporate_CLA.pdf
+[php-fig]: http://php-fig.org
+[cs-fixer]: http://cs.sensiolabs.org/
+[docs-readme]: https://github.com/aliyun/credentials-php/blob/master/README.md

+ 13 - 0
vendor/alibabacloud/credentials/LICENSE.md

@@ -0,0 +1,13 @@
+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.

+ 88 - 0
vendor/alibabacloud/credentials/NOTICE.md

@@ -0,0 +1,88 @@
+# NOTICE
+
+<https://www.alibabacloud.com/>
+
+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.
+A copy of the License is located at
+
+<http://www.apache.org/licenses/LICENSE-2.0>
+
+or in the "license" file accompanying this file. This file 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.
+
+# Guzzle
+
+<https://github.com/guzzle/guzzle>
+
+Copyright (c) 2011-2018 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+# jmespath.php
+
+<https://github.com/mtdowling/jmespath.php>
+
+Copyright (c) 2014 Michael Dowling, https://github.com/mtdowling
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+# Dot
+
+<https://github.com/adbario/php-dot-notation>
+
+Copyright (c) 2016-2019 Riku Särkinen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 250 - 0
vendor/alibabacloud/credentials/README-zh-CN.md

@@ -0,0 +1,250 @@
+[English](/README.md) | 简体中文
+
+
+# Alibaba Cloud Credentials for PHP
+[![Latest Stable Version](https://poser.pugx.org/alibabacloud/credentials/v/stable)](https://packagist.org/packages/alibabacloud/credentials)
+[![composer.lock](https://poser.pugx.org/alibabacloud/credentials/composerlock)](https://packagist.org/packages/alibabacloud/credentials)
+[![Total Downloads](https://poser.pugx.org/alibabacloud/credentials/downloads)](https://packagist.org/packages/alibabacloud/credentials)
+[![License](https://poser.pugx.org/alibabacloud/credentials/license)](https://packagist.org/packages/alibabacloud/credentials)
+[![codecov](https://codecov.io/gh/aliyun/credentials-php/branch/master/graph/badge.svg)](https://codecov.io/gh/aliyun/credentials-php)
+[![Travis Build Status](https://travis-ci.org/aliyun/credentials-php.svg?branch=master)](https://travis-ci.org/aliyun/credentials-php)
+[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/6jxpwmhyfipagtge/branch/master?svg=true)](https://ci.appveyor.com/project/aliyun/credentials-php)
+
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+
+Alibaba Cloud Credentials for PHP 是帮助 PHP 开发者管理凭据的工具。
+
+
+## 先决条件
+您的系统需要满足[先决条件](/docs/zh-CN/0-Prerequisites.md),包括 PHP> = 5.6。 我们强烈建议使用cURL扩展,并使用TLS后端编译cURL 7.16.2+。
+
+
+## 安装依赖
+如果已在系统上[全局安装 Composer](https://getcomposer.org/doc/00-intro.md#globally),请直接在项目目录中运行以下内容来安装 Alibaba Cloud Credentials for PHP 作为依赖项:
+```
+composer require alibabacloud/credentials
+```
+> 一些用户可能由于网络问题无法安装,可以使用[阿里云 Composer 全量镜像](https://developer.aliyun.com/composer)。
+
+请看[安装](/docs/zh-CN/1-Installation.md)有关通过 Composer 和其他方式安装的详细信息。
+
+
+## 快速使用
+在您开始之前,您需要注册阿里云帐户并获取您的[凭证](https://usercenter.console.aliyun.com/#/manage/ak)。
+
+### 凭证类型
+
+#### AccessKey
+
+通过[用户信息管理][ak]设置 access_key,它们具有该账户完全的权限,请妥善保管。有时出于安全考虑,您不能把具有完全访问权限的主账户 AccessKey 交于一个项目的开发者使用,您可以[创建RAM子账户][ram]并为子账户[授权][permissions],使用RAM子用户的 AccessKey 来进行API调用。
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+// Chain Provider if no Parameter
+$credential = new Credential();
+$credential->getAccessKeyId();
+$credential->getAccessKeySecret();
+
+// Access Key
+$ak = new Credential([
+    'type'              => 'access_key',
+    'access_key_id'     => '<access_key_id>',
+    'access_key_secret' => '<access_key_secret>',
+]);
+$ak->getAccessKeyId();
+$ak->getAccessKeySecret();
+```
+
+#### STS
+
+通过安全令牌服务(Security Token Service,简称 STS),申请临时安全凭证(Temporary Security Credentials,简称 TSC),创建临时安全凭证。
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$sts = new Credential([
+    'type'             => 'sts',
+    'access_key_id'    => '<access_key_id>',
+    'accessKey_secret' => '<accessKey_secret>',
+    'security_token'   => '<security_token>',
+]);
+$sts->getAccessKeyId();
+$sts->getAccessKeySecret();
+$sts->getSecurityToken();
+```
+
+#### RamRoleArn
+
+通过指定[RAM角色][RAM Role],让凭证自动申请维护 STS Token。你可以通过为 `Policy` 赋值来限制获取到的 STS Token 的权限。
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$ramRoleArn = new Credential([
+    'type'              => 'ram_role_arn',
+    'access_key_id'     => '<access_key_id>',
+    'access_key_secret' => '<access_key_secret>',
+    'role_arn'          => '<role_arn>',
+    'role_session_name' => '<role_session_name>',
+    'policy'            => '',
+]);
+$ramRoleArn->getAccessKeyId();
+$ramRoleArn->getAccessKeySecret();
+$ramRoleArn->getRoleArn();
+$ramRoleArn->getRoleSessionName();
+$ramRoleArn->getPolicy();
+```
+
+#### EcsRamRole
+
+通过指定角色名称,让凭证自动申请维护 STS Token
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$ecsRamRole = new Credential([
+    'type'      => 'ecs_ram_role',
+    'role_name' => '<role_name>',
+]);
+$ecsRamRole->getRoleName();
+// Note: `role_name` is optional. It will be retrieved automatically if not set. It is highly recommended to set it up to reduce requests.
+```
+
+#### RsaKeyPair
+
+通过指定公钥Id和私钥文件,让凭证自动申请维护 AccessKey。仅支持日本站。
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$rsaKeyPair = new Credential([
+    'type'             => 'rsa_key_pair',
+    'public_key_id'    => '<public_key_id>',
+    'private_key_file' => '<private_key_file>',
+]);
+$rsaKeyPair->getPublicKeyId();
+$rsaKeyPair->getPrivateKey();
+```
+
+#### Bearer Token
+
+如呼叫中心(CCC)需用此凭证,请自行申请维护 Bearer Token。
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$bearerToken = new Credential([
+    'type'         => 'bearer_token',
+    'bearer_token' => '<bearer_token>',
+]);
+$bearerToken->getBearerToken();
+$bearerToken->getSignature();
+```
+
+## 默认凭证提供程序链
+默认凭证提供程序链查找可用的凭证,寻找顺序如下:
+
+### 1. 环境凭证
+程序首先会在环境变量里寻找环境凭证,如果定义了 `ALIBABA_CLOUD_ACCESS_KEY_ID`  和 `ALIBABA_CLOUD_ACCESS_KEY_SECRET` 环境变量且不为空,程序将使用他们创建默认凭证。
+
+### 2. 配置文件
+> 如果用户主目录存在默认文件 `~/.alibabacloud/credentials` (Windows 为 `C:\Users\USER_NAME\.alibabacloud\credentials`),程序会自动创建指定类型和名称的凭证。默认文件可以不存在,但解析错误会抛出异常。  凭证名称不分大小写,若凭证同名,后者会覆盖前者。不同的项目、工具之间可以共用这个配置文件,因为超出项目之外,也不会被意外提交到版本控制。Windows 上可以使用环境变量引用到主目录 %UserProfile%。类 Unix 的系统可以使用环境变量 $HOME 或 ~ (tilde)。 可以通过定义 `ALIBABA_CLOUD_CREDENTIALS_FILE` 环境变量修改默认文件的路径。
+
+```ini
+[default]
+type = access_key                  # 认证方式为 access_key
+access_key_id = foo                # Key
+access_key_secret = bar            # Secret
+
+[project1]
+type = ecs_ram_role                # 认证方式为 ecs_ram_role
+role_name = EcsRamRoleTest         # Role Name,非必填,不填则自动获取,建议设置,可以减少网络请求。
+
+[project2]
+type = ram_role_arn                # 认证方式为 ram_role_arn
+access_key_id = foo
+access_key_secret = bar
+role_arn = role_arn
+role_session_name = session_name
+
+[project3]
+type = rsa_key_pair                # 认证方式为 rsa_key_pair
+public_key_id = publicKeyId        # Public Key ID
+private_key_file = /your/pk.pem    # Private Key 文件
+```
+
+### 3. 实例 RAM 角色
+如果定义了环境变量 `ALIBABA_CLOUD_ECS_METADATA` 且不为空,程序会将该环境变量的值作为角色名称,请求 `http://100.100.100.200/latest/meta-data/ram/security-credentials/` 获取临时安全凭证作为默认凭证。
+
+### 自定义凭证提供程序链
+可通过自定义程序链代替默认程序链的寻找顺序,也可以自行编写闭包传入提供者。
+```php
+<?php
+
+use AlibabaCloud\Credentials\Providers\ChainProvider;
+
+ChainProvider::set(
+        ChainProvider::ini(),
+        ChainProvider::env(),
+        ChainProvider::instance()
+);
+```
+
+
+## 文档
+* [先决条件](/docs/zh-CN/0-Prerequisites.md)
+* [安装](/docs/zh-CN/1-Installation.md)
+
+
+## 问题
+[提交 Issue](https://github.com/aliyun/credentials-php/issues/new/choose),不符合指南的问题可能会立即关闭。
+
+
+## 发行说明
+每个版本的详细更改记录在[发行说明](/CHANGELOG.md)中。
+
+
+## 贡献
+提交 Pull Request 之前请阅读[贡献指南](/CONTRIBUTING.md)。
+
+
+## 相关
+* [OpenAPI 开发者门户][open-api]
+* [Packagist][packagist]
+* [Composer][composer]
+* [Guzzle中文文档][guzzle-docs]
+* [最新源码][latest-release]
+
+
+## 许可证
+[Apache-2.0](/LICENSE.md)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
+
+
+[open-api]: https://next.api.aliyun.com
+[latest-release]: https://github.com/aliyun/credentials-php
+[guzzle-docs]: https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html
+[composer]: https://getcomposer.org
+[packagist]: https://packagist.org/packages/alibabacloud/credentials
+[home]: https://home.console.aliyun.com
+[aliyun]: https://www.aliyun.com
+[cURL]: http://php.net/manual/zh/book.curl.php
+[OPCache]: http://php.net/manual/zh/book.opcache.php
+[xdebug]: http://xdebug.org
+[OpenSSL]: http://php.net/manual/zh/book.openssl.php

+ 251 - 0
vendor/alibabacloud/credentials/README.md

@@ -0,0 +1,251 @@
+English | [简体中文](/README-zh-CN.md)
+
+
+# Alibaba Cloud Credentials for PHP
+[![Latest Stable Version](https://poser.pugx.org/alibabacloud/credentials/v/stable)](https://packagist.org/packages/alibabacloud/credentials)
+[![composer.lock](https://poser.pugx.org/alibabacloud/credentials/composerlock)](https://packagist.org/packages/alibabacloud/credentials)
+[![Total Downloads](https://poser.pugx.org/alibabacloud/credentials/downloads)](https://packagist.org/packages/alibabacloud/credentials)
+[![License](https://poser.pugx.org/alibabacloud/credentials/license)](https://packagist.org/packages/alibabacloud/credentials)
+[![codecov](https://codecov.io/gh/aliyun/credentials-php/branch/master/graph/badge.svg)](https://codecov.io/gh/aliyun/credentials-php)
+[![Travis Build Status](https://travis-ci.org/aliyun/credentials-php.svg?branch=master)](https://travis-ci.org/aliyun/credentials-php)
+[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/6jxpwmhyfipagtge/branch/master?svg=true)](https://ci.appveyor.com/project/aliyun/credentials-php)
+
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+
+Alibaba Cloud Credentials for PHP is a tool that helps PHP developers manage their credentials.
+
+
+## Prerequisites
+Your system needs to meet [Prerequisites](/docs/zh-CN/0-Prerequisites.md), including PHP> = 5.6. We strongly recommend using the cURL extension and compiling cURL 7.16.2+ using the TLS backend.
+
+
+## Installation
+If you have [Globally Install Composer](https://getcomposer.org/doc/00-intro.md#globally) on your system, install Alibaba Cloud Credentials for PHP as a dependency by running the following directly in the project directory:
+```
+composer require alibabacloud/credentials
+```
+> Some users may not be able to install due to network problems, you can switch to the [Alibaba Cloud Composer Mirror](https://developer.aliyun.com/composer).
+
+See [Installation](/docs/zh-CN/1-Installation.md) for details on installing through Composer and other means.
+
+
+## Quick Examples
+Before you begin, you need to sign up for an Alibaba Cloud account and retrieve your [Credentials](https://usercenter.console.aliyun.com/#/manage/ak).
+
+### Credential Type
+
+#### AccessKey
+
+Setup access_key credential through [User Information Management][ak], it have full authority over the account, please keep it safe. Sometimes for security reasons, you cannot hand over a primary account AccessKey with full access to the developer of a project. You may create a sub-account [RAM Sub-account][ram] , grant its [authorization][permissions],and use the AccessKey of RAM Sub-account.
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+// Chain Provider if no Parameter
+$credential = new Credential();
+$credential->getAccessKeyId();
+$credential->getAccessKeySecret();
+
+// Access Key
+$ak = new Credential([
+    'type'              => 'access_key',
+    'access_key_id'     => '<access_key_id>',
+    'access_key_secret' => '<access_key_secret>',
+]);
+$ak->getAccessKeyId();
+$ak->getAccessKeySecret();
+```
+
+#### STS
+
+Create a temporary security credential by applying Temporary Security Credentials (TSC) through the Security Token Service (STS).
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$sts = new Credential([
+    'type'             => 'sts',
+    'access_key_id'    => '<access_key_id>',
+    'accessKey_secret' => '<accessKey_secret>',
+    'security_token'   => '<security_token>',
+]);
+$sts->getAccessKeyId();
+$sts->getAccessKeySecret();
+$sts->getSecurityToken();
+```
+
+#### RamRoleArn
+
+By specifying [RAM Role][RAM Role], the credential will be able to automatically request maintenance of STS Token. If you want to limit the permissions([How to make a policy][policy]) of STS Token, you can assign value for `Policy`.
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$ramRoleArn = new Credential([
+    'type'              => 'ram_role_arn',
+    'access_key_id'     => '<access_key_id>',
+    'access_key_secret' => '<access_key_secret>',
+    'role_arn'          => '<role_arn>',
+    'role_session_name' => '<role_session_name>',
+    'policy'            => '',
+]);
+$ramRoleArn->getAccessKeyId();
+$ramRoleArn->getAccessKeySecret();
+$ramRoleArn->getRoleArn();
+$ramRoleArn->getRoleSessionName();
+$ramRoleArn->getPolicy();
+```
+
+#### EcsRamRole
+
+By specifying the role name, the credential will be able to automatically request maintenance of STS Token.
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$ecsRamRole = new Credential([
+    'type'      => 'ecs_ram_role',
+    'role_name' => '<role_name>',
+]);
+$ecsRamRole->getRoleName();
+// Note: `role_name` is optional. It will be retrieved automatically if not set. It is highly recommended to set it up to reduce requests.
+```
+
+#### RsaKeyPair
+
+By specifying the public key Id and the private key file, the credential will be able to automatically request maintenance of the AccessKey before sending the request. Only Japan station is supported. 
+
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$rsaKeyPair = new Credential([
+    'type'             => 'rsa_key_pair',
+    'public_key_id'    => '<public_key_id>',
+    'private_key_file' => '<private_key_file>',
+]);
+$rsaKeyPair->getPublicKeyId();
+$rsaKeyPair->getPrivateKey();
+```
+
+#### Bearer Token
+
+If credential is required by the Cloud Call Centre (CCC), please apply for Bearer Token maintenance by yourself.
+
+```php
+<?php
+
+use AlibabaCloud\Credentials\Credential;
+
+$bearerToken = new Credential([
+    'type'         => 'bearer_token',
+    'bearer_token' => '<bearer_token>',
+]);
+$bearerToken->getBearerToken();
+$bearerToken->getSignature();
+```
+
+## Default credential provider chain
+The default credential provider chain looks for available credentials, looking in the following order:
+
+### 1. Environmental certificate
+The program first looks for environment credentials in the environment variable. If the `ALIBABA_CLOUD_ACCESS_KEY_ID` and `ALIBABA_CLOUD_ACCESS_KEY_SECRET` environment variables are defined and not empty, the program will use them to create default credentials.
+
+### 2. Configuration file
+> If the user's home directory has the default file `~/.alibabacloud/credentials` (Windows is `C:\Users\USER_NAME\.alibabacloud\credentials`), the program will automatically create credentials with the specified type and name. The default file may not exist, but parsing errors will throw an exception. The voucher name is not case sensitive. If the voucher has the same name, the latter will overwrite the former. This configuration file can be shared between different projects and tools, and it will not be accidentally submitted to version control because it is outside the project. Environment variables can be referenced to the home directory %UserProfile% on Windows. Unix-like systems can use the environment variable $HOME or ~ (tilde). The path to the default file can be modified by defining the `ALIBABA_CLOUD_CREDENTIALS_FILE` environment variable.
+
+```ini
+[default]
+type = access_key                  # Authentication method is access_key
+access_key_id = foo                # Key
+access_key_secret = bar            # Secret
+
+[project1]
+type = ecs_ram_role                # Authentication method is ecs_ram_role
+role_name = EcsRamRoleTest         # Role name, optional. It will be retrieved automatically if not set. It is highly recommended to set it up to reduce requests.
+
+[project2]
+type = ram_role_arn                # Authentication method is ram_role_arn
+access_key_id = foo
+access_key_secret = bar
+role_arn = role_arn
+role_session_name = session_name
+
+[project3]
+type = rsa_key_pair                # Authentication method is rsa_key_pair
+public_key_id = publicKeyId        # Public Key ID
+private_key_file = /your/pk.pem    # Private Key File
+```
+
+### 3. Instance RAM role
+If the environment variable `ALIBABA_CLOUD_ECS_METADATA` is defined and not empty, the program will take the value of the environment variable as the role name and request `http://100.100.100.200/latest/meta-data/ram/security-credentials/` to get the temporary Security credentials are used as default credentials.
+
+### Custom credential provider chain
+You can replace the default order of the program chain by customizing the program chain, or you can write the closure to the provider.
+```php
+<?php
+
+use AlibabaCloud\Credentials\Providers\ChainProvider;
+
+ChainProvider::set(
+        ChainProvider::ini(),
+        ChainProvider::env(),
+        ChainProvider::instance()
+);
+```
+
+
+## Documentation
+* [Prerequisites](/docs/zh-CN/0-Prerequisites.md)
+* [Installation](/docs/zh-CN/1-Installation.md)
+
+
+## Issue
+[Submit Issue](https://github.com/aliyun/credentials-php/issues/new/choose), Problems that do not meet the guidelines may close immediately.
+
+
+## Release notes
+Detailed changes for each version are recorded in the [Release Notes](/CHANGELOG.md).
+
+
+## Contribution
+Please read the [Contribution Guide](/CONTRIBUTING.md) before submitting a Pull Request.
+
+
+## Related
+* [OpenAPI Developer Portal][open-api]
+* [Packagist][packagist]
+* [Composer][composer]
+* [Guzzle Doc][guzzle-docs]
+* [Latest Release][latest-release]
+
+
+## License
+[Apache-2.0](/LICENSE.md)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
+
+
+[open-api]: https://next.api.aliyun.com
+[latest-release]: https://github.com/aliyun/credentials-php
+[guzzle-docs]: http://docs.guzzlephp.org/en/stable/request-options.html
+[composer]: https://getcomposer.org
+[packagist]: https://packagist.org/packages/alibabacloud/credentials
+[home]: https://home.console.aliyun.com
+[aliyun]: https://www.aliyun.com
+[cURL]: https://www.php.net/manual/en/book.curl.php
+[OPCache]: http://php.net/manual/en/book.opcache.php
+[xdebug]: http://xdebug.org
+[OpenSSL]: http://php.net/manual/en/book.openssl.php

+ 21 - 0
vendor/alibabacloud/credentials/SECURITY.md

@@ -0,0 +1,21 @@
+# Security Policy
+
+## Supported Versions
+
+Use this section to tell people about which versions of your project are
+currently being supported with security updates.
+
+| Version | Supported          |
+| ------- | ------------------ |
+| 5.1.x   | :white_check_mark: |
+| 5.0.x   | :x:                |
+| 4.0.x   | :white_check_mark: |
+| < 4.0   | :x:                |
+
+## Reporting a Vulnerability
+
+Use this section to tell people how to report a vulnerability.
+
+Tell them where to go, how often they can expect to get an update on a
+reported vulnerability, what to expect if the vulnerability is accepted or
+declined, etc.

+ 6 - 0
vendor/alibabacloud/credentials/UPGRADING.md

@@ -0,0 +1,6 @@
+Upgrading Guide
+===============
+
+1.x
+-----------------------
+- This is the first version. See <https://github.com/aliyun/credentials-php> for more information.

+ 104 - 0
vendor/alibabacloud/credentials/composer.json

@@ -0,0 +1,104 @@
+{
+    "name": "alibabacloud/credentials",
+    "homepage": "https://www.alibabacloud.com/",
+    "description": "Alibaba Cloud Credentials for PHP",
+    "keywords": [
+        "sdk",
+        "tool",
+        "cloud",
+        "client",
+        "aliyun",
+        "library",
+        "alibaba",
+        "Credentials",
+        "alibabacloud"
+    ],
+    "type": "library",
+    "license": "Apache-2.0",
+    "support": {
+        "source": "https://github.com/aliyun/credentials-php",
+        "issues": "https://github.com/aliyun/credentials-php/issues"
+    },
+    "authors": [
+        {
+            "name": "Alibaba Cloud SDK",
+            "email": "sdk-team@alibabacloud.com",
+            "homepage": "http://www.alibabacloud.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.6",
+        "ext-curl": "*",
+        "ext-json": "*",
+        "ext-libxml": "*",
+        "ext-openssl": "*",
+        "ext-mbstring": "*",
+        "ext-simplexml": "*",
+        "ext-xmlwriter": "*",
+        "guzzlehttp/guzzle": "^6.3|^7.0",
+        "adbario/php-dot-notation": "^2.2",
+        "alibabacloud/tea": "^3.0"
+    },
+    "require-dev": {
+        "ext-spl": "*",
+        "ext-dom": "*",
+        "ext-pcre": "*",
+        "psr/cache": "^1.0",
+        "ext-sockets": "*",
+        "drupal/coder": "^8.3",
+        "symfony/dotenv": "^3.4",
+        "phpunit/phpunit": "^4.8.35|^5.4.3",
+        "monolog/monolog": "^1.24",
+        "composer/composer": "^1.8",
+        "mikey179/vfsstream": "^1.6",
+        "symfony/var-dumper": "^3.4"
+    },
+    "suggest": {
+        "ext-sockets": "To use client-side monitoring"
+    },
+    "autoload": {
+        "psr-4": {
+            "AlibabaCloud\\Credentials\\": "src"
+        }
+    },
+    "autoload-dev": {
+        "psr-4": {
+            "AlibabaCloud\\Credentials\\Tests\\": "tests/"
+        }
+    },
+    "config": {
+        "preferred-install": "dist",
+        "optimize-autoloader": true
+    },
+    "minimum-stability": "dev",
+    "prefer-stable": true,
+    "scripts-descriptions": {
+        "cs": "Tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard.",
+        "cbf": "Automatically correct coding standard violations.",
+        "fixer": "Fixes code to follow standards.",
+        "test": "Run all tests.",
+        "unit": "Run Unit tests.",
+        "feature": "Run Feature tests.",
+        "clearCache": "Clear cache like coverage.",
+        "coverage": "Show Coverage html.",
+        "endpoints": "Update endpoints from OSS."
+    },
+    "scripts": {
+        "cs": "phpcs --standard=PSR2 -n ./",
+        "cbf": "phpcbf --standard=PSR2 -n ./",
+        "fixer": "php-cs-fixer fix ./",
+        "test": [
+            "phpunit --colors=always"
+        ],
+        "unit": [
+            "@clearCache",
+            "phpunit --testsuite=Unit --colors=always"
+        ],
+        "feature": [
+            "@clearCache",
+            "phpunit --testsuite=Feature --colors=always"
+        ],
+        "coverage": "open cache/coverage/index.html",
+        "clearCache": "rm -rf cache/*"
+    }
+}

+ 72 - 0
vendor/alibabacloud/credentials/src/AccessKeyCredential.php

@@ -0,0 +1,72 @@
+<?php
+
+namespace AlibabaCloud\Credentials;
+
+use AlibabaCloud\Credentials\Signature\ShaHmac1Signature;
+
+/**
+ * Use the AccessKey to complete the authentication.
+ */
+class AccessKeyCredential implements CredentialsInterface
+{
+    /**
+     * @var string
+     */
+    private $accessKeyId;
+
+    /**
+     * @var string
+     */
+    private $accessKeySecret;
+
+    /**
+     * AccessKeyCredential constructor.
+     *
+     * @param string $access_key_id     Access key ID
+     * @param string $access_key_secret Access Key Secret
+     */
+    public function __construct($access_key_id, $access_key_secret)
+    {
+        Filter::accessKey($access_key_id, $access_key_secret);
+
+        $this->accessKeyId     = $access_key_id;
+        $this->accessKeySecret = $access_key_secret;
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeyId()
+    {
+        return $this->accessKeyId;
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeySecret()
+    {
+        return $this->accessKeySecret;
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return "$this->accessKeyId#$this->accessKeySecret";
+    }
+
+    /**
+     * @return ShaHmac1Signature
+     */
+    public function getSignature()
+    {
+        return new ShaHmac1Signature();
+    }
+
+    public function getSecurityToken()
+    {
+        return '';
+    }
+}

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác