Kaynağa Gözat

会员升级

Kirin 1 yıl önce
ebeveyn
işleme
13e2f1140e
100 değiştirilmiş dosya ile 11535 ekleme ve 3 silme
  1. 31 0
      app/controller/api/v1/PublicController.php
  2. 64 0
      app/controller/api/v1/user/UserController.php
  3. 14 0
      app/services/user/UserServices.php
  4. 2 1
      composer.json
  5. 644 2
      composer.lock
  6. 143 0
      crmeb/services/AliAuthService.php
  7. 15 0
      vendor/alibabacloud/cloudauth-20190307/.gitignore
  8. 65 0
      vendor/alibabacloud/cloudauth-20190307/.php_cs.dist
  9. 67 0
      vendor/alibabacloud/cloudauth-20190307/ChangeLog.md
  10. 201 0
      vendor/alibabacloud/cloudauth-20190307/LICENSE
  11. 35 0
      vendor/alibabacloud/cloudauth-20190307/README-CN.md
  12. 35 0
      vendor/alibabacloud/cloudauth-20190307/README.md
  13. 17 0
      vendor/alibabacloud/cloudauth-20190307/autoload.php
  14. 37 0
      vendor/alibabacloud/cloudauth-20190307/composer.json
  15. 1499 0
      vendor/alibabacloud/cloudauth-20190307/src/Cloudauth.php
  16. 133 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/AIGCFaceVerifyRequest.php
  17. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/AIGCFaceVerifyResponse.php
  18. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/AIGCFaceVerifyResponseBody.php
  19. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/AIGCFaceVerifyResponseBody/resultObject.php
  20. 229 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyRequest.php
  21. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponse.php
  22. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponseBody.php
  23. 75 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponseBody/resultObject.php
  24. 91 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesRequest.php
  25. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponse.php
  26. 104 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponseBody.php
  27. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponseBody/data.php
  28. 292 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyAdvanceRequest.php
  29. 291 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyRequest.php
  30. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponse.php
  31. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponseBody.php
  32. 103 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponseBody/resultObject.php
  33. 91 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyRequest.php
  34. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyResponse.php
  35. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyResponseBody.php
  36. 117 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingRequest.php
  37. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingResponse.php
  38. 103 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingResponseBody.php
  39. 133 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoRequest.php
  40. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponse.php
  41. 104 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody.php
  42. 60 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList.php
  43. 105 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList/deviceInfo.php
  44. 77 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyRequest.php
  45. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponse.php
  46. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponseBody.php
  47. 141 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponseBody/resultObject.php
  48. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponse.php
  49. 62 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponseBody.php
  50. 133 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponseBody/ossUploadToken.php
  51. 119 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeSmartStatisticsPageListRequest.php
  52. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeSmartStatisticsPageListResponse.php
  53. 130 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeSmartStatisticsPageListResponseBody.php
  54. 131 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeSmartStatisticsPageListResponseBody/items.php
  55. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultRequest.php
  56. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponse.php
  57. 118 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody.php
  58. 144 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody/material.php
  59. 167 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponseBody/material/idCardInfo.php
  60. 49 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKRequest.php
  61. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKResponse.php
  62. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKResponseBody.php
  63. 243 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenRequest.php
  64. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponse.php
  65. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponseBody.php
  66. 133 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponseBody/ossUploadToken.php
  67. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesRequest.php
  68. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponse.php
  69. 104 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody.php
  70. 76 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data.php
  71. 60 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos.php
  72. 61 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo.php
  73. 145 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes.php
  74. 77 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/headpose.php
  75. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/smiling.php
  76. 91 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceRect.php
  77. 75 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Id2MetaVerifyRequest.php
  78. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Id2MetaVerifyResponse.php
  79. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Id2MetaVerifyResponseBody.php
  80. 49 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Id2MetaVerifyResponseBody/resultObject.php
  81. 461 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyRequest.php
  82. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponse.php
  83. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponseBody.php
  84. 61 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponseBody/resultObject.php
  85. 203 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyRequest.php
  86. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponse.php
  87. 84 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponseBody.php
  88. 83 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponseBody/resultObject.php
  89. 89 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaDetailVerifyRequest.php
  90. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaDetailVerifyResponse.php
  91. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaDetailVerifyResponseBody.php
  92. 77 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaDetailVerifyResponseBody/resultObject.php
  93. 89 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaSimpleVerifyRequest.php
  94. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaSimpleVerifyResponse.php
  95. 90 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaSimpleVerifyResponseBody.php
  96. 63 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaSimpleVerifyResponseBody/resultObject.php
  97. 105 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoRequest.php
  98. 71 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoResponse.php
  99. 119 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoResponseBody.php
  100. 145 0
      vendor/alibabacloud/cloudauth-20190307/src/Models/VerifyMaterialRequest.php

+ 31 - 0
app/controller/api/v1/PublicController.php

@@ -14,6 +14,7 @@ namespace app\controller\api\v1;
 use app\jobs\integral\IntegralJob;
 use app\model\order\StoreOrder;
 use app\model\user\UserIntegral;
+use app\model\user\User;
 use app\services\activity\combination\StorePinkServices;
 use app\services\diy\DiyServices;
 use app\services\message\service\StoreServiceServices;
@@ -36,6 +37,7 @@ use app\services\user\UserInvoiceServices;
 use app\services\user\UserServices;
 use app\services\wechat\WechatUserServices;
 use app\webscoket\SocketPush;
+use crmeb\services\AliAuthService;
 use crmeb\services\WithdrawService;
 use Joypack\Tencent\Map\Bundle\Location;
 use Joypack\Tencent\Map\Bundle\LocationOption;
@@ -43,6 +45,7 @@ use app\Request;
 use crmeb\services\CacheService;
 use crmeb\services\UploadService;
 use crmeb\basic\BaseController;
+use think\facade\Cache;
 
 /**
  * 公共类
@@ -675,4 +678,32 @@ class PublicController extends BaseController
         return app('json')->successful($copyright);
 
     }
+
+    public function authNotify(Request $request)
+    {
+        $data = $request->param();
+        $token = $data['callbackToken'];
+        $certifyId = $data['certifyId'];
+
+        $check_token = Cache::get($certifyId, '');
+        if ($token != $check_token) {
+            return app('json')->fail('已过期');
+        }
+        $uid = Cache::get($token, 0);
+        $user = User::where(['uid' => $uid])->find();
+        if (!$user || $user['is_auth'] == 2 || $user['is_auth'] == 3) {
+            return app('json')->fail('信息已审核或不存在');
+        }
+        $info = AliAuthService::result($certifyId);
+        if (!$info) {
+            return app('json')->fail(AliAuthService::getError());
+        }
+        if ($info['passed'] == 'T') {
+            User::where(['uid' => $uid])->update(['is_auth' => 2, 'f_integral' => 3000, 'off' => "", 'is_new' => 1]);
+        } else {
+            User::where(['uid' => $uid])->update(['off' => AliAuthService::getCodeError($info['subCode']), 'is_auth' => "3"]);
+        }
+        return app('json')->success('OK');
+
+    }
 }

+ 64 - 0
app/controller/api/v1/user/UserController.php

@@ -16,8 +16,10 @@ use app\services\product\product\StoreProductLogServices;
 use app\services\user\UserAwardIntegralServices;
 use app\services\user\UserServices;
 use app\services\wechat\WechatUserServices;
+use crmeb\services\AliAuthService;
 use crmeb\services\CacheService;
 use crmeb\services\WithdrawService;
+use function Swoole\Coroutine\Http\get;
 
 
 /**
@@ -347,4 +349,66 @@ class UserController
             return app('json')->fail('请先添加收款信息');
         }
     }
+
+
+    /**
+     * 实名信息提交认证
+     * @param Request $request
+     * @return mixed
+     */
+    public function rname(Request $request)
+    {
+        $info = $request->postMore([
+            ['rname', ''],
+            ['cid', ''],
+        ]);
+        if (!$info['rname'] || !$info['cid']) return app('json')->fail('请输入身份证号码和真实姓名');
+        $ress = $this->services->search()->where('uid', $request->uid())->find();
+        if ($ress['is_auth'] == 1 || $ress['is_auth'] == 2) {
+            return app('json')->fail('您已提交认证,不可重复提交');
+        }
+
+        $res = $this->services->cidUser($info['rname'], $info['cid'], $request->uid());
+        if ($res) return app('json')->success('上传成功');
+        return app('json')->fail('上传失败');
+
+    }
+
+    public function check(Request $request)
+    {
+        // 查询是否已审核
+        $res1 = $this->services->get($request->uid());
+        if ($res1['is_auth'] == 0) {
+            return app('json')->fail('请填写真实姓名和身份证');
+        }
+        if ($res1['is_auth'] == 2 || $res1['is_auth'] == 3) {
+            return app('json')->fail('该信息已审核!不可操作');
+        }
+        $metaInfo = $request->post('metaInfo', '');
+        $url = $request->post('url', '');
+        if (!$metaInfo) app('json')->fail('请传入环境信息');
+
+        $res = AliAuthService::check($request->uid(), $metaInfo, $url);
+        if ($res) {
+            return app('json')->success('ok', $res);
+        } else {
+            $this->services->update($request->uid(), ['is_auth' => 3, 'off' => AliAuthService::getError()], 'uid');
+            return app('json')->fail(AliAuthService::getError());
+        }
+    }
+
+    /**
+     * 实名信息查询
+     * @param Request $request
+     * @return mixed
+     */
+    public function rate(Request $request)
+    {
+        $res = $this->services->get($request->uid());
+        $data = [
+            'is_auth' => $res['is_auth'],
+            'off' => $res['off']
+        ];
+        return app('json')->success($data);
+    }
 }

+ 14 - 0
app/services/user/UserServices.php

@@ -2410,4 +2410,18 @@ class UserServices extends BaseServices
         }
         return WithdrawService::init()::contractInfo($user['enterprise_professional_facilitator_id']);
     }
+
+
+    public function cidUser($rname, $cid, $uid)
+    {
+        //找出出生年月日
+        $time = substr($cid, 6, 4) . '-' . substr($cid, 10, 2) . '-' . substr($cid, 12, 2);
+        $brithday = strtotime($time);
+        $rust = $this->update($uid, ['real_name' => $rname, 'card_id' => $cid, 'is_auth' => 1, 'off' => '', 'birthday' => $brithday], 'uid');
+
+        if ($rust)
+            return true;
+        else
+            return false;
+    }
 }

+ 2 - 1
composer.json

@@ -55,7 +55,8 @@
         "fastknife/ajcaptcha": "^1.1",
         "alibabacloud/client": "^1.5",
         "async-aws/s3": "^1.14",
-      "ext-openssl": "*"
+      "ext-openssl": "*",
+        "alibabacloud/cloudauth-20190307": "2.3.0"
     },
     "autoload": {
         "psr-4": {

+ 644 - 2
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "7fe9921b35dc8443af5e5b455b02534b",
+    "content-hash": "f8fae31fa1311f9b2344b52df73f2c74",
     "packages": [
         {
             "name": "adbario/php-dot-notation",
@@ -155,6 +155,391 @@
             },
             "time": "2022-12-09T04:05:55+00:00"
         },
+        {
+            "name": "alibabacloud/cloudauth-20190307",
+            "version": "2.3.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/cloudauth-20190307.git",
+                "reference": "d37b719d94130fd162ca056df5b2baff24c599a9"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/cloudauth-20190307/zipball/d37b719d94130fd162ca056df5b2baff24c599a9",
+                "reference": "d37b719d94130fd162ca056df5b2baff24c599a9",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "alibabacloud/darabonba-openapi": "^0.2.10",
+                "alibabacloud/endpoint-util": "^0.1.0",
+                "alibabacloud/openapi-util": "^0.1.10|^0.2.1",
+                "alibabacloud/openplatform-20191219": "^2.0.1",
+                "alibabacloud/tea-fileform": "^0.3.0",
+                "alibabacloud/tea-oss-sdk": "^0.3.0",
+                "alibabacloud/tea-oss-utils": "^0.3.1",
+                "alibabacloud/tea-utils": "^0.2.19",
+                "php": ">5.5"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\SDK\\Cloudauth\\V20190307\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud ID Verification (20190307) SDK Library for PHP",
+            "support": {
+                "source": "https://github.com/alibabacloud-sdk-php/cloudauth-20190307/tree/2.3.0"
+            },
+            "time": "2024-02-22T17:21:20+00:00"
+        },
+        {
+            "name": "alibabacloud/credentials",
+            "version": "1.1.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/aliyun/credentials-php.git",
+                "reference": "1d8383ceef695974a88a3859c42e235fd2e3981a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/aliyun/credentials-php/zipball/1d8383ceef695974a88a3859c42e235fd2e3981a",
+                "reference": "1d8383ceef695974a88a3859c42e235fd2e3981a",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "adbario/php-dot-notation": "^2.2",
+                "alibabacloud/tea": "^3.0",
+                "ext-curl": "*",
+                "ext-json": "*",
+                "ext-libxml": "*",
+                "ext-mbstring": "*",
+                "ext-openssl": "*",
+                "ext-simplexml": "*",
+                "ext-xmlwriter": "*",
+                "guzzlehttp/guzzle": "^6.3|^7.0",
+                "php": ">=5.6"
+            },
+            "require-dev": {
+                "composer/composer": "^1.8",
+                "drupal/coder": "^8.3",
+                "ext-dom": "*",
+                "ext-pcre": "*",
+                "ext-sockets": "*",
+                "ext-spl": "*",
+                "mikey179/vfsstream": "^1.6",
+                "monolog/monolog": "^1.24",
+                "phpunit/phpunit": "^5.7|^6.6|^7.5",
+                "psr/cache": "^1.0",
+                "symfony/dotenv": "^3.4",
+                "symfony/var-dumper": "^3.4"
+            },
+            "suggest": {
+                "ext-sockets": "To use client-side monitoring"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\Credentials\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com",
+                    "homepage": "http://www.alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud Credentials for PHP",
+            "homepage": "https://www.alibabacloud.com/",
+            "keywords": [
+                "alibaba",
+                "alibabacloud",
+                "aliyun",
+                "client",
+                "cloud",
+                "credentials",
+                "library",
+                "sdk",
+                "tool"
+            ],
+            "support": {
+                "issues": "https://github.com/aliyun/credentials-php/issues",
+                "source": "https://github.com/aliyun/credentials-php"
+            },
+            "time": "2023-04-11T02:12:12+00:00"
+        },
+        {
+            "name": "alibabacloud/darabonba-openapi",
+            "version": "0.2.10",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/darabonba-openapi.git",
+                "reference": "88f42443e1b5c9d086d0444baa4a874f8636f7bb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/darabonba-openapi/zipball/88f42443e1b5c9d086d0444baa4a874f8636f7bb",
+                "reference": "88f42443e1b5c9d086d0444baa4a874f8636f7bb",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "alibabacloud/credentials": "^1.1",
+                "alibabacloud/gateway-spi": "^1",
+                "alibabacloud/openapi-util": "^0.1.10|^0.2.1",
+                "alibabacloud/tea-utils": "^0.2.19",
+                "alibabacloud/tea-xml": "^0.2",
+                "php": ">5.5"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Darabonba\\OpenApi\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud OpenApi Client",
+            "support": {
+                "issues": "https://github.com/alibabacloud-sdk-php/darabonba-openapi/issues",
+                "source": "https://github.com/alibabacloud-sdk-php/darabonba-openapi/tree/0.2.10"
+            },
+            "time": "2023-11-23T07:01:20+00:00"
+        },
+        {
+            "name": "alibabacloud/endpoint-util",
+            "version": "0.1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/endpoint-util.git",
+                "reference": "f3fe88a25d8df4faa3b0ae14ff202a9cc094e6c5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/endpoint-util/zipball/f3fe88a25d8df4faa3b0ae14ff202a9cc094e6c5",
+                "reference": "f3fe88a25d8df4faa3b0ae14ff202a9cc094e6c5",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">5.5"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^4.8.35|^5.4.3"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\Endpoint\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud Endpoint Library for PHP",
+            "support": {
+                "source": "https://github.com/alibabacloud-sdk-php/endpoint-util/tree/0.1.1"
+            },
+            "time": "2020-06-04T10:57:15+00:00"
+        },
+        {
+            "name": "alibabacloud/gateway-spi",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/alibabacloud-gateway-spi.git",
+                "reference": "7440f77750c329d8ab252db1d1d967314ccd1fcb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/alibabacloud-gateway-spi/zipball/7440f77750c329d8ab252db1d1d967314ccd1fcb",
+                "reference": "7440f77750c329d8ab252db1d1d967314ccd1fcb",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "alibabacloud/credentials": "^1.1",
+                "php": ">5.5"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Darabonba\\GatewaySpi\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud Gateway SPI Client",
+            "support": {
+                "source": "https://github.com/alibabacloud-sdk-php/alibabacloud-gateway-spi/tree/1.0.0"
+            },
+            "time": "2022-07-14T05:31:35+00:00"
+        },
+        {
+            "name": "alibabacloud/openapi-util",
+            "version": "0.2.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/openapi-util.git",
+                "reference": "f31f7bcd835e08ca24b6b8ba33637eb4eceb093a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/openapi-util/zipball/f31f7bcd835e08ca24b6b8ba33637eb4eceb093a",
+                "reference": "f31f7bcd835e08ca24b6b8ba33637eb4eceb093a",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "alibabacloud/tea": "^3.1",
+                "alibabacloud/tea-utils": "^0.2",
+                "lizhichao/one-sm": "^1.5",
+                "php": ">5.5"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "*"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\OpenApiUtil\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud OpenApi Util",
+            "support": {
+                "issues": "https://github.com/alibabacloud-sdk-php/openapi-util/issues",
+                "source": "https://github.com/alibabacloud-sdk-php/openapi-util/tree/0.2.1"
+            },
+            "time": "2023-01-10T09:10:10+00:00"
+        },
+        {
+            "name": "alibabacloud/openplatform-20191219",
+            "version": "2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/OpenPlatform-20191219.git",
+                "reference": "02ffa72369f8649214f1cfa336b52a544735f517"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/OpenPlatform-20191219/zipball/02ffa72369f8649214f1cfa336b52a544735f517",
+                "reference": "02ffa72369f8649214f1cfa336b52a544735f517",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "alibabacloud/darabonba-openapi": "^0.2.8",
+                "alibabacloud/endpoint-util": "^0.1.0",
+                "alibabacloud/openapi-util": "^0.1.10|^0.2.1",
+                "alibabacloud/tea-utils": "^0.2.17",
+                "php": ">5.5"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\SDK\\OpenPlatform\\V20191219\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud OpenPlatform (20191219) SDK Library for PHP",
+            "support": {
+                "source": "https://github.com/alibabacloud-sdk-php/OpenPlatform-20191219/tree/2.0.1"
+            },
+            "time": "2023-02-07T06:39:39+00:00"
+        },
         {
             "name": "alibabacloud/tea",
             "version": "3.1.24",
@@ -276,6 +661,202 @@
             },
             "time": "2020-12-01T07:24:35+00:00"
         },
+        {
+            "name": "alibabacloud/tea-oss-sdk",
+            "version": "0.3.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/tea-oss-sdk.git",
+                "reference": "e28e70e2842b2e4da031a774209231bf08d7965c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/tea-oss-sdk/zipball/e28e70e2842b2e4da031a774209231bf08d7965c",
+                "reference": "e28e70e2842b2e4da031a774209231bf08d7965c",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "alibabacloud/credentials": "^1.1",
+                "alibabacloud/tea-fileform": "^0.3.0",
+                "alibabacloud/tea-oss-utils": "^0.3.0",
+                "alibabacloud/tea-utils": "^0.2.0",
+                "alibabacloud/tea-xml": "^0.2",
+                "php": ">5.5"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\SDK\\OSS\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Aliyun Tea OSS SDK Library for PHP",
+            "support": {
+                "source": "https://github.com/alibabacloud-sdk-php/tea-oss-sdk/tree/0.3.6"
+            },
+            "time": "2022-10-13T07:23:51+00:00"
+        },
+        {
+            "name": "alibabacloud/tea-oss-utils",
+            "version": "0.3.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/tea-oss-utils.git",
+                "reference": "19f58fc509347f075664e377742d4f9e18465372"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/tea-oss-utils/zipball/19f58fc509347f075664e377742d4f9e18465372",
+                "reference": "19f58fc509347f075664e377742d4f9e18465372",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "alibabacloud/tea": "^3.0",
+                "guzzlehttp/psr7": "^1.0",
+                "php": ">5.5"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^4.8.35|^5.4.3|^9.4"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\Tea\\OSSUtils\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud Tea OSS Utils Library for PHP",
+            "support": {
+                "source": "https://github.com/alibabacloud-sdk-php/tea-oss-utils/tree/0.3.1"
+            },
+            "time": "2023-01-08T13:26:58+00:00"
+        },
+        {
+            "name": "alibabacloud/tea-utils",
+            "version": "0.2.19",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/tea-utils.git",
+                "reference": "8dfc1a93e9415818e93a621b644abbb84981aea4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/tea-utils/zipball/8dfc1a93e9415818e93a621b644abbb84981aea4",
+                "reference": "8dfc1a93e9415818e93a621b644abbb84981aea4",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "alibabacloud/tea": "^3.1",
+                "php": ">5.5"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\Tea\\Utils\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud Tea Utils for PHP",
+            "support": {
+                "issues": "https://github.com/aliyun/tea-util/issues",
+                "source": "https://github.com/aliyun/tea-util"
+            },
+            "time": "2023-06-26T09:49:19+00:00"
+        },
+        {
+            "name": "alibabacloud/tea-xml",
+            "version": "0.2.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/alibabacloud-sdk-php/tea-xml.git",
+                "reference": "3e0c000bf536224eebbac913c371bef174c0a16a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/alibabacloud-sdk-php/tea-xml/zipball/3e0c000bf536224eebbac913c371bef174c0a16a",
+                "reference": "3e0c000bf536224eebbac913c371bef174c0a16a",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">5.5"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "*",
+                "symfony/var-dumper": "*"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\Tea\\XML\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud Tea XML Library for PHP",
+            "support": {
+                "source": "https://github.com/alibabacloud-sdk-php/tea-xml/tree/0.2.4"
+            },
+            "time": "2022-08-02T04:12:58+00:00"
+        },
         {
             "name": "alipaysdk/easysdk",
             "version": "2.0.0",
@@ -2224,6 +2805,66 @@
             ],
             "time": "2022-04-17T13:12:02+00:00"
         },
+        {
+            "name": "lizhichao/one-sm",
+            "version": "1.10",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/lizhichao/sm.git",
+                "reference": "687a012a44a5bfd4d9143a0234e1060543be455a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/lizhichao/sm/zipball/687a012a44a5bfd4d9143a0234e1060543be455a",
+                "reference": "687a012a44a5bfd4d9143a0234e1060543be455a",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=5.6"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "OneSm\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "tanszhe",
+                    "email": "1018595261@qq.com"
+                }
+            ],
+            "description": "国密sm3",
+            "keywords": [
+                "php",
+                "sm3"
+            ],
+            "support": {
+                "issues": "https://github.com/lizhichao/sm/issues",
+                "source": "https://github.com/lizhichao/sm/tree/1.10"
+            },
+            "funding": [
+                {
+                    "url": "https://www.vicsdf.com/img/w.jpg",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://www.vicsdf.com/img/z.jpg",
+                    "type": "custom"
+                }
+            ],
+            "time": "2021-05-26T06:19:22+00:00"
+        },
         {
             "name": "maennchen/zipstream-php",
             "version": "2.2.1",
@@ -7246,7 +7887,8 @@
         "ext-json": "*",
         "ext-curl": "*",
         "ext-bcmath": "*",
-        "ext-mbstring": "*"
+        "ext-mbstring": "*",
+        "ext-openssl": "*"
     },
     "platform-dev": [],
     "plugin-api-version": "2.3.0"

+ 143 - 0
crmeb/services/AliAuthService.php

@@ -0,0 +1,143 @@
+<?php
+/**
+ * @Created by PhpStorm
+ * @author: Kirin
+ * @day: 2024/2/28
+ * @time: 11:33
+ */
+
+namespace crmeb\services;
+
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Cloudauth;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyRequest;
+use app\model\user\User;
+use \Exception;
+use AlibabaCloud\Tea\Exception\TeaError;
+use AlibabaCloud\Tea\Utils\Utils;
+
+use Darabonba\OpenApi\Models\Config;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFaceVerifyRequest;
+use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
+use think\facade\Cache;
+
+class AliAuthService
+{
+
+    private static $error_msg = "错误,请重试";
+
+    private static $code_error = [
+        '200' => '认证通过',
+        '201' => '姓名和身份证不一致',
+        '202' => '查询不到身份信息',
+        '203' => '查询不到照片或照片不可用',
+        '204' => '人脸比对不一致',
+        '205' => '活体检测存在风险',
+        '206' => '业务策略限制',
+        '210' => '认证通过',
+    ];
+
+    public static function getCodeError($code)
+    {
+        return self::$code_error[$code] ?? '未知错误';
+    }
+
+    public static function createClient($accessKeyId, $accessKeySecret)
+    {
+        $config = new Config([
+            // 必填,您的 AccessKey ID
+            "accessKeyId" => $accessKeyId,
+            // 必填,您的 AccessKey Secret
+            "accessKeySecret" => $accessKeySecret
+        ]);
+        // Endpoint 请参考 https://api.aliyun.com/product/Cloudauth
+        $config->endpoint = "cloudauth.aliyuncs.com";
+        return new Cloudauth($config);
+    }
+
+    public static function setError($msg)
+    {
+        self::$error_msg = $msg;
+        return false;
+    }
+
+    public static function getError($default = '错误,请重试')
+    {
+        return self::$error_msg ?: $default;
+    }
+
+    public static function createOn($uid)
+    {
+        return time() . rand(100000, 999999) . $uid;
+    }
+
+
+    public static function check($uid, $metaInfo = '', $url = '')
+    {
+        // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
+        // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html
+        $client = self::createClient('LTAI5tFNPGNPbhWf9SWMyEV7', 'EQ5forf1F0iPV1rHQuJxXZsIATiYdf');
+        $user = User::get($uid);
+        if (!$user['card_id'] || !$user['real_name']) {
+            return self::setError('请先填写真实姓名与身份证号码');
+        }
+        $orderId = self::createOn($uid);
+        $token = md5($orderId);
+        $compareFaceVerifyRequest = new InitFaceVerifyRequest([
+            "sceneId" => 1000009317,
+            "outerOrderNo" => $orderId,
+            "productCode" => "ID_PRO",
+            "model" => "MULTI_ACTION",
+            "certType" => "IDENTITY_CARD",
+            "certName" => $user['real_name'],
+            "certNo" => $user['card_id'],
+            "returnUrl" => $url,
+            "callbackUrl" => sys_config('site_url') . '/api/authNotify',
+            "metaInfo" => $metaInfo,
+            "callbackToken" => $token,
+        ]);
+        try {
+            // 复制代码运行请自行打印 API 的返回值
+            $res = $client->initFaceVerify($compareFaceVerifyRequest);
+            if ($res->body->code !== '200') {
+                return self::setError($res->body->message);
+            } else {
+                Cache::set($token, $uid, 1500);
+                Cache::set($res->body->resultObject->certifyId, $token, 1500);
+                return ['url' => $res->body->resultObject->certifyUrl, 'id' => $res->body->resultObject->certifyId];
+            }
+        } catch (Exception $error) {
+            if (!($error instanceof TeaError)) {
+                $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
+            }
+            return self::setError($error->message);
+        }
+    }
+
+
+    public static function result($certifyId)
+    {
+        // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
+        // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html
+        $client = self::createClient('LTAI5tFNPGNPbhWf9SWMyEV7', 'EQ5forf1F0iPV1rHQuJxXZsIATiYdf');
+        $compareFaceVerifyRequest = new DescribeFaceVerifyRequest([
+            "sceneId" => 1000009317,
+            "certifyId" => $certifyId,
+        ]);
+        try {
+            // 复制代码运行请自行打印 API 的返回值
+            $res = $client->describeFaceVerify($compareFaceVerifyRequest);
+            if ($res->body->code !== '200') {
+                return self::setError($res->body->message);
+            } else {
+                return ['passed' => $res->body->resultObject->passed, 'subCode' => $res->body->resultObject->subCode];
+            }
+        } catch (Exception $error) {
+            if (!($error instanceof TeaError)) {
+                $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
+            }
+            return self::setError($error->message);
+        }
+    }
+}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -0,0 +1,1499 @@
+<?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\AIGCFaceVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\AIGCFaceVerifyResponse;
+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\DescribeSmartStatisticsPageListRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeSmartStatisticsPageListResponse;
+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\Id2MetaVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\Id2MetaVerifyResponse;
+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\Mobile3MetaDetailVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\Mobile3MetaDetailVerifyResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\Mobile3MetaSimpleVerifyRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\Mobile3MetaSimpleVerifyResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ModifyDeviceInfoRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ModifyDeviceInfoResponse;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialRequest;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponse;
+use AlibabaCloud\SDK\OpenPlatform\V20191219\Models\AuthorizeFileUploadRequest;
+use AlibabaCloud\SDK\OpenPlatform\V20191219\Models\AuthorizeFileUploadResponse;
+use AlibabaCloud\SDK\OpenPlatform\V20191219\OpenPlatform;
+use AlibabaCloud\SDK\OSS\OSS;
+use AlibabaCloud\SDK\OSS\OSS\PostObjectRequest;
+use AlibabaCloud\SDK\OSS\OSS\PostObjectRequest\header;
+use AlibabaCloud\Tea\FileForm\FileForm\FileField;
+use AlibabaCloud\Tea\Utils\Utils;
+use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
+use Darabonba\OpenApi\Models\Config;
+use Darabonba\OpenApi\Models\OpenApiRequest;
+use Darabonba\OpenApi\Models\Params;
+use Darabonba\OpenApi\OpenApiClient;
+
+class Cloudauth extends OpenApiClient
+{
+    public function __construct($config)
+    {
+        parent::__construct($config);
+        $this->_endpointRule = 'central';
+        $this->checkConfig($config);
+        $this->_endpoint = $this->getEndpoint('cloudauth', $this->_regionId, $this->_endpointRule, $this->_network, $this->_suffix, $this->_endpointMap, $this->_endpoint);
+    }
+
+    /**
+     * @param string   $productId
+     * @param string   $regionId
+     * @param string   $endpointRule
+     * @param string   $network
+     * @param string   $suffix
+     * @param string[] $endpointMap
+     * @param string   $endpoint
+     *
+     * @return string
+     */
+    public function getEndpoint($productId, $regionId, $endpointRule, $network, $suffix, $endpointMap, $endpoint)
+    {
+        if (!Utils::empty_($endpoint)) {
+            return $endpoint;
+        }
+        if (!Utils::isUnset($endpointMap) && !Utils::empty_(@$endpointMap[$regionId])) {
+            return @$endpointMap[$regionId];
+        }
+
+        return Endpoint::getEndpointRules($productId, $regionId, $endpointRule, $network, $suffix);
+    }
+
+    /**
+     * @param AIGCFaceVerifyRequest $request
+     * @param RuntimeOptions        $runtime
+     *
+     * @return AIGCFaceVerifyResponse
+     */
+    public function aIGCFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->faceContrastPictureUrl)) {
+            $query['FaceContrastPictureUrl'] = $request->faceContrastPictureUrl;
+        }
+        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->sceneId)) {
+            $query['SceneId'] = $request->sceneId;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'AIGCFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return AIGCFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param AIGCFaceVerifyRequest $request
+     *
+     * @return AIGCFaceVerifyResponse
+     */
+    public function aIGCFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->aIGCFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param CompareFaceVerifyRequest $request
+     * @param RuntimeOptions           $runtime
+     *
+     * @return CompareFaceVerifyResponse
+     */
+    public function compareFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $body = [];
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $body['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $body['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $body['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->sourceCertifyId)) {
+            $body['SourceCertifyId'] = $request->sourceCertifyId;
+        }
+        if (!Utils::isUnset($request->sourceFaceContrastPicture)) {
+            $body['SourceFaceContrastPicture'] = $request->sourceFaceContrastPicture;
+        }
+        if (!Utils::isUnset($request->sourceFaceContrastPictureUrl)) {
+            $body['SourceFaceContrastPictureUrl'] = $request->sourceFaceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->sourceOssBucketName)) {
+            $body['SourceOssBucketName'] = $request->sourceOssBucketName;
+        }
+        if (!Utils::isUnset($request->sourceOssObjectName)) {
+            $body['SourceOssObjectName'] = $request->sourceOssObjectName;
+        }
+        if (!Utils::isUnset($request->targetCertifyId)) {
+            $body['TargetCertifyId'] = $request->targetCertifyId;
+        }
+        if (!Utils::isUnset($request->targetFaceContrastPicture)) {
+            $body['TargetFaceContrastPicture'] = $request->targetFaceContrastPicture;
+        }
+        if (!Utils::isUnset($request->targetFaceContrastPictureUrl)) {
+            $body['TargetFaceContrastPictureUrl'] = $request->targetFaceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->targetOssBucketName)) {
+            $body['TargetOssBucketName'] = $request->targetOssBucketName;
+        }
+        if (!Utils::isUnset($request->targetOssObjectName)) {
+            $body['TargetOssObjectName'] = $request->targetOssObjectName;
+        }
+        $req = new OpenApiRequest([
+            'body' => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'CompareFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return CompareFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param CompareFaceVerifyRequest $request
+     *
+     * @return CompareFaceVerifyResponse
+     */
+    public function compareFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->compareFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param CompareFacesRequest $request
+     * @param RuntimeOptions      $runtime
+     *
+     * @return CompareFacesResponse
+     */
+    public function compareFacesWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $body = [];
+        if (!Utils::isUnset($request->sourceImageType)) {
+            $body['SourceImageType'] = $request->sourceImageType;
+        }
+        if (!Utils::isUnset($request->sourceImageValue)) {
+            $body['SourceImageValue'] = $request->sourceImageValue;
+        }
+        if (!Utils::isUnset($request->targetImageType)) {
+            $body['TargetImageType'] = $request->targetImageType;
+        }
+        if (!Utils::isUnset($request->targetImageValue)) {
+            $body['TargetImageValue'] = $request->targetImageValue;
+        }
+        $req = new OpenApiRequest([
+            'body' => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'CompareFaces',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return CompareFacesResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param CompareFacesRequest $request
+     *
+     * @return CompareFacesResponse
+     */
+    public function compareFaces($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->compareFacesWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param ContrastFaceVerifyRequest $request
+     * @param RuntimeOptions            $runtime
+     *
+     * @return ContrastFaceVerifyResponse
+     */
+    public function contrastFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->model)) {
+            $query['Model'] = $request->model;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->certName)) {
+            $body['CertName'] = $request->certName;
+        }
+        if (!Utils::isUnset($request->certNo)) {
+            $body['CertNo'] = $request->certNo;
+        }
+        if (!Utils::isUnset($request->certType)) {
+            $body['CertType'] = $request->certType;
+        }
+        if (!Utils::isUnset($request->certifyId)) {
+            $body['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->deviceToken)) {
+            $body['DeviceToken'] = $request->deviceToken;
+        }
+        if (!Utils::isUnset($request->encryptType)) {
+            $body['EncryptType'] = $request->encryptType;
+        }
+        if (!Utils::isUnset($request->faceContrastFile)) {
+            $body['FaceContrastFile'] = $request->faceContrastFile;
+        }
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        if (!Utils::isUnset($request->faceContrastPictureUrl)) {
+            $body['FaceContrastPictureUrl'] = $request->faceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->ip)) {
+            $body['Ip'] = $request->ip;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $body['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->ossBucketName)) {
+            $body['OssBucketName'] = $request->ossBucketName;
+        }
+        if (!Utils::isUnset($request->ossObjectName)) {
+            $body['OssObjectName'] = $request->ossObjectName;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $body['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $body['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $body['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $body['UserId'] = $request->userId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'ContrastFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return ContrastFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param ContrastFaceVerifyRequest $request
+     *
+     * @return ContrastFaceVerifyResponse
+     */
+    public function contrastFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->contrastFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param ContrastFaceVerifyAdvanceRequest $request
+     * @param RuntimeOptions                   $runtime
+     *
+     * @return ContrastFaceVerifyResponse
+     */
+    public function contrastFaceVerifyAdvance($request, $runtime)
+    {
+        // Step 0: init client
+        $accessKeyId          = $this->_credential->getAccessKeyId();
+        $accessKeySecret      = $this->_credential->getAccessKeySecret();
+        $securityToken        = $this->_credential->getSecurityToken();
+        $credentialType       = $this->_credential->getType();
+        $openPlatformEndpoint = $this->_openPlatformEndpoint;
+        if (Utils::isUnset($openPlatformEndpoint)) {
+            $openPlatformEndpoint = 'openplatform.aliyuncs.com';
+        }
+        if (Utils::isUnset($credentialType)) {
+            $credentialType = 'access_key';
+        }
+        $authConfig = new Config([
+            'accessKeyId'     => $accessKeyId,
+            'accessKeySecret' => $accessKeySecret,
+            'securityToken'   => $securityToken,
+            'type'            => $credentialType,
+            'endpoint'        => $openPlatformEndpoint,
+            'protocol'        => $this->_protocol,
+            'regionId'        => $this->_regionId,
+        ]);
+        $authClient  = new OpenPlatform($authConfig);
+        $authRequest = new AuthorizeFileUploadRequest([
+            'product'  => 'Cloudauth',
+            'regionId' => $this->_regionId,
+        ]);
+        $authResponse = new AuthorizeFileUploadResponse([]);
+        $ossConfig    = new \AlibabaCloud\SDK\OSS\OSS\Config([
+            'accessKeySecret' => $accessKeySecret,
+            'type'            => 'access_key',
+            'protocol'        => $this->_protocol,
+            'regionId'        => $this->_regionId,
+        ]);
+        $ossClient     = null;
+        $fileObj       = new FileField([]);
+        $ossHeader     = new header([]);
+        $uploadRequest = new PostObjectRequest([]);
+        $ossRuntime    = new \AlibabaCloud\Tea\OSSUtils\OSSUtils\RuntimeOptions([]);
+        OpenApiUtilClient::convert($runtime, $ossRuntime);
+        $contrastFaceVerifyReq = new ContrastFaceVerifyRequest([]);
+        OpenApiUtilClient::convert($request, $contrastFaceVerifyReq);
+        if (!Utils::isUnset($request->faceContrastFileObject)) {
+            $authResponse           = $authClient->authorizeFileUploadWithOptions($authRequest, $runtime);
+            $ossConfig->accessKeyId = $authResponse->body->accessKeyId;
+            $ossConfig->endpoint    = OpenApiUtilClient::getEndpoint($authResponse->body->endpoint, $authResponse->body->useAccelerate, $this->_endpointType);
+            $ossClient              = new OSS($ossConfig);
+            $fileObj                = new FileField([
+                'filename'    => $authResponse->body->objectKey,
+                'content'     => $request->faceContrastFileObject,
+                'contentType' => '',
+            ]);
+            $ossHeader = new header([
+                'accessKeyId'         => $authResponse->body->accessKeyId,
+                'policy'              => $authResponse->body->encodedPolicy,
+                'signature'           => $authResponse->body->signature,
+                'key'                 => $authResponse->body->objectKey,
+                'file'                => $fileObj,
+                'successActionStatus' => '201',
+            ]);
+            $uploadRequest = new PostObjectRequest([
+                'bucketName' => $authResponse->body->bucket,
+                'header'     => $ossHeader,
+            ]);
+            $ossClient->postObject($uploadRequest, $ossRuntime);
+            $contrastFaceVerifyReq->faceContrastFile = 'http://' . $authResponse->body->bucket . '.' . $authResponse->body->endpoint . '/' . $authResponse->body->objectKey . '';
+        }
+
+        return $this->contrastFaceVerifyWithOptions($contrastFaceVerifyReq, $runtime);
+    }
+
+    /**
+     * @param CreateAuthKeyRequest $request
+     * @param RuntimeOptions       $runtime
+     *
+     * @return CreateAuthKeyResponse
+     */
+    public function createAuthKeyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->authYears)) {
+            $query['AuthYears'] = $request->authYears;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->test)) {
+            $query['Test'] = $request->test;
+        }
+        if (!Utils::isUnset($request->userDeviceId)) {
+            $query['UserDeviceId'] = $request->userDeviceId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'CreateAuthKey',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return CreateAuthKeyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param CreateAuthKeyRequest $request
+     *
+     * @return CreateAuthKeyResponse
+     */
+    public function createAuthKey($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->createAuthKeyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param CreateVerifySettingRequest $request
+     * @param RuntimeOptions             $runtime
+     *
+     * @return CreateVerifySettingResponse
+     */
+    public function createVerifySettingWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizName)) {
+            $query['BizName'] = $request->bizName;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->guideStep)) {
+            $query['GuideStep'] = $request->guideStep;
+        }
+        if (!Utils::isUnset($request->privacyStep)) {
+            $query['PrivacyStep'] = $request->privacyStep;
+        }
+        if (!Utils::isUnset($request->resultStep)) {
+            $query['ResultStep'] = $request->resultStep;
+        }
+        if (!Utils::isUnset($request->solution)) {
+            $query['Solution'] = $request->solution;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'CreateVerifySetting',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return CreateVerifySettingResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param CreateVerifySettingRequest $request
+     *
+     * @return CreateVerifySettingResponse
+     */
+    public function createVerifySetting($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->createVerifySettingWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param DescribeDeviceInfoRequest $request
+     * @param RuntimeOptions            $runtime
+     *
+     * @return DescribeDeviceInfoResponse
+     */
+    public function describeDeviceInfoWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->currentPage)) {
+            $query['CurrentPage'] = $request->currentPage;
+        }
+        if (!Utils::isUnset($request->deviceId)) {
+            $query['DeviceId'] = $request->deviceId;
+        }
+        if (!Utils::isUnset($request->expiredEndDay)) {
+            $query['ExpiredEndDay'] = $request->expiredEndDay;
+        }
+        if (!Utils::isUnset($request->expiredStartDay)) {
+            $query['ExpiredStartDay'] = $request->expiredStartDay;
+        }
+        if (!Utils::isUnset($request->pageSize)) {
+            $query['PageSize'] = $request->pageSize;
+        }
+        if (!Utils::isUnset($request->userDeviceId)) {
+            $query['UserDeviceId'] = $request->userDeviceId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeDeviceInfo',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeDeviceInfoResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param DescribeDeviceInfoRequest $request
+     *
+     * @return DescribeDeviceInfoResponse
+     */
+    public function describeDeviceInfo($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeDeviceInfoWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param DescribeFaceVerifyRequest $request
+     * @param RuntimeOptions            $runtime
+     *
+     * @return DescribeFaceVerifyResponse
+     */
+    public function describeFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->certifyId)) {
+            $query['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->pictureReturnType)) {
+            $query['PictureReturnType'] = $request->pictureReturnType;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $query['SceneId'] = $request->sceneId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param DescribeFaceVerifyRequest $request
+     *
+     * @return DescribeFaceVerifyResponse
+     */
+    public function describeFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param RuntimeOptions $runtime
+     *
+     * @return DescribeOssUploadTokenResponse
+     */
+    public function describeOssUploadTokenWithOptions($runtime)
+    {
+        $req    = new OpenApiRequest([]);
+        $params = new Params([
+            'action'      => 'DescribeOssUploadToken',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeOssUploadTokenResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @return DescribeOssUploadTokenResponse
+     */
+    public function describeOssUploadToken()
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeOssUploadTokenWithOptions($runtime);
+    }
+
+    /**
+     * @param DescribeSmartStatisticsPageListRequest $request
+     * @param RuntimeOptions                         $runtime
+     *
+     * @return DescribeSmartStatisticsPageListResponse
+     */
+    public function describeSmartStatisticsPageListWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->currentPage)) {
+            $query['CurrentPage'] = $request->currentPage;
+        }
+        if (!Utils::isUnset($request->endDate)) {
+            $query['EndDate'] = $request->endDate;
+        }
+        if (!Utils::isUnset($request->pageSize)) {
+            $query['PageSize'] = $request->pageSize;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $query['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->serviceCode)) {
+            $query['ServiceCode'] = $request->serviceCode;
+        }
+        if (!Utils::isUnset($request->startDate)) {
+            $query['StartDate'] = $request->startDate;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeSmartStatisticsPageList',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return DescribeSmartStatisticsPageListResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param DescribeSmartStatisticsPageListRequest $request
+     *
+     * @return DescribeSmartStatisticsPageListResponse
+     */
+    public function describeSmartStatisticsPageList($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->describeSmartStatisticsPageListWithOptions($request, $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 Id2MetaVerifyRequest $request
+     * @param RuntimeOptions       $runtime
+     *
+     * @return Id2MetaVerifyResponse
+     */
+    public function id2MetaVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->identifyNum)) {
+            $query['IdentifyNum'] = $request->identifyNum;
+        }
+        if (!Utils::isUnset($request->paramType)) {
+            $query['ParamType'] = $request->paramType;
+        }
+        if (!Utils::isUnset($request->userName)) {
+            $query['UserName'] = $request->userName;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'Id2MetaVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return Id2MetaVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param Id2MetaVerifyRequest $request
+     *
+     * @return Id2MetaVerifyResponse
+     */
+    public function id2MetaVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->id2MetaVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param InitFaceVerifyRequest $request
+     * @param RuntimeOptions        $runtime
+     *
+     * @return InitFaceVerifyResponse
+     */
+    public function initFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->birthday)) {
+            $query['Birthday'] = $request->birthday;
+        }
+        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->certifyUrlStyle)) {
+            $query['CertifyUrlStyle'] = $request->certifyUrlStyle;
+        }
+        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->faceGuardOutput)) {
+            $query['FaceGuardOutput'] = $request->faceGuardOutput;
+        }
+        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->mode)) {
+            $query['Mode'] = $request->mode;
+        }
+        if (!Utils::isUnset($request->ossBucketName)) {
+            $query['OssBucketName'] = $request->ossBucketName;
+        }
+        if (!Utils::isUnset($request->ossObjectName)) {
+            $query['OssObjectName'] = $request->ossObjectName;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $query['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->procedurePriority)) {
+            $query['ProcedurePriority'] = $request->procedurePriority;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $query['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->rarelyCharacters)) {
+            $query['RarelyCharacters'] = $request->rarelyCharacters;
+        }
+        if (!Utils::isUnset($request->readImg)) {
+            $query['ReadImg'] = $request->readImg;
+        }
+        if (!Utils::isUnset($request->returnUrl)) {
+            $query['ReturnUrl'] = $request->returnUrl;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $query['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->suitableType)) {
+            $query['SuitableType'] = $request->suitableType;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $query['UserId'] = $request->userId;
+        }
+        if (!Utils::isUnset($request->validityDate)) {
+            $query['ValidityDate'] = $request->validityDate;
+        }
+        if (!Utils::isUnset($request->voluntaryCustomizedContent)) {
+            $query['VoluntaryCustomizedContent'] = $request->voluntaryCustomizedContent;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->authId)) {
+            $body['AuthId'] = $request->authId;
+        }
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        if (!Utils::isUnset($request->model)) {
+            $body['Model'] = $request->model;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'InitFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return InitFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param InitFaceVerifyRequest $request
+     *
+     * @return InitFaceVerifyResponse
+     */
+    public function initFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->initFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param LivenessFaceVerifyRequest $request
+     * @param RuntimeOptions            $runtime
+     *
+     * @return LivenessFaceVerifyResponse
+     */
+    public function livenessFaceVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->model)) {
+            $query['Model'] = $request->model;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->certifyId)) {
+            $body['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->deviceToken)) {
+            $body['DeviceToken'] = $request->deviceToken;
+        }
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        if (!Utils::isUnset($request->faceContrastPictureUrl)) {
+            $body['FaceContrastPictureUrl'] = $request->faceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->ip)) {
+            $body['Ip'] = $request->ip;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $body['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->ossBucketName)) {
+            $body['OssBucketName'] = $request->ossBucketName;
+        }
+        if (!Utils::isUnset($request->ossObjectName)) {
+            $body['OssObjectName'] = $request->ossObjectName;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $body['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $body['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $body['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $body['UserId'] = $request->userId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'LivenessFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return LivenessFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param LivenessFaceVerifyRequest $request
+     *
+     * @return LivenessFaceVerifyResponse
+     */
+    public function livenessFaceVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->livenessFaceVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param Mobile3MetaDetailVerifyRequest $request
+     * @param RuntimeOptions                 $runtime
+     *
+     * @return Mobile3MetaDetailVerifyResponse
+     */
+    public function mobile3MetaDetailVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->identifyNum)) {
+            $query['IdentifyNum'] = $request->identifyNum;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $query['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->paramType)) {
+            $query['ParamType'] = $request->paramType;
+        }
+        if (!Utils::isUnset($request->userName)) {
+            $query['UserName'] = $request->userName;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'Mobile3MetaDetailVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return Mobile3MetaDetailVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param Mobile3MetaDetailVerifyRequest $request
+     *
+     * @return Mobile3MetaDetailVerifyResponse
+     */
+    public function mobile3MetaDetailVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->mobile3MetaDetailVerifyWithOptions($request, $runtime);
+    }
+
+    /**
+     * @param Mobile3MetaSimpleVerifyRequest $request
+     * @param RuntimeOptions                 $runtime
+     *
+     * @return Mobile3MetaSimpleVerifyResponse
+     */
+    public function mobile3MetaSimpleVerifyWithOptions($request, $runtime)
+    {
+        Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->identifyNum)) {
+            $query['IdentifyNum'] = $request->identifyNum;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $query['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->paramType)) {
+            $query['ParamType'] = $request->paramType;
+        }
+        if (!Utils::isUnset($request->userName)) {
+            $query['UserName'] = $request->userName;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'Mobile3MetaSimpleVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
+
+        return Mobile3MetaSimpleVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
+    }
+
+    /**
+     * @param Mobile3MetaSimpleVerifyRequest $request
+     *
+     * @return Mobile3MetaSimpleVerifyResponse
+     */
+    public function mobile3MetaSimpleVerify($request)
+    {
+        $runtime = new RuntimeOptions([]);
+
+        return $this->mobile3MetaSimpleVerifyWithOptions($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);
+    }
+}

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

@@ -0,0 +1,133 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class AIGCFaceVerifyRequest extends Model
+{
+    /**
+     * @example /9j/4AAQSkZJRgABAQAASxxxxxxx
+     *
+     * @var string
+     */
+    public $faceContrastPicture;
+
+    /**
+     * @example https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg
+     *
+     * @var string
+     */
+    public $faceContrastPictureUrl;
+
+    /**
+     * @example cn-shanghai-aliyun-cloudauth-xxxxx
+     *
+     * @var string
+     */
+    public $ossBucketName;
+
+    /**
+     * @example verify/xxxxx/xxxxxx.jpeg
+     *
+     * @var string
+     */
+    public $ossObjectName;
+
+    /**
+     * @example e0c34a77f5ac40a5aa5e6ed20c353888
+     *
+     * @var string
+     */
+    public $outerOrderNo;
+
+    /**
+     * @example LR_FR_AIGC
+     *
+     * @var string
+     */
+    public $productCode;
+
+    /**
+     * @example 100000xxxx
+     *
+     * @var int
+     */
+    public $sceneId;
+    protected $_name = [
+        'faceContrastPicture'    => 'FaceContrastPicture',
+        'faceContrastPictureUrl' => 'FaceContrastPictureUrl',
+        'ossBucketName'          => 'OssBucketName',
+        'ossObjectName'          => 'OssObjectName',
+        'outerOrderNo'           => 'OuterOrderNo',
+        'productCode'            => 'ProductCode',
+        'sceneId'                => 'SceneId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceContrastPicture) {
+            $res['FaceContrastPicture'] = $this->faceContrastPicture;
+        }
+        if (null !== $this->faceContrastPictureUrl) {
+            $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
+        }
+        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;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return AIGCFaceVerifyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceContrastPicture'])) {
+            $model->faceContrastPicture = $map['FaceContrastPicture'];
+        }
+        if (isset($map['FaceContrastPictureUrl'])) {
+            $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
+        }
+        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'];
+        }
+
+        return $model;
+    }
+}

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/AIGCFaceVerifyResponse.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 AIGCFaceVerifyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var AIGCFaceVerifyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+    }
+
+    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 AIGCFaceVerifyResponse
+     */
+    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 = AIGCFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

@@ -0,0 +1,90 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\AIGCFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class AIGCFaceVerifyResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @example success
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
+     *
+     * @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 AIGCFaceVerifyResponseBody
+     */
+    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;
+    }
+}

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFaceVerifyResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFaceVerifyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = CompareFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CompareFacesResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFacesResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = CompareFacesResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ContrastFaceVerifyResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ContrastFaceVerifyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = ContrastFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CreateAuthKeyResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateAuthKeyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = CreateAuthKeyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/CreateVerifySettingResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateVerifySettingResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = CreateVerifySettingResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeDeviceInfoResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeDeviceInfoResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeDeviceInfoResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeFaceVerifyResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeFaceVerifyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeOssUploadTokenResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeOssUploadTokenResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeOssUploadTokenResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

+ 119 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeSmartStatisticsPageListRequest.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 DescribeSmartStatisticsPageListRequest extends Model
+{
+    /**
+     * @example 1
+     *
+     * @var string
+     */
+    public $currentPage;
+
+    /**
+     * @example 2022-11-16 23:59:59 +0800
+     *
+     * @var string
+     */
+    public $endDate;
+
+    /**
+     * @example 10
+     *
+     * @var string
+     */
+    public $pageSize;
+
+    /**
+     * @example 36**01
+     *
+     * @var string
+     */
+    public $sceneId;
+
+    /**
+     * @example cloudauthst
+     *
+     * @var string
+     */
+    public $serviceCode;
+
+    /**
+     * @example 2023-11-01 00:00:00 +0800
+     *
+     * @var string
+     */
+    public $startDate;
+    protected $_name = [
+        'currentPage' => 'CurrentPage',
+        'endDate'     => 'EndDate',
+        'pageSize'    => 'PageSize',
+        'sceneId'     => 'SceneId',
+        'serviceCode' => 'ServiceCode',
+        'startDate'   => 'StartDate',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->currentPage) {
+            $res['CurrentPage'] = $this->currentPage;
+        }
+        if (null !== $this->endDate) {
+            $res['EndDate'] = $this->endDate;
+        }
+        if (null !== $this->pageSize) {
+            $res['PageSize'] = $this->pageSize;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->serviceCode) {
+            $res['ServiceCode'] = $this->serviceCode;
+        }
+        if (null !== $this->startDate) {
+            $res['StartDate'] = $this->startDate;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeSmartStatisticsPageListRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CurrentPage'])) {
+            $model->currentPage = $map['CurrentPage'];
+        }
+        if (isset($map['EndDate'])) {
+            $model->endDate = $map['EndDate'];
+        }
+        if (isset($map['PageSize'])) {
+            $model->pageSize = $map['PageSize'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['ServiceCode'])) {
+            $model->serviceCode = $map['ServiceCode'];
+        }
+        if (isset($map['StartDate'])) {
+            $model->startDate = $map['StartDate'];
+        }
+
+        return $model;
+    }
+}

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeSmartStatisticsPageListResponse.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 DescribeSmartStatisticsPageListResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var DescribeSmartStatisticsPageListResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+    }
+
+    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 DescribeSmartStatisticsPageListResponse
+     */
+    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 = DescribeSmartStatisticsPageListResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

@@ -0,0 +1,130 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeSmartStatisticsPageListResponseBody\items;
+use AlibabaCloud\Tea\Model;
+
+class DescribeSmartStatisticsPageListResponseBody extends Model
+{
+    /**
+     * @example 1
+     *
+     * @var int
+     */
+    public $currentPage;
+
+    /**
+     * @var items[]
+     */
+    public $items;
+
+    /**
+     * @example 10
+     *
+     * @var int
+     */
+    public $pageSize;
+
+    /**
+     * @example 96943***4E39F805
+     *
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @example 29
+     *
+     * @var int
+     */
+    public $totalCount;
+
+    /**
+     * @example 3
+     *
+     * @var int
+     */
+    public $totalPage;
+    protected $_name = [
+        'currentPage' => 'CurrentPage',
+        'items'       => 'Items',
+        'pageSize'    => 'PageSize',
+        'requestId'   => 'RequestId',
+        'totalCount'  => 'TotalCount',
+        'totalPage'   => 'TotalPage',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->currentPage) {
+            $res['CurrentPage'] = $this->currentPage;
+        }
+        if (null !== $this->items) {
+            $res['Items'] = [];
+            if (null !== $this->items && \is_array($this->items)) {
+                $n = 0;
+                foreach ($this->items as $item) {
+                    $res['Items'][$n++] = null !== $item ? $item->toMap() : $item;
+                }
+            }
+        }
+        if (null !== $this->pageSize) {
+            $res['PageSize'] = $this->pageSize;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->totalCount) {
+            $res['TotalCount'] = $this->totalCount;
+        }
+        if (null !== $this->totalPage) {
+            $res['TotalPage'] = $this->totalPage;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeSmartStatisticsPageListResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CurrentPage'])) {
+            $model->currentPage = $map['CurrentPage'];
+        }
+        if (isset($map['Items'])) {
+            if (!empty($map['Items'])) {
+                $model->items = [];
+                $n            = 0;
+                foreach ($map['Items'] as $item) {
+                    $model->items[$n++] = null !== $item ? items::fromMap($item) : $item;
+                }
+            }
+        }
+        if (isset($map['PageSize'])) {
+            $model->pageSize = $map['PageSize'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['TotalCount'])) {
+            $model->totalCount = $map['TotalCount'];
+        }
+        if (isset($map['TotalPage'])) {
+            $model->totalPage = $map['TotalPage'];
+        }
+
+        return $model;
+    }
+}

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

@@ -0,0 +1,131 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeSmartStatisticsPageListResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class items extends Model
+{
+    /**
+     * @example 11/8
+     *
+     * @var string
+     */
+    public $date;
+
+    /**
+     * @example 25
+     *
+     * @var string
+     */
+    public $passRate;
+
+    /**
+     * @example SMART_VERIFY
+     *
+     * @var string
+     */
+    public $productCode;
+
+    /**
+     * @example 20**40
+     *
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @var string
+     */
+    public $sceneName;
+
+    /**
+     * @example 1
+     *
+     * @var int
+     */
+    public $successCount;
+
+    /**
+     * @example 4
+     *
+     * @var int
+     */
+    public $totalCount;
+    protected $_name = [
+        'date'         => 'Date',
+        'passRate'     => 'PassRate',
+        'productCode'  => 'ProductCode',
+        'sceneId'      => 'SceneId',
+        'sceneName'    => 'SceneName',
+        'successCount' => 'SuccessCount',
+        'totalCount'   => 'TotalCount',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->date) {
+            $res['Date'] = $this->date;
+        }
+        if (null !== $this->passRate) {
+            $res['PassRate'] = $this->passRate;
+        }
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->sceneName) {
+            $res['SceneName'] = $this->sceneName;
+        }
+        if (null !== $this->successCount) {
+            $res['SuccessCount'] = $this->successCount;
+        }
+        if (null !== $this->totalCount) {
+            $res['TotalCount'] = $this->totalCount;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return items
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Date'])) {
+            $model->date = $map['Date'];
+        }
+        if (isset($map['PassRate'])) {
+            $model->passRate = $map['PassRate'];
+        }
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['SceneName'])) {
+            $model->sceneName = $map['SceneName'];
+        }
+        if (isset($map['SuccessCount'])) {
+            $model->successCount = $map['SuccessCount'];
+        }
+        if (isset($map['TotalCount'])) {
+            $model->totalCount = $map['TotalCount'];
+        }
+
+        return $model;
+    }
+}

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyResultResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyResultResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeVerifyResultResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifySDKResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifySDKResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeVerifySDKResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DescribeVerifyTokenResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyTokenResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DescribeVerifyTokenResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/DetectFaceAttributesResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DetectFaceAttributesResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = DetectFaceAttributesResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/Id2MetaVerifyResponse.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 Id2MetaVerifyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var Id2MetaVerifyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+    }
+
+    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 Id2MetaVerifyResponse
+     */
+    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 = Id2MetaVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

@@ -0,0 +1,90 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\Id2MetaVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class Id2MetaVerifyResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @example success
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example D6163397-15C5-419C-9ACC-B7C83E0B4C10
+     *
+     * @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 Id2MetaVerifyResponseBody
+     */
+    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;
+    }
+}

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

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

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

@@ -0,0 +1,461 @@
+<?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 $birthday;
+
+    /**
+     * @var string
+     */
+    public $callbackToken;
+
+    /**
+     * @var string
+     */
+    public $callbackUrl;
+
+    /**
+     * @var string
+     */
+    public $certName;
+
+    /**
+     * @example 330103xxxxxxxxxxxx
+     *
+     * @var string
+     */
+    public $certNo;
+
+    /**
+     * @example IDENTITY_CARD
+     *
+     * @var string
+     */
+    public $certType;
+
+    /**
+     * @example 0bfa7c493f850e5178b9f8613634c9xx
+     *
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $certifyUrlStyle;
+
+    /**
+     * @var string
+     */
+    public $certifyUrlType;
+
+    /**
+     * @var string
+     */
+    public $crop;
+
+    /**
+     * @var string
+     */
+    public $encryptType;
+
+    /**
+     * @example /9j/4AAQSkZJRgABAQAASxxxxxxx
+     *
+     * @var string
+     */
+    public $faceContrastPicture;
+
+    /**
+     * @example https://cn-shanghai-aliyun-cloudauth-xxxxxx.oss-cn-shanghai.aliyuncs.com/verify/xxxxx/xxxxx.jpeg
+     *
+     * @var string
+     */
+    public $faceContrastPictureUrl;
+
+    /**
+     * @var string
+     */
+    public $faceGuardOutput;
+
+    /**
+     * @example 114.xxx.xxx.xxx
+     *
+     * @var string
+     */
+    public $ip;
+
+    /**
+     * @example {"zimVer":"3.0.0","appVersion": "1","bioMetaInfo": "4.1.0:11501568,0","appName": "com.aliyun.antcloudauth","deviceType": "ios","osVersion": "iOS 10.3.2","apdidToken": "","deviceModel": "iPhone9,1"}
+     *
+     * @var string
+     */
+    public $metaInfo;
+
+    /**
+     * @example 130xxxxxxxx
+     *
+     * @var string
+     */
+    public $mobile;
+
+    /**
+     * @var string
+     */
+    public $mode;
+
+    /**
+     * @var string
+     */
+    public $model;
+
+    /**
+     * @example cn-shanghai-aliyun-cloudauth-xxxxx
+     *
+     * @var string
+     */
+    public $ossBucketName;
+
+    /**
+     * @example verify/xxxxx/xxxxxx.jpeg
+     *
+     * @var string
+     */
+    public $ossObjectName;
+
+    /**
+     * @example e0c34a77f5ac40a5aa5e6ed20c353888
+     *
+     * @var string
+     */
+    public $outerOrderNo;
+
+    /**
+     * @var string
+     */
+    public $procedurePriority;
+
+    /**
+     * @example ID_PRO
+     *
+     * @var string
+     */
+    public $productCode;
+
+    /**
+     * @var string
+     */
+    public $rarelyCharacters;
+
+    /**
+     * @var string
+     */
+    public $readImg;
+
+    /**
+     * @example www.aliyun.com
+     *
+     * @var string
+     */
+    public $returnUrl;
+
+    /**
+     * @example 1000000006
+     *
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @var string
+     */
+    public $suitableType;
+
+    /**
+     * @example 123456789
+     *
+     * @var string
+     */
+    public $userId;
+
+    /**
+     * @var string
+     */
+    public $validityDate;
+
+    /**
+     * @var string
+     */
+    public $voluntaryCustomizedContent;
+    protected $_name = [
+        'authId'                     => 'AuthId',
+        'birthday'                   => 'Birthday',
+        'callbackToken'              => 'CallbackToken',
+        'callbackUrl'                => 'CallbackUrl',
+        'certName'                   => 'CertName',
+        'certNo'                     => 'CertNo',
+        'certType'                   => 'CertType',
+        'certifyId'                  => 'CertifyId',
+        'certifyUrlStyle'            => 'CertifyUrlStyle',
+        'certifyUrlType'             => 'CertifyUrlType',
+        'crop'                       => 'Crop',
+        'encryptType'                => 'EncryptType',
+        'faceContrastPicture'        => 'FaceContrastPicture',
+        'faceContrastPictureUrl'     => 'FaceContrastPictureUrl',
+        'faceGuardOutput'            => 'FaceGuardOutput',
+        'ip'                         => 'Ip',
+        'metaInfo'                   => 'MetaInfo',
+        'mobile'                     => 'Mobile',
+        'mode'                       => 'Mode',
+        'model'                      => 'Model',
+        'ossBucketName'              => 'OssBucketName',
+        'ossObjectName'              => 'OssObjectName',
+        'outerOrderNo'               => 'OuterOrderNo',
+        'procedurePriority'          => 'ProcedurePriority',
+        'productCode'                => 'ProductCode',
+        'rarelyCharacters'           => 'RarelyCharacters',
+        'readImg'                    => 'ReadImg',
+        'returnUrl'                  => 'ReturnUrl',
+        'sceneId'                    => 'SceneId',
+        'suitableType'               => 'SuitableType',
+        'userId'                     => 'UserId',
+        'validityDate'               => 'ValidityDate',
+        'voluntaryCustomizedContent' => 'VoluntaryCustomizedContent',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->authId) {
+            $res['AuthId'] = $this->authId;
+        }
+        if (null !== $this->birthday) {
+            $res['Birthday'] = $this->birthday;
+        }
+        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->certifyUrlStyle) {
+            $res['CertifyUrlStyle'] = $this->certifyUrlStyle;
+        }
+        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->faceGuardOutput) {
+            $res['FaceGuardOutput'] = $this->faceGuardOutput;
+        }
+        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->mode) {
+            $res['Mode'] = $this->mode;
+        }
+        if (null !== $this->model) {
+            $res['Model'] = $this->model;
+        }
+        if (null !== $this->ossBucketName) {
+            $res['OssBucketName'] = $this->ossBucketName;
+        }
+        if (null !== $this->ossObjectName) {
+            $res['OssObjectName'] = $this->ossObjectName;
+        }
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
+        }
+        if (null !== $this->procedurePriority) {
+            $res['ProcedurePriority'] = $this->procedurePriority;
+        }
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->rarelyCharacters) {
+            $res['RarelyCharacters'] = $this->rarelyCharacters;
+        }
+        if (null !== $this->readImg) {
+            $res['ReadImg'] = $this->readImg;
+        }
+        if (null !== $this->returnUrl) {
+            $res['ReturnUrl'] = $this->returnUrl;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->suitableType) {
+            $res['SuitableType'] = $this->suitableType;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
+        }
+        if (null !== $this->validityDate) {
+            $res['ValidityDate'] = $this->validityDate;
+        }
+        if (null !== $this->voluntaryCustomizedContent) {
+            $res['VoluntaryCustomizedContent'] = $this->voluntaryCustomizedContent;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return InitFaceVerifyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AuthId'])) {
+            $model->authId = $map['AuthId'];
+        }
+        if (isset($map['Birthday'])) {
+            $model->birthday = $map['Birthday'];
+        }
+        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['CertifyUrlStyle'])) {
+            $model->certifyUrlStyle = $map['CertifyUrlStyle'];
+        }
+        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['FaceGuardOutput'])) {
+            $model->faceGuardOutput = $map['FaceGuardOutput'];
+        }
+        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['Mode'])) {
+            $model->mode = $map['Mode'];
+        }
+        if (isset($map['Model'])) {
+            $model->model = $map['Model'];
+        }
+        if (isset($map['OssBucketName'])) {
+            $model->ossBucketName = $map['OssBucketName'];
+        }
+        if (isset($map['OssObjectName'])) {
+            $model->ossObjectName = $map['OssObjectName'];
+        }
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
+        }
+        if (isset($map['ProcedurePriority'])) {
+            $model->procedurePriority = $map['ProcedurePriority'];
+        }
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['RarelyCharacters'])) {
+            $model->rarelyCharacters = $map['RarelyCharacters'];
+        }
+        if (isset($map['ReadImg'])) {
+            $model->readImg = $map['ReadImg'];
+        }
+        if (isset($map['ReturnUrl'])) {
+            $model->returnUrl = $map['ReturnUrl'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['SuitableType'])) {
+            $model->suitableType = $map['SuitableType'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
+        }
+        if (isset($map['ValidityDate'])) {
+            $model->validityDate = $map['ValidityDate'];
+        }
+        if (isset($map['VoluntaryCustomizedContent'])) {
+            $model->voluntaryCustomizedContent = $map['VoluntaryCustomizedContent'];
+        }
+
+        return $model;
+    }
+}

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/InitFaceVerifyResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return InitFaceVerifyResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = InitFaceVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/LivenessFaceVerifyResponse.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 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()
+    {
+    }
+
+    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;
+    }
+}

+ 89 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaDetailVerifyRequest.php

@@ -0,0 +1,89 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class Mobile3MetaDetailVerifyRequest extends Model
+{
+    /**
+     * @example 520181199902104631
+     *
+     * @var string
+     */
+    public $identifyNum;
+
+    /**
+     * @example 150000xxxx
+     *
+     * @var string
+     */
+    public $mobile;
+
+    /**
+     * @example normal
+     *
+     * @var string
+     */
+    public $paramType;
+
+    /**
+     * @var string
+     */
+    public $userName;
+    protected $_name = [
+        'identifyNum' => 'IdentifyNum',
+        'mobile'      => 'Mobile',
+        'paramType'   => 'ParamType',
+        'userName'    => 'UserName',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->identifyNum) {
+            $res['IdentifyNum'] = $this->identifyNum;
+        }
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
+        }
+        if (null !== $this->paramType) {
+            $res['ParamType'] = $this->paramType;
+        }
+        if (null !== $this->userName) {
+            $res['UserName'] = $this->userName;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return Mobile3MetaDetailVerifyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['IdentifyNum'])) {
+            $model->identifyNum = $map['IdentifyNum'];
+        }
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
+        }
+        if (isset($map['ParamType'])) {
+            $model->paramType = $map['ParamType'];
+        }
+        if (isset($map['UserName'])) {
+            $model->userName = $map['UserName'];
+        }
+
+        return $model;
+    }
+}

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaDetailVerifyResponse.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 Mobile3MetaDetailVerifyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var Mobile3MetaDetailVerifyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+    }
+
+    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 Mobile3MetaDetailVerifyResponse
+     */
+    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 = Mobile3MetaDetailVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

@@ -0,0 +1,90 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\Mobile3MetaDetailVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class Mobile3MetaDetailVerifyResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @example success
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example 5A6229C0-E156-48E4-B6EC-0F528BDF60D2
+     *
+     * @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 Mobile3MetaDetailVerifyResponseBody
+     */
+    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;
+    }
+}

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

@@ -0,0 +1,77 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\Mobile3MetaDetailVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @example 1
+     *
+     * @var string
+     */
+    public $bizCode;
+
+    /**
+     * @example CMCC
+     *
+     * @var string
+     */
+    public $ispName;
+
+    /**
+     * @example 101
+     *
+     * @var string
+     */
+    public $subCode;
+    protected $_name = [
+        'bizCode' => 'BizCode',
+        'ispName' => 'IspName',
+        'subCode' => 'SubCode',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizCode) {
+            $res['BizCode'] = $this->bizCode;
+        }
+        if (null !== $this->ispName) {
+            $res['IspName'] = $this->ispName;
+        }
+        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['BizCode'])) {
+            $model->bizCode = $map['BizCode'];
+        }
+        if (isset($map['IspName'])) {
+            $model->ispName = $map['IspName'];
+        }
+        if (isset($map['SubCode'])) {
+            $model->subCode = $map['SubCode'];
+        }
+
+        return $model;
+    }
+}

+ 89 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaSimpleVerifyRequest.php

@@ -0,0 +1,89 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class Mobile3MetaSimpleVerifyRequest extends Model
+{
+    /**
+     * @example 429001********8211
+     *
+     * @var string
+     */
+    public $identifyNum;
+
+    /**
+     * @example 150000****
+     *
+     * @var string
+     */
+    public $mobile;
+
+    /**
+     * @example normal
+     *
+     * @var string
+     */
+    public $paramType;
+
+    /**
+     * @var string
+     */
+    public $userName;
+    protected $_name = [
+        'identifyNum' => 'IdentifyNum',
+        'mobile'      => 'Mobile',
+        'paramType'   => 'ParamType',
+        'userName'    => 'UserName',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->identifyNum) {
+            $res['IdentifyNum'] = $this->identifyNum;
+        }
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
+        }
+        if (null !== $this->paramType) {
+            $res['ParamType'] = $this->paramType;
+        }
+        if (null !== $this->userName) {
+            $res['UserName'] = $this->userName;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return Mobile3MetaSimpleVerifyRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['IdentifyNum'])) {
+            $model->identifyNum = $map['IdentifyNum'];
+        }
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
+        }
+        if (isset($map['ParamType'])) {
+            $model->paramType = $map['ParamType'];
+        }
+        if (isset($map['UserName'])) {
+            $model->userName = $map['UserName'];
+        }
+
+        return $model;
+    }
+}

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/Mobile3MetaSimpleVerifyResponse.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 Mobile3MetaSimpleVerifyResponse extends Model
+{
+    /**
+     * @var string[]
+     */
+    public $headers;
+
+    /**
+     * @var int
+     */
+    public $statusCode;
+
+    /**
+     * @var Mobile3MetaSimpleVerifyResponseBody
+     */
+    public $body;
+    protected $_name = [
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
+    ];
+
+    public function validate()
+    {
+    }
+
+    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 Mobile3MetaSimpleVerifyResponse
+     */
+    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 = Mobile3MetaSimpleVerifyResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

@@ -0,0 +1,90 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\Mobile3MetaSimpleVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class Mobile3MetaSimpleVerifyResponseBody extends Model
+{
+    /**
+     * @example 200
+     *
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @example success
+     *
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @example 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
+     *
+     * @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 Mobile3MetaSimpleVerifyResponseBody
+     */
+    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;
+    }
+}

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

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

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

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

+ 71 - 0
vendor/alibabacloud/cloudauth-20190307/src/Models/ModifyDeviceInfoResponse.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 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()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ModifyDeviceInfoResponse
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
+        }
+        if (isset($map['body'])) {
+            $model->body = ModifyDeviceInfoResponseBody::fromMap($map['body']);
+        }
+
+        return $model;
+    }
+}

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

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

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

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

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor