tencentcloud-sdk-nodejs-intl-en 3.0.521 → 3.0.524

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,24 +17,36 @@
17
17
  const AbstractModel = require("../../common/abstract_model");
18
18
 
19
19
  /**
20
- * GenerateReflectSequence response structure.
20
+ * GetLivenessResult response structure.
21
21
  * @class
22
22
  */
23
- class GenerateReflectSequenceResponse extends AbstractModel {
23
+ class GetLivenessResultResponse extends AbstractModel {
24
24
  constructor(){
25
25
  super();
26
26
 
27
27
  /**
28
- * The resource URL of the light sequence, which needs to be downloaded and passed through to the SDK to start the identity verification process.
28
+ * The final verification result.
29
29
  * @type {string || null}
30
30
  */
31
- this.ReflectSequenceUrl = null;
31
+ this.Result = null;
32
32
 
33
33
  /**
34
- * The MD5 hash value of the light sequence, which is used to check whether the light sequence is altered.
34
+ * The description of the final verification result.
35
35
  * @type {string || null}
36
36
  */
37
- this.ReflectSequenceMd5 = null;
37
+ this.Description = null;
38
+
39
+ /**
40
+ * The face screenshot.
41
+ * @type {FileInfo || null}
42
+ */
43
+ this.BestFrame = null;
44
+
45
+ /**
46
+ * The video for the detection.
47
+ * @type {FileInfo || null}
48
+ */
49
+ this.Video = null;
38
50
 
39
51
  /**
40
52
  * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
@@ -51,38 +63,68 @@ class GenerateReflectSequenceResponse extends AbstractModel {
51
63
  if (!params) {
52
64
  return;
53
65
  }
54
- this.ReflectSequenceUrl = 'ReflectSequenceUrl' in params ? params.ReflectSequenceUrl : null;
55
- this.ReflectSequenceMd5 = 'ReflectSequenceMd5' in params ? params.ReflectSequenceMd5 : null;
66
+ this.Result = 'Result' in params ? params.Result : null;
67
+ this.Description = 'Description' in params ? params.Description : null;
68
+
69
+ if (params.BestFrame) {
70
+ let obj = new FileInfo();
71
+ obj.deserialize(params.BestFrame)
72
+ this.BestFrame = obj;
73
+ }
74
+
75
+ if (params.Video) {
76
+ let obj = new FileInfo();
77
+ obj.deserialize(params.Video)
78
+ this.Video = obj;
79
+ }
56
80
  this.RequestId = 'RequestId' in params ? params.RequestId : null;
57
81
 
58
82
  }
59
83
  }
60
84
 
61
85
  /**
62
- * CreateUploadUrl response structure.
86
+ * GetSdkVerificationResult response structure.
63
87
  * @class
64
88
  */
65
- class CreateUploadUrlResponse extends AbstractModel {
89
+ class GetSdkVerificationResultResponse extends AbstractModel {
66
90
  constructor(){
67
91
  super();
68
92
 
69
93
  /**
70
- * The URL for uploading contents with the `HTTP PUT` method.
94
+ * The result of the entire verification process.
71
95
  * @type {string || null}
72
96
  */
73
- this.UploadUrl = null;
97
+ this.Result = null;
74
98
 
75
99
  /**
76
- * The resource URL obtained after this upload is completed and to be passed in where it is required later.
100
+ * The result description.
77
101
  * @type {string || null}
78
102
  */
79
- this.ResourceUrl = null;
103
+ this.Description = null;
80
104
 
81
105
  /**
82
- * The point in time when the upload/download link expires, which is a 10-bit Unix timestamp.
106
+ * The charge count.
83
107
  * @type {number || null}
84
108
  */
85
- this.ExpiredTimestamp = null;
109
+ this.ChargeCount = null;
110
+
111
+ /**
112
+ * The results of multiple OCR processes (in order). The result of the final process is taken as the valid result.
113
+ * @type {Array.<CardVerifyResult> || null}
114
+ */
115
+ this.CardVerifyResults = null;
116
+
117
+ /**
118
+ * The results of multiple liveness detection processes (in order). The result of the final process is taken as the valid result.
119
+ * @type {Array.<CompareResult> || null}
120
+ */
121
+ this.CompareResults = null;
122
+
123
+ /**
124
+ * Info passed in the process of getting the token.
125
+ * @type {string || null}
126
+ */
127
+ this.Extra = null;
86
128
 
87
129
  /**
88
130
  * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
@@ -99,105 +141,103 @@ class CreateUploadUrlResponse extends AbstractModel {
99
141
  if (!params) {
100
142
  return;
101
143
  }
102
- this.UploadUrl = 'UploadUrl' in params ? params.UploadUrl : null;
103
- this.ResourceUrl = 'ResourceUrl' in params ? params.ResourceUrl : null;
104
- this.ExpiredTimestamp = 'ExpiredTimestamp' in params ? params.ExpiredTimestamp : null;
144
+ this.Result = 'Result' in params ? params.Result : null;
145
+ this.Description = 'Description' in params ? params.Description : null;
146
+ this.ChargeCount = 'ChargeCount' in params ? params.ChargeCount : null;
147
+
148
+ if (params.CardVerifyResults) {
149
+ this.CardVerifyResults = new Array();
150
+ for (let z in params.CardVerifyResults) {
151
+ let obj = new CardVerifyResult();
152
+ obj.deserialize(params.CardVerifyResults[z]);
153
+ this.CardVerifyResults.push(obj);
154
+ }
155
+ }
156
+
157
+ if (params.CompareResults) {
158
+ this.CompareResults = new Array();
159
+ for (let z in params.CompareResults) {
160
+ let obj = new CompareResult();
161
+ obj.deserialize(params.CompareResults[z]);
162
+ this.CompareResults.push(obj);
163
+ }
164
+ }
165
+ this.Extra = 'Extra' in params ? params.Extra : null;
105
166
  this.RequestId = 'RequestId' in params ? params.RequestId : null;
106
167
 
107
168
  }
108
169
  }
109
170
 
110
171
  /**
111
- * LivenessCompare response structure.
172
+ * The details of the verification process.
112
173
  * @class
113
174
  */
114
- class LivenessCompareResponse extends AbstractModel {
175
+ class VerificationDetail extends AbstractModel {
115
176
  constructor(){
116
177
  super();
117
178
 
118
179
  /**
119
- * The best screenshot of the video after successful verification. The photo is Base64-encoded and in JPG format.
120
- * @type {string || null}
180
+ * The final result of this verification. `0` indicates that the person is the same as that in the photo.
181
+ Note: This field may return null, indicating that no valid values can be obtained.
182
+ * @type {number || null}
121
183
  */
122
- this.BestFrameBase64 = null;
184
+ this.ErrorCode = null;
123
185
 
124
186
  /**
125
- * Similarity. Value range: [0.00, 100.00]. As a recommendation, when the similarity is greater than or equal to 70, it can be determined that the two faces are of the same person. You can adjust the threshold according to your specific scenario (the FAR at the threshold of 70 is 0.1%, and FAR at the threshold of 80 is 0.01%).
126
- * @type {number || null}
187
+ * The description of the final verification result.
188
+ Note: This field may return null, indicating that no valid values can be obtained.
189
+ * @type {string || null}
127
190
  */
128
- this.Sim = null;
191
+ this.ErrorMsg = null;
129
192
 
130
193
  /**
131
- * Service error code. `Success` will be returned for success. For error information, please see the `FailedOperation` section in the error code list below.
132
- * @type {string || null}
194
+ * The result of this liveness detection process. `0` indicates success.
195
+ Note: This field may return null, indicating that no valid values can be obtained.
196
+ * @type {number || null}
133
197
  */
134
- this.Result = null;
198
+ this.LivenessErrorCode = null;
135
199
 
136
200
  /**
137
- * Service result description.
201
+ * The result description of this liveness detection process.
202
+ Note: This field may return null, indicating that no valid values can be obtained.
138
203
  * @type {string || null}
139
204
  */
140
- this.Description = null;
205
+ this.LivenessErrorMsg = null;
141
206
 
142
207
  /**
143
- *
144
- * @type {Array.<string> || null}
208
+ * The result of this comparison process. `0` indicates that the person in the best face screenshot collected from the video stream is the same as that in the uploaded image for comparison.
209
+ Note: This field may return null, indicating that no valid values can be obtained.
210
+ * @type {number || null}
145
211
  */
146
- this.BestFrameList = null;
212
+ this.CompareErrorCode = null;
147
213
 
148
214
  /**
149
- * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
215
+ * The result description of this comparison process.
216
+ Note: This field may return null, indicating that no valid values can be obtained.
150
217
  * @type {string || null}
151
218
  */
152
- this.RequestId = null;
153
-
154
- }
155
-
156
- /**
157
- * @private
158
- */
159
- deserialize(params) {
160
- if (!params) {
161
- return;
162
- }
163
- this.BestFrameBase64 = 'BestFrameBase64' in params ? params.BestFrameBase64 : null;
164
- this.Sim = 'Sim' in params ? params.Sim : null;
165
- this.Result = 'Result' in params ? params.Result : null;
166
- this.Description = 'Description' in params ? params.Description : null;
167
- this.BestFrameList = 'BestFrameList' in params ? params.BestFrameList : null;
168
- this.RequestId = 'RequestId' in params ? params.RequestId : null;
169
-
170
- }
171
- }
172
-
173
- /**
174
- * GenerateReflectSequence request structure.
175
- * @class
176
- */
177
- class GenerateReflectSequenceRequest extends AbstractModel {
178
- constructor(){
179
- super();
219
+ this.CompareErrorMsg = null;
180
220
 
181
221
  /**
182
- * The resource URL of the data package generated by the SDK.
183
- * @type {string || null}
222
+ * The timestamp (ms) of this verification process.
223
+ Note: This field may return null, indicating that no valid values can be obtained.
224
+ * @type {number || null}
184
225
  */
185
- this.DeviceDataUrl = null;
226
+ this.ReqTimestamp = null;
186
227
 
187
228
  /**
188
- * The MD5 hash value of the data package generated by the SDK.
189
- * @type {string || null}
229
+ * The similarity of the best face screenshot collected from the video stream and the uploaded image for comparison in this verification process. Valid range: [0.00, 100.00]. By default, the person in the screenshot is judged as the same person in the image if the similarity is greater than or equal to 70.
230
+ Note: This field may return null, indicating that no valid values can be obtained.
231
+ * @type {number || null}
190
232
  */
191
- this.DeviceDataMd5 = null;
233
+ this.Similarity = null;
192
234
 
193
235
  /**
194
- * 1 - silent
195
- 2 - blinking
196
- 3 - light
197
- 4 - blinking + light (default)
236
+ * Unique ID of this verification process.
237
+ Note: This field may return null, indicating that no valid values can be obtained.
198
238
  * @type {string || null}
199
239
  */
200
- this.SecurityLevel = null;
240
+ this.Seq = null;
201
241
 
202
242
  }
203
243
 
@@ -208,50 +248,56 @@ class GenerateReflectSequenceRequest extends AbstractModel {
208
248
  if (!params) {
209
249
  return;
210
250
  }
211
- this.DeviceDataUrl = 'DeviceDataUrl' in params ? params.DeviceDataUrl : null;
212
- this.DeviceDataMd5 = 'DeviceDataMd5' in params ? params.DeviceDataMd5 : null;
213
- this.SecurityLevel = 'SecurityLevel' in params ? params.SecurityLevel : null;
251
+ this.ErrorCode = 'ErrorCode' in params ? params.ErrorCode : null;
252
+ this.ErrorMsg = 'ErrorMsg' in params ? params.ErrorMsg : null;
253
+ this.LivenessErrorCode = 'LivenessErrorCode' in params ? params.LivenessErrorCode : null;
254
+ this.LivenessErrorMsg = 'LivenessErrorMsg' in params ? params.LivenessErrorMsg : null;
255
+ this.CompareErrorCode = 'CompareErrorCode' in params ? params.CompareErrorCode : null;
256
+ this.CompareErrorMsg = 'CompareErrorMsg' in params ? params.CompareErrorMsg : null;
257
+ this.ReqTimestamp = 'ReqTimestamp' in params ? params.ReqTimestamp : null;
258
+ this.Similarity = 'Similarity' in params ? params.Similarity : null;
259
+ this.Seq = 'Seq' in params ? params.Seq : null;
214
260
 
215
261
  }
216
262
  }
217
263
 
218
264
  /**
219
- * DetectReflectLivenessAndCompare response structure.
265
+ * LivenessCompare response structure.
220
266
  * @class
221
267
  */
222
- class DetectReflectLivenessAndCompareResponse extends AbstractModel {
268
+ class LivenessCompareResponse extends AbstractModel {
223
269
  constructor(){
224
270
  super();
225
271
 
226
272
  /**
227
- * Temporary URL of the best screenshot (.jpg) of the video after successful verification. Both the screenshot and the URL are valid for two hours only, so you need to download the screenshot within this period.
273
+ * The best screenshot of the video after successful verification. The photo is Base64-encoded and in JPG format.
228
274
  * @type {string || null}
229
275
  */
230
- this.BestFrameUrl = null;
276
+ this.BestFrameBase64 = null;
231
277
 
232
278
  /**
233
- * MD5 hash value (32-bit) of the best screenshot of the video after successful verification, which is used to verify the `BestFrame` consistency.
234
- * @type {string || null}
279
+ * Similarity. Value range: [0.00, 100.00]. As a recommendation, when the similarity is greater than or equal to 70, it can be determined that the two faces are of the same person. You can adjust the threshold according to your specific scenario (the FAR at the threshold of 70 is 0.1%, and FAR at the threshold of 80 is 0.01%).
280
+ * @type {number || null}
235
281
  */
236
- this.BestFrameMd5 = null;
282
+ this.Sim = null;
237
283
 
238
284
  /**
239
- * Service error code. `Success` will be returned for success. For error information, see the `FailedOperation` section in the error code list below.
285
+ * Service error code. `Success` will be returned for success. For error information, please see the `FailedOperation` section in the error code list below.
240
286
  * @type {string || null}
241
287
  */
242
288
  this.Result = null;
243
289
 
244
290
  /**
245
- * Service result description
291
+ * Service result description.
246
292
  * @type {string || null}
247
293
  */
248
294
  this.Description = null;
249
295
 
250
296
  /**
251
- * Similarity. Value range: [0.00, 100.00]. As a recommendation, when the similarity is greater than or equal to 70, it can be determined that the two faces are of the same person. You can adjust the threshold according to your specific scenario (the FAR at the threshold of 70 is 0.1%, and FAR at the threshold of 80 is 0.01%).
252
- * @type {number || null}
297
+ *
298
+ * @type {Array.<string> || null}
253
299
  */
254
- this.Sim = null;
300
+ this.BestFrameList = null;
255
301
 
256
302
  /**
257
303
  * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
@@ -268,48 +314,41 @@ class DetectReflectLivenessAndCompareResponse extends AbstractModel {
268
314
  if (!params) {
269
315
  return;
270
316
  }
271
- this.BestFrameUrl = 'BestFrameUrl' in params ? params.BestFrameUrl : null;
272
- this.BestFrameMd5 = 'BestFrameMd5' in params ? params.BestFrameMd5 : null;
317
+ this.BestFrameBase64 = 'BestFrameBase64' in params ? params.BestFrameBase64 : null;
318
+ this.Sim = 'Sim' in params ? params.Sim : null;
273
319
  this.Result = 'Result' in params ? params.Result : null;
274
320
  this.Description = 'Description' in params ? params.Description : null;
275
- this.Sim = 'Sim' in params ? params.Sim : null;
321
+ this.BestFrameList = 'BestFrameList' in params ? params.BestFrameList : null;
276
322
  this.RequestId = 'RequestId' in params ? params.RequestId : null;
277
323
 
278
324
  }
279
325
  }
280
326
 
281
327
  /**
282
- * VideoLivenessCompare response structure.
328
+ * CreateUploadUrl response structure.
283
329
  * @class
284
330
  */
285
- class VideoLivenessCompareResponse extends AbstractModel {
331
+ class CreateUploadUrlResponse extends AbstractModel {
286
332
  constructor(){
287
333
  super();
288
334
 
289
335
  /**
290
- * The similarity. Value range: [0.00, 100.00]. As a recommendation, when the similarity is greater than or equal to 70, it can be determined that the two persons are of the same person. You can adjust the threshold according to your specific scenario (the FARs at the thresholds of 70 and 80 are 0.1% and 0.01%, respectively).
291
- * @type {number || null}
292
- */
293
- this.Sim = null;
294
-
295
- /**
296
- * The service error code. `Success` will be returned for success. For error information, see the `FailedOperation` section in the error code list below.
336
+ * The URL for uploading contents with the `HTTP PUT` method.
297
337
  * @type {string || null}
298
338
  */
299
- this.Result = null;
339
+ this.UploadUrl = null;
300
340
 
301
341
  /**
302
- * The service result description
342
+ * The resource URL obtained after this upload is completed and to be passed in where it is required later.
303
343
  * @type {string || null}
304
344
  */
305
- this.Description = null;
345
+ this.ResourceUrl = null;
306
346
 
307
347
  /**
308
- * The best video screenshot after successful verification
309
- Note: This field may return null, indicating that no valid values can be obtained.
310
- * @type {FileInfo || null}
348
+ * The point in time when the upload/download link expires, which is a 10-bit Unix timestamp.
349
+ * @type {number || null}
311
350
  */
312
- this.BestFrame = null;
351
+ this.ExpiredTimestamp = null;
313
352
 
314
353
  /**
315
354
  * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
@@ -326,15 +365,9 @@ Note: This field may return null, indicating that no valid values can be obtaine
326
365
  if (!params) {
327
366
  return;
328
367
  }
329
- this.Sim = 'Sim' in params ? params.Sim : null;
330
- this.Result = 'Result' in params ? params.Result : null;
331
- this.Description = 'Description' in params ? params.Description : null;
332
-
333
- if (params.BestFrame) {
334
- let obj = new FileInfo();
335
- obj.deserialize(params.BestFrame)
336
- this.BestFrame = obj;
337
- }
368
+ this.UploadUrl = 'UploadUrl' in params ? params.UploadUrl : null;
369
+ this.ResourceUrl = 'ResourceUrl' in params ? params.ResourceUrl : null;
370
+ this.ExpiredTimestamp = 'ExpiredTimestamp' in params ? params.ExpiredTimestamp : null;
338
371
  this.RequestId = 'RequestId' in params ? params.RequestId : null;
339
372
 
340
373
  }
@@ -390,76 +423,100 @@ class DetectReflectLivenessAndCompareRequest extends AbstractModel {
390
423
  }
391
424
 
392
425
  /**
393
- * LivenessCompare request structure.
426
+ * VideoLivenessCompare request structure.
394
427
  * @class
395
428
  */
396
- class LivenessCompareRequest extends AbstractModel {
429
+ class VideoLivenessCompareRequest extends AbstractModel {
397
430
  constructor(){
398
431
  super();
399
432
 
400
433
  /**
401
- * Liveness detection type. Valid values: LIP/ACTION/SILENT.
402
- LIP: numeric mode; ACTION: motion mode; SILENT: silent mode. You need to select a mode to input.
434
+ * The URL of the photo for face comparison. The downloaded image after Base64 encoding can be up to 3 MB and must be in JPG or PNG.
435
+
436
+ The image must be stored in a COS bucket in the region where the FaceID service resides to ensure a higher download speed and better stability. You can generate an image URL by using `CreateUploadUrl` or purchase the COS service.
403
437
  * @type {string || null}
404
438
  */
405
- this.LivenessType = null;
439
+ this.ImageUrl = null;
406
440
 
407
441
  /**
408
- * Base64 string of the image for face comparison.
409
- The size of the Base64-encoded image data can be up to 3 MB. JPG and PNG formats are supported.
410
- Please use the standard Base64 encoding scheme (with the "=" padding). For the encoding conventions, please see RFC 4648.
411
-
412
- Either the `ImageUrl` or `ImageBase64` of the image must be provided. If both are provided, only `ImageBase64` will be used.
442
+ * The 32-bit MD5 checksum of the image for comparison
413
443
  * @type {string || null}
414
444
  */
415
- this.ImageBase64 = null;
445
+ this.ImageMd5 = null;
416
446
 
417
447
  /**
418
- * URL of the image for face comparison. The size of the downloaded image after Base64 encoding can be up to 3 MB. JPG and PNG formats are supported.
419
-
420
- Either the `ImageUrl` or `ImageBase64` of the image must be provided. If both are provided, only `ImageBase64` will be used.
448
+ * The URL of the video for liveness detection. The downloaded video after Base64 encoding can be up to 8 MB and must be in MP4, AVI, or FLV. It takes no more than 4s to download the video.
421
449
 
422
- We recommend you store the image in Tencent Cloud, as a Tencent Cloud URL can guarantee higher download speed and stability. The download speed and stability of non-Tencent Cloud URLs may be low.
450
+ The video must be stored in a COS bucket in the region where the FaceID service resides to ensure a higher download speed and better stability. You can generate a video URL by using `CreateUploadUrl` or purchase the COS service.
423
451
  * @type {string || null}
424
452
  */
425
- this.ImageUrl = null;
453
+ this.VideoUrl = null;
426
454
 
427
455
  /**
428
- * Lip mode: set this parameter to a custom 4-digit verification code.
429
- Action mode: set this parameter to a custom action sequence (e.g., `2,1` or `1,2`).
430
- Silent mode: do not pass in this parameter.
456
+ * The 32-bit MD5 checksum of the video
431
457
  * @type {string || null}
432
458
  */
433
- this.ValidateData = null;
459
+ this.VideoMd5 = null;
434
460
 
435
461
  /**
436
- * Optional configuration (a JSON string)
437
- {
438
- "BestFrameNum": 2 // Return multiple best screenshots. Value range: 2−10
439
- }
462
+ * The liveness detection type. Valid values: `LIP`, `ACTION`, and `SILENT`.
463
+ `LIP`: Numeric mode; `ACTION`: Motion mode; `SILENT`: silent mode. Select one of them.
440
464
  * @type {string || null}
441
465
  */
442
- this.Optional = null;
466
+ this.LivenessType = null;
443
467
 
444
468
  /**
445
- * Base64 string of the video for liveness detection.
446
- The size of the Base64-encoded video data can be up to 8 MB. MP4, AVI, and FLV formats are supported.
447
- Please use the standard Base64 encoding scheme (with the "=" padding). For the encoding conventions, please see RFC 4648.
448
-
449
- Either the `VideoUrl` or `VideoBase64` of the video must be provided. If both are provided, only `VideoBase64` will be used.
469
+ * LIP parameter: Pass in a custom 4-digit verification code.
470
+ ACTION parameter: Pass in a custom action sequence (`2,1` or `1,2`).
471
+ SILENT parameter: Null.
450
472
  * @type {string || null}
451
473
  */
452
- this.VideoBase64 = null;
453
-
454
- /**
455
- * URL of the video for liveness detection. The size of the downloaded video after Base64 encoding can be up to 8 MB. It takes no more than 4 seconds to download. MP4, AVI, and FLV formats are supported.
474
+ this.ValidateData = null;
456
475
 
457
- Either the `VideoUrl` or `VideoBase64` of the video must be provided. If both are provided, only `VideoBase64` will be used.
476
+ }
458
477
 
459
- We recommend you store the video in Tencent Cloud, as a Tencent Cloud URL can guarantee higher download speed and stability. The download speed and stability of non-Tencent Cloud URLs may be low.
478
+ /**
479
+ * @private
480
+ */
481
+ deserialize(params) {
482
+ if (!params) {
483
+ return;
484
+ }
485
+ this.ImageUrl = 'ImageUrl' in params ? params.ImageUrl : null;
486
+ this.ImageMd5 = 'ImageMd5' in params ? params.ImageMd5 : null;
487
+ this.VideoUrl = 'VideoUrl' in params ? params.VideoUrl : null;
488
+ this.VideoMd5 = 'VideoMd5' in params ? params.VideoMd5 : null;
489
+ this.LivenessType = 'LivenessType' in params ? params.LivenessType : null;
490
+ this.ValidateData = 'ValidateData' in params ? params.ValidateData : null;
491
+
492
+ }
493
+ }
494
+
495
+ /**
496
+ * ApplyWebVerificationToken response structure.
497
+ * @class
498
+ */
499
+ class ApplyWebVerificationTokenResponse extends AbstractModel {
500
+ constructor(){
501
+ super();
502
+
503
+ /**
504
+ * The verification URL to be opened with a browser to start the verification process.
460
505
  * @type {string || null}
461
506
  */
462
- this.VideoUrl = null;
507
+ this.VerificationUrl = null;
508
+
509
+ /**
510
+ * The token used to identify a web-based verification process. It is valid for 7,200s and can be used to get the verification result after the process is completed.
511
+ * @type {string || null}
512
+ */
513
+ this.BizToken = null;
514
+
515
+ /**
516
+ * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
517
+ * @type {string || null}
518
+ */
519
+ this.RequestId = null;
463
520
 
464
521
  }
465
522
 
@@ -470,30 +527,26 @@ We recommend you store the video in Tencent Cloud, as a Tencent Cloud URL can gu
470
527
  if (!params) {
471
528
  return;
472
529
  }
473
- this.LivenessType = 'LivenessType' in params ? params.LivenessType : null;
474
- this.ImageBase64 = 'ImageBase64' in params ? params.ImageBase64 : null;
475
- this.ImageUrl = 'ImageUrl' in params ? params.ImageUrl : null;
476
- this.ValidateData = 'ValidateData' in params ? params.ValidateData : null;
477
- this.Optional = 'Optional' in params ? params.Optional : null;
478
- this.VideoBase64 = 'VideoBase64' in params ? params.VideoBase64 : null;
479
- this.VideoUrl = 'VideoUrl' in params ? params.VideoUrl : null;
530
+ this.VerificationUrl = 'VerificationUrl' in params ? params.VerificationUrl : null;
531
+ this.BizToken = 'BizToken' in params ? params.BizToken : null;
532
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
480
533
 
481
534
  }
482
535
  }
483
536
 
484
537
  /**
485
- * CreateUploadUrl request structure.
538
+ * GetWebVerificationResult request structure.
486
539
  * @class
487
540
  */
488
- class CreateUploadUrlRequest extends AbstractModel {
541
+ class GetWebVerificationResultRequest extends AbstractModel {
489
542
  constructor(){
490
543
  super();
491
544
 
492
545
  /**
493
- * Target API
546
+ * The token for the web-based verification, which is generated with the `ApplyWebVerificationToken` API.
494
547
  * @type {string || null}
495
548
  */
496
- this.TargetAction = null;
549
+ this.BizToken = null;
497
550
 
498
551
  }
499
552
 
@@ -504,7 +557,7 @@ class CreateUploadUrlRequest extends AbstractModel {
504
557
  if (!params) {
505
558
  return;
506
559
  }
507
- this.TargetAction = 'TargetAction' in params ? params.TargetAction : null;
560
+ this.BizToken = 'BizToken' in params ? params.BizToken : null;
508
561
 
509
562
  }
510
563
  }
@@ -552,55 +605,149 @@ class FileInfo extends AbstractModel {
552
605
  }
553
606
 
554
607
  /**
555
- * VideoLivenessCompare request structure.
608
+ * ApplySdkVerificationToken request structure.
556
609
  * @class
557
610
  */
558
- class VideoLivenessCompareRequest extends AbstractModel {
611
+ class ApplySdkVerificationTokenRequest extends AbstractModel {
559
612
  constructor(){
560
613
  super();
561
614
 
562
615
  /**
563
- * The URL of the photo for face comparison. The downloaded image after Base64 encoding can be up to 3 MB and must be in JPG or PNG.
616
+ * Whether ID card authentication is required. If not, only document OCR will be performed. Currently, authentication is available only when the value of `IdCardType` is `HK`.
617
+ * @type {boolean || null}
618
+ */
619
+ this.NeedVerifyIdCard = null;
564
620
 
565
- The image must be stored in a COS bucket in the region where the FaceID service resides to ensure a higher download speed and better stability. You can generate an image URL by using `CreateUploadUrl` or purchase the COS service.
621
+ /**
622
+ * Card type. Valid values: `HK` (Hong Kong ID cards) (default), `ML` (Malaysian ID cards), `PhilippinesVoteID` (Philippine voters ID cards), and `PhilippinesDrivingLicense` (Philippine driving licenses).
566
623
  * @type {string || null}
567
624
  */
568
- this.ImageUrl = null;
625
+ this.IdCardType = null;
569
626
 
570
627
  /**
571
- * The 32-bit MD5 checksum of the image for comparison
628
+ * Disable the modification of the OCR result by the user. Default value: `false` (modification allowed).
629
+ * @type {boolean || null}
630
+ */
631
+ this.DisableChangeOcrResult = null;
632
+
633
+ /**
634
+ * Disable the OCR warnings. Default value: `false` (not disable), where OCR warnings are enabled and the OCR result will not be returned based on the warnings. If the value of `NeedVerifyIdCard` is `true`, the value of this field will also be `true`.
635
+ * @type {boolean || null}
636
+ */
637
+ this.DisableCheckOcrWarnings = null;
638
+
639
+ /**
640
+ * A passthrough field, which is returned together with the verification result and can contain up to 1,024 bits.
572
641
  * @type {string || null}
573
642
  */
574
- this.ImageMd5 = null;
643
+ this.Extra = null;
644
+
645
+ }
646
+
647
+ /**
648
+ * @private
649
+ */
650
+ deserialize(params) {
651
+ if (!params) {
652
+ return;
653
+ }
654
+ this.NeedVerifyIdCard = 'NeedVerifyIdCard' in params ? params.NeedVerifyIdCard : null;
655
+ this.IdCardType = 'IdCardType' in params ? params.IdCardType : null;
656
+ this.DisableChangeOcrResult = 'DisableChangeOcrResult' in params ? params.DisableChangeOcrResult : null;
657
+ this.DisableCheckOcrWarnings = 'DisableCheckOcrWarnings' in params ? params.DisableCheckOcrWarnings : null;
658
+ this.Extra = 'Extra' in params ? params.Extra : null;
659
+
660
+ }
661
+ }
662
+
663
+ /**
664
+ * GenerateReflectSequence request structure.
665
+ * @class
666
+ */
667
+ class GenerateReflectSequenceRequest extends AbstractModel {
668
+ constructor(){
669
+ super();
575
670
 
576
671
  /**
577
- * The URL of the video for liveness detection. The downloaded video after Base64 encoding can be up to 8 MB and must be in MP4, AVI, or FLV. It takes no more than 4s to download the video.
672
+ * The resource URL of the data package generated by the SDK.
673
+ * @type {string || null}
674
+ */
675
+ this.DeviceDataUrl = null;
578
676
 
579
- The video must be stored in a COS bucket in the region where the FaceID service resides to ensure a higher download speed and better stability. You can generate a video URL by using `CreateUploadUrl` or purchase the COS service.
677
+ /**
678
+ * The MD5 hash value of the data package generated by the SDK.
580
679
  * @type {string || null}
581
680
  */
582
- this.VideoUrl = null;
681
+ this.DeviceDataMd5 = null;
583
682
 
584
683
  /**
585
- * The 32-bit MD5 checksum of the video
684
+ * 1 - silent
685
+ 2 - blinking
686
+ 3 - light
687
+ 4 - blinking + light (default)
586
688
  * @type {string || null}
587
689
  */
588
- this.VideoMd5 = null;
690
+ this.SecurityLevel = null;
691
+
692
+ }
693
+
694
+ /**
695
+ * @private
696
+ */
697
+ deserialize(params) {
698
+ if (!params) {
699
+ return;
700
+ }
701
+ this.DeviceDataUrl = 'DeviceDataUrl' in params ? params.DeviceDataUrl : null;
702
+ this.DeviceDataMd5 = 'DeviceDataMd5' in params ? params.DeviceDataMd5 : null;
703
+ this.SecurityLevel = 'SecurityLevel' in params ? params.SecurityLevel : null;
704
+
705
+ }
706
+ }
707
+
708
+ /**
709
+ * DetectReflectLivenessAndCompare response structure.
710
+ * @class
711
+ */
712
+ class DetectReflectLivenessAndCompareResponse extends AbstractModel {
713
+ constructor(){
714
+ super();
589
715
 
590
716
  /**
591
- * The liveness detection type. Valid values: `LIP`, `ACTION`, and `SILENT`.
592
- `LIP`: Numeric mode; `ACTION`: Motion mode; `SILENT`: silent mode. Select one of them.
717
+ * Temporary URL of the best screenshot (.jpg) of the video after successful verification. Both the screenshot and the URL are valid for two hours only, so you need to download the screenshot within this period.
593
718
  * @type {string || null}
594
719
  */
595
- this.LivenessType = null;
720
+ this.BestFrameUrl = null;
596
721
 
597
722
  /**
598
- * LIP parameter: Pass in a custom 4-digit verification code.
599
- ACTION parameter: Pass in a custom action sequence (`2,1` or `1,2`).
600
- SILENT parameter: Null.
723
+ * MD5 hash value (32-bit) of the best screenshot of the video after successful verification, which is used to verify the `BestFrame` consistency.
601
724
  * @type {string || null}
602
725
  */
603
- this.ValidateData = null;
726
+ this.BestFrameMd5 = null;
727
+
728
+ /**
729
+ * Service error code. `Success` will be returned for success. For error information, see the `FailedOperation` section in the error code list below.
730
+ * @type {string || null}
731
+ */
732
+ this.Result = null;
733
+
734
+ /**
735
+ * Service result description
736
+ * @type {string || null}
737
+ */
738
+ this.Description = null;
739
+
740
+ /**
741
+ * Similarity. Value range: [0.00, 100.00]. As a recommendation, when the similarity is greater than or equal to 70, it can be determined that the two faces are of the same person. You can adjust the threshold according to your specific scenario (the FAR at the threshold of 70 is 0.1%, and FAR at the threshold of 80 is 0.01%).
742
+ * @type {number || null}
743
+ */
744
+ this.Sim = null;
745
+
746
+ /**
747
+ * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
748
+ * @type {string || null}
749
+ */
750
+ this.RequestId = null;
604
751
 
605
752
  }
606
753
 
@@ -611,27 +758,845 @@ SILENT parameter: Null.
611
758
  if (!params) {
612
759
  return;
613
760
  }
614
- this.ImageUrl = 'ImageUrl' in params ? params.ImageUrl : null;
615
- this.ImageMd5 = 'ImageMd5' in params ? params.ImageMd5 : null;
616
- this.VideoUrl = 'VideoUrl' in params ? params.VideoUrl : null;
617
- this.VideoMd5 = 'VideoMd5' in params ? params.VideoMd5 : null;
618
- this.LivenessType = 'LivenessType' in params ? params.LivenessType : null;
619
- this.ValidateData = 'ValidateData' in params ? params.ValidateData : null;
761
+ this.BestFrameUrl = 'BestFrameUrl' in params ? params.BestFrameUrl : null;
762
+ this.BestFrameMd5 = 'BestFrameMd5' in params ? params.BestFrameMd5 : null;
763
+ this.Result = 'Result' in params ? params.Result : null;
764
+ this.Description = 'Description' in params ? params.Description : null;
765
+ this.Sim = 'Sim' in params ? params.Sim : null;
766
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
620
767
 
621
768
  }
622
769
  }
623
770
 
624
- module.exports = {
625
- GenerateReflectSequenceResponse: GenerateReflectSequenceResponse,
626
- CreateUploadUrlResponse: CreateUploadUrlResponse,
627
- LivenessCompareResponse: LivenessCompareResponse,
628
- GenerateReflectSequenceRequest: GenerateReflectSequenceRequest,
629
- DetectReflectLivenessAndCompareResponse: DetectReflectLivenessAndCompareResponse,
630
- VideoLivenessCompareResponse: VideoLivenessCompareResponse,
631
- DetectReflectLivenessAndCompareRequest: DetectReflectLivenessAndCompareRequest,
632
- LivenessCompareRequest: LivenessCompareRequest,
633
- CreateUploadUrlRequest: CreateUploadUrlRequest,
634
- FileInfo: FileInfo,
635
- VideoLivenessCompareRequest: VideoLivenessCompareRequest,
771
+ /**
772
+ * VideoLivenessCompare response structure.
773
+ * @class
774
+ */
775
+ class VideoLivenessCompareResponse extends AbstractModel {
776
+ constructor(){
777
+ super();
778
+
779
+ /**
780
+ * The similarity. Value range: [0.00, 100.00]. As a recommendation, when the similarity is greater than or equal to 70, it can be determined that the two persons are of the same person. You can adjust the threshold according to your specific scenario (the FARs at the thresholds of 70 and 80 are 0.1% and 0.01%, respectively).
781
+ * @type {number || null}
782
+ */
783
+ this.Sim = null;
784
+
785
+ /**
786
+ * The service error code. `Success` will be returned for success. For error information, see the `FailedOperation` section in the error code list below.
787
+ * @type {string || null}
788
+ */
789
+ this.Result = null;
790
+
791
+ /**
792
+ * The service result description
793
+ * @type {string || null}
794
+ */
795
+ this.Description = null;
796
+
797
+ /**
798
+ * The best video screenshot after successful verification
799
+ Note: This field may return null, indicating that no valid values can be obtained.
800
+ * @type {FileInfo || null}
801
+ */
802
+ this.BestFrame = null;
803
+
804
+ /**
805
+ * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
806
+ * @type {string || null}
807
+ */
808
+ this.RequestId = null;
809
+
810
+ }
811
+
812
+ /**
813
+ * @private
814
+ */
815
+ deserialize(params) {
816
+ if (!params) {
817
+ return;
818
+ }
819
+ this.Sim = 'Sim' in params ? params.Sim : null;
820
+ this.Result = 'Result' in params ? params.Result : null;
821
+ this.Description = 'Description' in params ? params.Description : null;
822
+
823
+ if (params.BestFrame) {
824
+ let obj = new FileInfo();
825
+ obj.deserialize(params.BestFrame)
826
+ this.BestFrame = obj;
827
+ }
828
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
829
+
830
+ }
831
+ }
832
+
833
+ /**
834
+ * The result of a single authentication or OCR process during the identity verification.
835
+ * @class
836
+ */
837
+ class CardVerifyResult extends AbstractModel {
838
+ constructor(){
839
+ super();
840
+
841
+ /**
842
+ * Whether the authentication or OCR process is successful.
843
+ * @type {boolean || null}
844
+ */
845
+ this.IsPass = null;
846
+
847
+ /**
848
+ * The video for ID card authentication. This field is returned only if the video-based ID card authentication is enabled. The URL is valid for 10 minutes.
849
+ Note: This field may return null, indicating that no valid values can be obtained.
850
+ * @type {FileInfo || null}
851
+ */
852
+ this.CardVideo = null;
853
+
854
+ /**
855
+ * The identity document image. The URL is valid for 10 minutes.
856
+ Note: This field may return null, indicating that no valid values can be obtained.
857
+ * @type {FileInfo || null}
858
+ */
859
+ this.CardImage = null;
860
+
861
+ /**
862
+ * The OCR result (in JSON) of the identity document image. If authentication or OCR fails, this parameter is left empty. The URL is valid for 10 minutes.
863
+ When the value of `IdCardType` is `HK`:
864
+ - CnName string: Chinese name
865
+ - EnName string: English name
866
+ - TelexCode string: The code corresponding to the Chinese name
867
+ - Sex string: Gender. Valid values: `M` (male) and `F` (female).
868
+ - Birthday string: Date of birth.
869
+ - Permanent int: Whether it is a permanent residence identity card. Valid values: `0` (non-permanent), `1` (permanent), and `-1` (unknown).
870
+ - IdNum string: ID number.
871
+ - Symbol string: The ID symbol below the date of birth, such as "***AZ".
872
+ - FirstIssueDate string: The date of first issuance.
873
+ - CurrentIssueDate string: The date of latest issuance.
874
+
875
+ When the value of `IdCardType` is `ML`:
876
+ - Sex string: `LELAKI` (male) and `PEREMPUAN` (female).
877
+ - Birthday string: Date of birth.
878
+ - ID string: ID number.
879
+ - Name string: Name.
880
+ - Address string: Address.
881
+ - Type string: Identity document type.
882
+
883
+ When the value of `IdCardType` is `PhilippinesVoteID`:
884
+ - Birthday string: Date of birth.
885
+ - Address string: Address.
886
+ - LastName string: Family name.
887
+ - FirstName string: First name.
888
+ - VIN string: VIN number.
889
+ - CivilStatus string: Marital status.
890
+ - Citizenship string: Citizenship.
891
+ - PrecinctNo string: Region.
892
+
893
+ When the value of `IdCardType` is `PhilippinesDrivingLicense`:
894
+ - Sex string: Gender.
895
+ - Birthday string: Date of birth.
896
+ - Name string: Name.
897
+ - Address string: Address.
898
+ - LastName string: Family name.
899
+ - FirstName string: First name.
900
+ - MiddleName string: Middle name.
901
+ - Nationality string: Nationality.
902
+ - LicenseNo string: License number.
903
+ - ExpiresDate string: Validity period.
904
+ - AgencyCode string: Agency code.
905
+ Note: This field may return null, indicating that no valid values can be obtained.
906
+ * @type {FileInfo || null}
907
+ */
908
+ this.CardInfoOcrJson = null;
909
+
910
+ /**
911
+ * The request ID of a single process.
912
+ * @type {string || null}
913
+ */
914
+ this.RequestId = null;
915
+
916
+ }
917
+
918
+ /**
919
+ * @private
920
+ */
921
+ deserialize(params) {
922
+ if (!params) {
923
+ return;
924
+ }
925
+ this.IsPass = 'IsPass' in params ? params.IsPass : null;
926
+
927
+ if (params.CardVideo) {
928
+ let obj = new FileInfo();
929
+ obj.deserialize(params.CardVideo)
930
+ this.CardVideo = obj;
931
+ }
932
+
933
+ if (params.CardImage) {
934
+ let obj = new FileInfo();
935
+ obj.deserialize(params.CardImage)
936
+ this.CardImage = obj;
937
+ }
938
+
939
+ if (params.CardInfoOcrJson) {
940
+ let obj = new FileInfo();
941
+ obj.deserialize(params.CardInfoOcrJson)
942
+ this.CardInfoOcrJson = obj;
943
+ }
944
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
945
+
946
+ }
947
+ }
948
+
949
+ /**
950
+ * ApplyWebVerificationToken request structure.
951
+ * @class
952
+ */
953
+ class ApplyWebVerificationTokenRequest extends AbstractModel {
954
+ constructor(){
955
+ super();
956
+
957
+ /**
958
+ * The web redirect URL after the verification is completed.
959
+ * @type {string || null}
960
+ */
961
+ this.RedirectUrl = null;
962
+
963
+ /**
964
+ * The COS URL of the image for face comparison, which can be obtained with one of the following methods:
965
+ 1. Call the `CreateUploadUrl` API to generate a URL and call it again after the image is successfully uploaded.
966
+ 2. Use an existing COS URL. For a private bucket, grant the download permission with a pre-signed URL. The corresponding COS bucket must be in the same region as the input parameter `Region`.
967
+ * @type {string || null}
968
+ */
969
+ this.CompareImageUrl = null;
970
+
971
+ /**
972
+ * The MD5 hash values of the image for face comparison (CompareImageUrl).
973
+ * @type {string || null}
974
+ */
975
+ this.CompareImageMd5 = null;
976
+
977
+ }
978
+
979
+ /**
980
+ * @private
981
+ */
982
+ deserialize(params) {
983
+ if (!params) {
984
+ return;
985
+ }
986
+ this.RedirectUrl = 'RedirectUrl' in params ? params.RedirectUrl : null;
987
+ this.CompareImageUrl = 'CompareImageUrl' in params ? params.CompareImageUrl : null;
988
+ this.CompareImageMd5 = 'CompareImageMd5' in params ? params.CompareImageMd5 : null;
989
+
990
+ }
991
+ }
992
+
993
+ /**
994
+ * ApplyLivenessToken response structure.
995
+ * @class
996
+ */
997
+ class ApplyLivenessTokenResponse extends AbstractModel {
998
+ constructor(){
999
+ super();
1000
+
1001
+ /**
1002
+ * The token used to identify an SDK-based verification process. It is valid for 10 minutes and can be used to get the verification result after the process is completed.
1003
+ * @type {string || null}
1004
+ */
1005
+ this.SdkToken = null;
1006
+
1007
+ /**
1008
+ * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
1009
+ * @type {string || null}
1010
+ */
1011
+ this.RequestId = null;
1012
+
1013
+ }
1014
+
1015
+ /**
1016
+ * @private
1017
+ */
1018
+ deserialize(params) {
1019
+ if (!params) {
1020
+ return;
1021
+ }
1022
+ this.SdkToken = 'SdkToken' in params ? params.SdkToken : null;
1023
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1024
+
1025
+ }
1026
+ }
1027
+
1028
+ /**
1029
+ * GetLivenessResult request structure.
1030
+ * @class
1031
+ */
1032
+ class GetLivenessResultRequest extends AbstractModel {
1033
+ constructor(){
1034
+ super();
1035
+
1036
+ /**
1037
+ * The token used to identify an SDK-based verification process.
1038
+ * @type {string || null}
1039
+ */
1040
+ this.SdkToken = null;
1041
+
1042
+ }
1043
+
1044
+ /**
1045
+ * @private
1046
+ */
1047
+ deserialize(params) {
1048
+ if (!params) {
1049
+ return;
1050
+ }
1051
+ this.SdkToken = 'SdkToken' in params ? params.SdkToken : null;
1052
+
1053
+ }
1054
+ }
1055
+
1056
+ /**
1057
+ * ApplySdkVerificationToken response structure.
1058
+ * @class
1059
+ */
1060
+ class ApplySdkVerificationTokenResponse extends AbstractModel {
1061
+ constructor(){
1062
+ super();
1063
+
1064
+ /**
1065
+ * The token used to identify an SDK-based verification process. It is valid for 7,200s and can be used to get the verification result after the process is completed.
1066
+ * @type {string || null}
1067
+ */
1068
+ this.SdkToken = null;
1069
+
1070
+ /**
1071
+ * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
1072
+ * @type {string || null}
1073
+ */
1074
+ this.RequestId = null;
1075
+
1076
+ }
1077
+
1078
+ /**
1079
+ * @private
1080
+ */
1081
+ deserialize(params) {
1082
+ if (!params) {
1083
+ return;
1084
+ }
1085
+ this.SdkToken = 'SdkToken' in params ? params.SdkToken : null;
1086
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1087
+
1088
+ }
1089
+ }
1090
+
1091
+ /**
1092
+ * CreateUploadUrl request structure.
1093
+ * @class
1094
+ */
1095
+ class CreateUploadUrlRequest extends AbstractModel {
1096
+ constructor(){
1097
+ super();
1098
+
1099
+ /**
1100
+ * Target API
1101
+ * @type {string || null}
1102
+ */
1103
+ this.TargetAction = null;
1104
+
1105
+ }
1106
+
1107
+ /**
1108
+ * @private
1109
+ */
1110
+ deserialize(params) {
1111
+ if (!params) {
1112
+ return;
1113
+ }
1114
+ this.TargetAction = 'TargetAction' in params ? params.TargetAction : null;
1115
+
1116
+ }
1117
+ }
1118
+
1119
+ /**
1120
+ * GetWebVerificationResult response structure.
1121
+ * @class
1122
+ */
1123
+ class GetWebVerificationResultResponse extends AbstractModel {
1124
+ constructor(){
1125
+ super();
1126
+
1127
+ /**
1128
+ * The final result of this verification. `0` indicates that the person is the same as that in the photo.
1129
+ Note: This field may return null, indicating that no valid values can be obtained.
1130
+ * @type {number || null}
1131
+ */
1132
+ this.ErrorCode = null;
1133
+
1134
+ /**
1135
+ * The description of the final verification result.
1136
+ Note: This field may return null, indicating that no valid values can be obtained.
1137
+ * @type {string || null}
1138
+ */
1139
+ this.ErrorMsg = null;
1140
+
1141
+ /**
1142
+ * The temporary URL of the best face screenshot collected from the video stream. It is valid for 10 minutes. Download the image if needed.
1143
+ Note: This field may return null, indicating that no valid values can be obtained.
1144
+ * @type {string || null}
1145
+ */
1146
+ this.VideoBestFrameUrl = null;
1147
+
1148
+ /**
1149
+ * The MD5 hash value of the best face screenshot collected from the video stream. It can be used to check whether the image content is consistent with the file content.
1150
+ Note: This field may return null, indicating that no valid values can be obtained.
1151
+ * @type {string || null}
1152
+ */
1153
+ this.VideoBestFrameMd5 = null;
1154
+
1155
+ /**
1156
+ * The details list of this verification process.
1157
+ Note: This field may return null, indicating that no valid values can be obtained.
1158
+ * @type {Array.<VerificationDetail> || null}
1159
+ */
1160
+ this.VerificationDetailList = null;
1161
+
1162
+ /**
1163
+ * The temporary URL of the video collected from the video stream. It is valid for 10 minutes. Download the video if needed.
1164
+ Note: This field may return null, indicating that no valid values can be obtained.
1165
+ * @type {string || null}
1166
+ */
1167
+ this.VideoUrl = null;
1168
+
1169
+ /**
1170
+ * The MD5 hash value of the video collected from the video stream. It can be used to check whether the video content is consistent with the file content.
1171
+ Note: This field may return null, indicating that no valid values can be obtained.
1172
+ * @type {string || null}
1173
+ */
1174
+ this.VideoMd5 = null;
1175
+
1176
+ /**
1177
+ * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
1178
+ * @type {string || null}
1179
+ */
1180
+ this.RequestId = null;
1181
+
1182
+ }
1183
+
1184
+ /**
1185
+ * @private
1186
+ */
1187
+ deserialize(params) {
1188
+ if (!params) {
1189
+ return;
1190
+ }
1191
+ this.ErrorCode = 'ErrorCode' in params ? params.ErrorCode : null;
1192
+ this.ErrorMsg = 'ErrorMsg' in params ? params.ErrorMsg : null;
1193
+ this.VideoBestFrameUrl = 'VideoBestFrameUrl' in params ? params.VideoBestFrameUrl : null;
1194
+ this.VideoBestFrameMd5 = 'VideoBestFrameMd5' in params ? params.VideoBestFrameMd5 : null;
1195
+
1196
+ if (params.VerificationDetailList) {
1197
+ this.VerificationDetailList = new Array();
1198
+ for (let z in params.VerificationDetailList) {
1199
+ let obj = new VerificationDetail();
1200
+ obj.deserialize(params.VerificationDetailList[z]);
1201
+ this.VerificationDetailList.push(obj);
1202
+ }
1203
+ }
1204
+ this.VideoUrl = 'VideoUrl' in params ? params.VideoUrl : null;
1205
+ this.VideoMd5 = 'VideoMd5' in params ? params.VideoMd5 : null;
1206
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1207
+
1208
+ }
1209
+ }
1210
+
1211
+ /**
1212
+ * GetSdkVerificationResult request structure.
1213
+ * @class
1214
+ */
1215
+ class GetSdkVerificationResultRequest extends AbstractModel {
1216
+ constructor(){
1217
+ super();
1218
+
1219
+ /**
1220
+ * The token used to identify an SDK-based verification process.
1221
+ * @type {string || null}
1222
+ */
1223
+ this.SdkToken = null;
1224
+
1225
+ }
1226
+
1227
+ /**
1228
+ * @private
1229
+ */
1230
+ deserialize(params) {
1231
+ if (!params) {
1232
+ return;
1233
+ }
1234
+ this.SdkToken = 'SdkToken' in params ? params.SdkToken : null;
1235
+
1236
+ }
1237
+ }
1238
+
1239
+ /**
1240
+ * ApplyLivenessToken request structure.
1241
+ * @class
1242
+ */
1243
+ class ApplyLivenessTokenRequest extends AbstractModel {
1244
+ constructor(){
1245
+ super();
1246
+
1247
+ /**
1248
+ * Enumerated value. Valid values: `1`, `2`, `3`, and `4`.
1249
+ Their meanings are as follows:
1250
+ 1 - silent
1251
+ 2 - blinking
1252
+ 3 - light
1253
+ 4 - blinking + light (default)
1254
+ * @type {string || null}
1255
+ */
1256
+ this.SecureLevel = null;
1257
+
1258
+ }
1259
+
1260
+ /**
1261
+ * @private
1262
+ */
1263
+ deserialize(params) {
1264
+ if (!params) {
1265
+ return;
1266
+ }
1267
+ this.SecureLevel = 'SecureLevel' in params ? params.SecureLevel : null;
1268
+
1269
+ }
1270
+ }
1271
+
1272
+ /**
1273
+ * GenerateReflectSequence response structure.
1274
+ * @class
1275
+ */
1276
+ class GenerateReflectSequenceResponse extends AbstractModel {
1277
+ constructor(){
1278
+ super();
1279
+
1280
+ /**
1281
+ * The resource URL of the light sequence, which needs to be downloaded and passed through to the SDK to start the identity verification process.
1282
+ * @type {string || null}
1283
+ */
1284
+ this.ReflectSequenceUrl = null;
1285
+
1286
+ /**
1287
+ * The MD5 hash value of the light sequence, which is used to check whether the light sequence is altered.
1288
+ * @type {string || null}
1289
+ */
1290
+ this.ReflectSequenceMd5 = null;
1291
+
1292
+ /**
1293
+ * The unique request ID, which is returned for each request. RequestId is required for locating a problem.
1294
+ * @type {string || null}
1295
+ */
1296
+ this.RequestId = null;
1297
+
1298
+ }
1299
+
1300
+ /**
1301
+ * @private
1302
+ */
1303
+ deserialize(params) {
1304
+ if (!params) {
1305
+ return;
1306
+ }
1307
+ this.ReflectSequenceUrl = 'ReflectSequenceUrl' in params ? params.ReflectSequenceUrl : null;
1308
+ this.ReflectSequenceMd5 = 'ReflectSequenceMd5' in params ? params.ReflectSequenceMd5 : null;
1309
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1310
+
1311
+ }
1312
+ }
1313
+
1314
+ /**
1315
+ * LivenessCompare request structure.
1316
+ * @class
1317
+ */
1318
+ class LivenessCompareRequest extends AbstractModel {
1319
+ constructor(){
1320
+ super();
1321
+
1322
+ /**
1323
+ * Liveness detection type. Valid values: LIP/ACTION/SILENT.
1324
+ LIP: numeric mode; ACTION: motion mode; SILENT: silent mode. You need to select a mode to input.
1325
+ * @type {string || null}
1326
+ */
1327
+ this.LivenessType = null;
1328
+
1329
+ /**
1330
+ * Base64 string of the image for face comparison.
1331
+ The size of the Base64-encoded image data can be up to 3 MB. JPG and PNG formats are supported.
1332
+ Please use the standard Base64 encoding scheme (with the "=" padding). For the encoding conventions, please see RFC 4648.
1333
+
1334
+ Either the `ImageUrl` or `ImageBase64` of the image must be provided. If both are provided, only `ImageBase64` will be used.
1335
+ * @type {string || null}
1336
+ */
1337
+ this.ImageBase64 = null;
1338
+
1339
+ /**
1340
+ * URL of the image for face comparison. The size of the downloaded image after Base64 encoding can be up to 3 MB. JPG and PNG formats are supported.
1341
+
1342
+ Either the `ImageUrl` or `ImageBase64` of the image must be provided. If both are provided, only `ImageBase64` will be used.
1343
+
1344
+ We recommend you store the image in Tencent Cloud, as a Tencent Cloud URL can guarantee higher download speed and stability. The download speed and stability of non-Tencent Cloud URLs may be low.
1345
+ * @type {string || null}
1346
+ */
1347
+ this.ImageUrl = null;
1348
+
1349
+ /**
1350
+ * Lip mode: set this parameter to a custom 4-digit verification code.
1351
+ Action mode: set this parameter to a custom action sequence (e.g., `2,1` or `1,2`).
1352
+ Silent mode: do not pass in this parameter.
1353
+ * @type {string || null}
1354
+ */
1355
+ this.ValidateData = null;
1356
+
1357
+ /**
1358
+ * Optional configuration (a JSON string)
1359
+ {
1360
+ "BestFrameNum": 2 // Return multiple best screenshots. Value range: 2−10
1361
+ }
1362
+ * @type {string || null}
1363
+ */
1364
+ this.Optional = null;
1365
+
1366
+ /**
1367
+ * Base64 string of the video for liveness detection.
1368
+ The size of the Base64-encoded video data can be up to 8 MB. MP4, AVI, and FLV formats are supported.
1369
+ Please use the standard Base64 encoding scheme (with the "=" padding). For the encoding conventions, please see RFC 4648.
1370
+
1371
+ Either the `VideoUrl` or `VideoBase64` of the video must be provided. If both are provided, only `VideoBase64` will be used.
1372
+ * @type {string || null}
1373
+ */
1374
+ this.VideoBase64 = null;
1375
+
1376
+ /**
1377
+ * URL of the video for liveness detection. The size of the downloaded video after Base64 encoding can be up to 8 MB. It takes no more than 4 seconds to download. MP4, AVI, and FLV formats are supported.
1378
+
1379
+ Either the `VideoUrl` or `VideoBase64` of the video must be provided. If both are provided, only `VideoBase64` will be used.
1380
+
1381
+ We recommend you store the video in Tencent Cloud, as a Tencent Cloud URL can guarantee higher download speed and stability. The download speed and stability of non-Tencent Cloud URLs may be low.
1382
+ * @type {string || null}
1383
+ */
1384
+ this.VideoUrl = null;
1385
+
1386
+ }
1387
+
1388
+ /**
1389
+ * @private
1390
+ */
1391
+ deserialize(params) {
1392
+ if (!params) {
1393
+ return;
1394
+ }
1395
+ this.LivenessType = 'LivenessType' in params ? params.LivenessType : null;
1396
+ this.ImageBase64 = 'ImageBase64' in params ? params.ImageBase64 : null;
1397
+ this.ImageUrl = 'ImageUrl' in params ? params.ImageUrl : null;
1398
+ this.ValidateData = 'ValidateData' in params ? params.ValidateData : null;
1399
+ this.Optional = 'Optional' in params ? params.Optional : null;
1400
+ this.VideoBase64 = 'VideoBase64' in params ? params.VideoBase64 : null;
1401
+ this.VideoUrl = 'VideoUrl' in params ? params.VideoUrl : null;
1402
+
1403
+ }
1404
+ }
1405
+
1406
+ /**
1407
+ * The description of a single comparison result.
1408
+ * @class
1409
+ */
1410
+ class CompareResult extends AbstractModel {
1411
+ constructor(){
1412
+ super();
1413
+
1414
+ /**
1415
+ * The final comparison result.
1416
+ * @type {string || null}
1417
+ */
1418
+ this.ErrorCode = null;
1419
+
1420
+ /**
1421
+ * The description of the final comparison result.
1422
+ * @type {string || null}
1423
+ */
1424
+ this.ErrorMsg = null;
1425
+
1426
+ /**
1427
+ *
1428
+ * @type {FileInfo || null}
1429
+ */
1430
+ this.LiveData = null;
1431
+
1432
+ /**
1433
+ * The video for this liveness detection process. The URL is valid for 10 minutes.
1434
+ * @type {FileInfo || null}
1435
+ */
1436
+ this.LiveVideo = null;
1437
+
1438
+ /**
1439
+ * The code of the liveness detection result.
1440
+ * @type {string || null}
1441
+ */
1442
+ this.LiveErrorCode = null;
1443
+
1444
+ /**
1445
+ * The description of the liveness detection result.
1446
+ * @type {string || null}
1447
+ */
1448
+ this.LiveErrorMsg = null;
1449
+
1450
+ /**
1451
+ * The best face screenshot in this liveness detection. The URL is valid for 10 minutes.
1452
+ Note: This field may return null, indicating that no valid values can be obtained.
1453
+ * @type {FileInfo || null}
1454
+ */
1455
+ this.BestFrame = null;
1456
+
1457
+ /**
1458
+ * The profile photo screenshot from the identity document. The URL is valid for 10 minutes.
1459
+ * @type {FileInfo || null}
1460
+ */
1461
+ this.ProfileImage = null;
1462
+
1463
+ /**
1464
+ * The code of the face comparison result.
1465
+ Note: This field may return null, indicating that no valid values can be obtained.
1466
+ * @type {string || null}
1467
+ */
1468
+ this.CompareErrorCode = null;
1469
+
1470
+ /**
1471
+ * The description of the face comparison result.
1472
+ Note: This field may return null, indicating that no valid values can be obtained.
1473
+ * @type {string || null}
1474
+ */
1475
+ this.CompareErrorMsg = null;
1476
+
1477
+ /**
1478
+ * Similarity
1479
+ Note: This field may return null, indicating that no valid values can be obtained.
1480
+ * @type {number || null}
1481
+ */
1482
+ this.Sim = null;
1483
+
1484
+ /**
1485
+ * This field is disused.
1486
+ * @type {boolean || null}
1487
+ */
1488
+ this.IsNeedCharge = null;
1489
+
1490
+ /**
1491
+ * The identity document photo info edited by the user in JSON. If the value of `DisableChangeOcrResult` is `true`, the editing feature is disabled and this field does not exist. The URL is valid for 10 minutes.
1492
+ When the value of `IdCardType` is `HK`:
1493
+ - CnName string: Chinese name
1494
+ - EnName string: English name
1495
+ - TelexCode string: The code corresponding to the Chinese name
1496
+ - Sex string: Gender. Valid values: `M` (male) and `F` (female).
1497
+ - Birthday string: Date of birth.
1498
+ - Permanent int: Whether it is a permanent residence identity card. Valid values: `0` (non-permanent), `1` (permanent), and `-1` (unknown).
1499
+ - IdNum string: ID number.
1500
+ - Symbol string: The ID symbol below the date of birth, such as "***AZ".
1501
+ - FirstIssueDate string: The date of first issuance.
1502
+ - CurrentIssueDate string: The date of latest issuance.
1503
+
1504
+ When the value of `IdCardType` is `ML`:
1505
+ - Sex string: `LELAKI` (male) and `PEREMPUAN` (female).
1506
+ - Birthday string
1507
+ - ID string
1508
+ - Name string
1509
+ - Address string
1510
+ - Type string: Identity document type.
1511
+ Note: This field may return null, indicating that no valid values can be obtained.
1512
+ * @type {FileInfo || null}
1513
+ */
1514
+ this.CardInfoInputJson = null;
1515
+
1516
+ /**
1517
+ * The request ID of this verification process.
1518
+ * @type {string || null}
1519
+ */
1520
+ this.RequestId = null;
1521
+
1522
+ }
1523
+
1524
+ /**
1525
+ * @private
1526
+ */
1527
+ deserialize(params) {
1528
+ if (!params) {
1529
+ return;
1530
+ }
1531
+ this.ErrorCode = 'ErrorCode' in params ? params.ErrorCode : null;
1532
+ this.ErrorMsg = 'ErrorMsg' in params ? params.ErrorMsg : null;
1533
+
1534
+ if (params.LiveData) {
1535
+ let obj = new FileInfo();
1536
+ obj.deserialize(params.LiveData)
1537
+ this.LiveData = obj;
1538
+ }
1539
+
1540
+ if (params.LiveVideo) {
1541
+ let obj = new FileInfo();
1542
+ obj.deserialize(params.LiveVideo)
1543
+ this.LiveVideo = obj;
1544
+ }
1545
+ this.LiveErrorCode = 'LiveErrorCode' in params ? params.LiveErrorCode : null;
1546
+ this.LiveErrorMsg = 'LiveErrorMsg' in params ? params.LiveErrorMsg : null;
1547
+
1548
+ if (params.BestFrame) {
1549
+ let obj = new FileInfo();
1550
+ obj.deserialize(params.BestFrame)
1551
+ this.BestFrame = obj;
1552
+ }
1553
+
1554
+ if (params.ProfileImage) {
1555
+ let obj = new FileInfo();
1556
+ obj.deserialize(params.ProfileImage)
1557
+ this.ProfileImage = obj;
1558
+ }
1559
+ this.CompareErrorCode = 'CompareErrorCode' in params ? params.CompareErrorCode : null;
1560
+ this.CompareErrorMsg = 'CompareErrorMsg' in params ? params.CompareErrorMsg : null;
1561
+ this.Sim = 'Sim' in params ? params.Sim : null;
1562
+ this.IsNeedCharge = 'IsNeedCharge' in params ? params.IsNeedCharge : null;
1563
+
1564
+ if (params.CardInfoInputJson) {
1565
+ let obj = new FileInfo();
1566
+ obj.deserialize(params.CardInfoInputJson)
1567
+ this.CardInfoInputJson = obj;
1568
+ }
1569
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1570
+
1571
+ }
1572
+ }
1573
+
1574
+ module.exports = {
1575
+ GetLivenessResultResponse: GetLivenessResultResponse,
1576
+ GetSdkVerificationResultResponse: GetSdkVerificationResultResponse,
1577
+ VerificationDetail: VerificationDetail,
1578
+ LivenessCompareResponse: LivenessCompareResponse,
1579
+ CreateUploadUrlResponse: CreateUploadUrlResponse,
1580
+ DetectReflectLivenessAndCompareRequest: DetectReflectLivenessAndCompareRequest,
1581
+ VideoLivenessCompareRequest: VideoLivenessCompareRequest,
1582
+ ApplyWebVerificationTokenResponse: ApplyWebVerificationTokenResponse,
1583
+ GetWebVerificationResultRequest: GetWebVerificationResultRequest,
1584
+ FileInfo: FileInfo,
1585
+ ApplySdkVerificationTokenRequest: ApplySdkVerificationTokenRequest,
1586
+ GenerateReflectSequenceRequest: GenerateReflectSequenceRequest,
1587
+ DetectReflectLivenessAndCompareResponse: DetectReflectLivenessAndCompareResponse,
1588
+ VideoLivenessCompareResponse: VideoLivenessCompareResponse,
1589
+ CardVerifyResult: CardVerifyResult,
1590
+ ApplyWebVerificationTokenRequest: ApplyWebVerificationTokenRequest,
1591
+ ApplyLivenessTokenResponse: ApplyLivenessTokenResponse,
1592
+ GetLivenessResultRequest: GetLivenessResultRequest,
1593
+ ApplySdkVerificationTokenResponse: ApplySdkVerificationTokenResponse,
1594
+ CreateUploadUrlRequest: CreateUploadUrlRequest,
1595
+ GetWebVerificationResultResponse: GetWebVerificationResultResponse,
1596
+ GetSdkVerificationResultRequest: GetSdkVerificationResultRequest,
1597
+ ApplyLivenessTokenRequest: ApplyLivenessTokenRequest,
1598
+ GenerateReflectSequenceResponse: GenerateReflectSequenceResponse,
1599
+ LivenessCompareRequest: LivenessCompareRequest,
1600
+ CompareResult: CompareResult,
636
1601
 
637
1602
  }