Tài liệu tham chiếu Flutter SDK
Mọi class, thuộc tính và phương thức công khai trong eKYC Flutter plugin. Xem Tích hợp Flutter SDK để biết hướng dẫn tích hợp.
CakeEkycPlugin
class CakeEkycPlugin
| Trường | Kiểu | Mô tả |
|---|---|---|
initialize(config) | Future<Either<EkycFailure, bool>> | Khởi tạo plugin. Trả về true khi thành công. |
takeNID(config) | Future<Either<EkycFailure, NIDCardResult>> | Chụp NID → tải lên → kiểm tra sanity → kiểm tra giả mạo → trích xuất thông tin. |
takeFaces(config) | Future<Either<EkycFailure, SelfieResult>> | Chụp khuôn mặt → tải lên → kiểm tra sanity → kiểm tra liveness. |
upload(uploadImageRequests) | Future<Either<EkycFailure, List<EkycResponse<UploadImageResult>>>> | Tải lên một danh sách ảnh. |
checkNIDSanity({imageId, imageId2, cardType, specialTypeId}) | Future<Either<EkycFailure, EkycResponse<NIDSanityData>>> | Kiểm tra sanity của một thẻ NID. |
checkNIDTampering({imageId, imageId2, cardType, level}) | Future<Either<EkycFailure, EkycResponse<NIDTamperingData>>> | Kiểm tra giả mạo trên một thẻ NID. |
readNIDInfo({imageId, imageId2, cardType}) | Future<Either<EkycFailure, EkycResponse<NIDCardData>>> | OCR thẻ NID. |
checkFaceSanity({imageId}) | Future<Either<EkycFailure, EkycResponse<FaceSanityData>>> | Kiểm tra sanity của một ảnh khuôn mặt. |
checkFaceLiveness({imageIds}) | Future<Either<EkycFailure, EkycResponse<FaceLivenessData>>> | Kiểm tra liveness của ảnh khuôn mặt. |
compareFaces({imageId, imageId2}) | Future<Either<EkycFailure, EkycResponse<FaceComparingData>>> | So sánh hai ảnh khuôn mặt. |
eventStream | Stream<EkycEvent> | Phát ra các sự kiện chụp trong lúc một luồng đang chạy. |
Kết quả
NIDCardResult
Có cấu trúc giống Android và iOS: cardType, frontSideImage, backSideImage, qrData, sanityResult, tamperingResult, cardInfo.
SelfieResult
| Trường | Kiểu | Mô tả |
|---|---|---|
faces | List<Face>? | Các khuôn mặt đã chụp. |
sanityResults | List<EkycResponse<FaceSanityData>>? | Response sanity cho từng ảnh khuôn mặt. |
livenessResult | EkycResponse<FaceLivenessData>? | Kết quả kiểm tra liveness. |
Lưu ý thuộc tính này là sanityResults (số nhiều) trên Flutter, khác với sanityResult trên Android và iOS.
Face
| Trường | Kiểu | Mô tả |
|---|---|---|
image | EkycImage? | Ảnh chân dung. |
gesture | String | Cử chỉ khuôn mặt: frontal, left, right, up, down. |
Cấu hình
Config
| Trường | Kiểu | Mô tả |
|---|---|---|
languageCode | String | vi hoặc en. |
baseUrl | String | Base URL cho các network request. |
networkConfig | NetworkConfig | Thiết lập cấu hình mạng. |
accessToken | AccessToken? | Provider cung cấp authentication token. |
logger | Logger? | Sink nhận log. |
exposeImage | bool? | Lưu ảnh vào file cục bộ. Mặc định false. |
NetworkConfig
| Trường | Kiểu | Mô tả |
|---|---|---|
readTimeoutMilliSeconds | int | Timeout đọc, mặc định 0. |
writeTimeoutMilliSeconds | int | Timeout ghi, mặc định 0. |
connectTimeoutMilliSeconds | int | Timeout kết nối, mặc định 0. |
callTimeoutMilliSeconds | int | Tổng thời gian lệnh gọi, mặc định 60000. |
Logger
| Trường | Kiểu | Mô tả |
|---|---|---|
info(log) | void | Ghi log một thông báo thông tin. |
error(log) | void | Ghi log một thông báo lỗi. |
warning(log) | void | Ghi log một thông báo cảnh báo. |
TakeNIDConfig
| Trường | Kiểu | Mô tả |
|---|---|---|
cardType | CardType | Loại thẻ, mặc định CardType.CCCD. |
cardSides | List<CardSide> | Các mặt cần chụp, mặc định [Front, Back]. |
requiredReview | bool | Yêu cầu xem lại, mặc định true. |
autoCaptureEnable | bool | Tự động chụp khi chất lượng đạt yêu cầu, mặc định true. |
requiredScanQR | bool | Yêu cầu quét QR, mặc định false. |
captureOnly | bool | Chế độ chỉ chụp, mặc định false. |
otherSideImages | Map<CardSide, EkycImage> | Mặt còn lại đã được chụp trước đó. |
TakeFaceConfig
| Trường | Kiểu | Mô tả |
|---|---|---|
captureOnly | bool | Chế độ chỉ chụp, mặc định false. |
Kiểu dữ liệu
EkycImage
| Trường | Kiểu | Mô tả |
|---|---|---|
id | String? | Định danh duy nhất sau khi tải lên. |
label | String? | Nhãn mô tả ảnh. |
file | String? | File ảnh. |
UploadImageRequest / UploadImageResult
| Trường | Kiểu | Mô tả |
|---|---|---|
filePath | String? | Vị trí của ảnh. |
label | String? | Nhãn mô tả ảnh. |
metaData | String? | Metadata khi tải lên. |
imageId | String? | Định danh ảnh sau khi tải lên. Chỉ có ở Result. |
EkycResponse
| Trường | Kiểu | Mô tả |
|---|---|---|
data | T? | Dữ liệu response. |
error | List<EkycErrorDetail>? | Chi tiết lỗi. |
code | int? | Status code của response. |
message | String? | Thông báo của response. |
signature | String? | Signature của response. |
signatureTimestamp | String? | Timestamp của signature. |
rawData | String? | Chuỗi dữ liệu thô. |
request | String? | Request. |
Khác với Android và iOS, EkycResponse của Flutter không có thuộc tính responseBody.
EkycErrorDetail
| Trường | Kiểu | Mô tả |
|---|---|---|
code | String? | Mã lỗi. |
message | String? | Mô tả lỗi. |
CardType / CardSide
| Trường | Kiểu | Mô tả |
|---|---|---|
id | String | Định danh loại thẻ, ví dụ vn.national_id. |
name | String | Tên loại thẻ, ví dụ id_card.vn.national_id. |
CCCD | static CardType | CCCD Việt Nam. |
front back | CardSide | Mặt trước và mặt sau của NID. |
NIDSanityData / CardSanity / NIDImageInfo
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | success hoặc failure. |
cardSanity | CardSanity? | Chi tiết sanity của thẻ. |
image1 image2 | NIDImageInfo? | Các ảnh NID được sử dụng. |
requestId | String? | Định danh request. |
verdict | String? | good khi kiểm tra đạt. |
score | double? | Điểm độ tin cậy. |
info | String? | Thông tin bổ sung. |
id | String? | Định danh ảnh. |
transformedImageId | String? | Định danh ảnh đã biến đổi. |
cardBox | CardBox? | Bounding box của thẻ. |
NIDTamperingData / CardTampering / TamperingDetail
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | Trạng thái của kiểm tra giả mạo. |
cardTampering | CardTampering? | Chi tiết giả mạo. |
requestId | String? | Định danh request. |
imageId imageId2 | String? | Các ảnh được sử dụng. |
verdict | String? | good khi đạt, ngược lại là tín hiệu cụ thể. |
score | double? | Điểm độ tin cậy. |
details | List<TamperingDetail>? | Các tín hiệu giả mạo riêng lẻ. |
NIDCardData / ExtractedData
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | Trạng thái trích xuất. |
extractedDataOnImage1 extractedDataOnImage2 | ExtractedData? | Dữ liệu theo từng ảnh. |
cardInfo | List<CardInfo>? | Thông tin thẻ đã hợp nhất. |
requestId | String? | Định danh request. |
qr | QRData? | Dữ liệu mã QR. |
ocr | OCRData? | Dữ liệu OCR. |
mrzData | MRZData? | Dữ liệu MRZ. |
QRData / OCRData / MRZData / ParsedField / CardInfo
| Trường | Kiểu | Mô tả |
|---|---|---|
parsedFields | List<ParsedField>? | Các trường đã phân tích từ nguồn này. |
raw | String? | Giá trị thô. Chỉ có ở QRData. |
confidenceScore | double? | Độ tin cậy của lần trích xuất. |
key | String? | Tên trường. |
value | String? | Giá trị trường. |
confidenceVerdict | String? | Kết luận độ tin cậy. |
confidentScore | double? | Điểm độ tin cậy. Chỉ có ở CardInfo. |
CardBox / Point
| Trường | Kiểu | Mô tả |
|---|---|---|
topLeft topRight bottomLeft bottomRight | Point? | Các góc của bounding box thẻ. |
x y | double? | Tọa độ điểm. |
FaceSanityData / PortraitSanity / PortraitImageInfo
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | Trạng thái của kiểm tra sanity khuôn mặt. |
portraitSanity | PortraitSanity? | Chi tiết sanity. |
requestId | String? | Định danh request. |
image | PortraitImageInfo? | Thông tin ảnh chân dung. |
isSanityPassed() | bool | True khi verdict là good. |
verdict | String? | Kết quả của kiểm tra sanity. |
score | double? | Điểm độ tin cậy. |
id | String? | Định danh ảnh chân dung. |
FaceLivenessData / LivenessResult
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | Trạng thái của kiểm tra liveness. |
isLive | bool? | Khuôn mặt có phải là live hay không. |
score | double? | Điểm độ tin cậy. |
results | List<LivenessResult>? | Kết quả theo từng ảnh. |
requestId | String? | Định danh request. |
mainImageId | String? | Ảnh chính được sử dụng. |
id | String? | Định danh ảnh. Chỉ có ở Result. |
FaceComparedData / ComparedResult
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | Trạng thái so sánh. |
comparedResults | List<ComparedResult>? | Kết quả so sánh. |
requestId | String? | Định danh request. |
face1Id face2Id | String? | ID của các ảnh khuôn mặt được so sánh. |
score | double? | Điểm tương đồng. |
result | String? | matched hoặc not matched. |
INFO
compareFaces được khai báo trả về EkycResponse<FaceComparingData> trong khi data class được đặt tên FaceComparedData. Hãy coi chúng là cùng một kiểu.
Event và lỗi
EkycEvent
| Trường | Kiểu | Mô tả |
|---|---|---|
id | int | Định danh sự kiện. |
params | Map<String, dynamic> | Tham số sự kiện. |
timestamp | int | Thời điểm tạo, tính bằng mili-giây. |
faceSelfieAssessingResultEvent | -1001 | Kết quả đánh giá selfie khuôn mặt. |
nidAssessingResultEvent | -1003 | Kết quả đánh giá NID. |
nidCaptureStartedEvent | -1008 | Bắt đầu chụp NID. |
nidCaptureEndedEvent | -1009 | Kết thúc chụp NID. |
nidReviewStartedEvent | -1010 | Bắt đầu xem lại NID. |
nidShuttleClickedEvent | -1011 | Nhấn nút chụp. |
nidAutoCaptureSelectedEvent | -1012 | Đã chọn tự động chụp. |
nidReviewEndedEvent | -1013 | Kết thúc xem lại NID. |
nidReviewAcceptClickedEvent | -1014 | Nhấn Accept. |
nidReviewDenyClickedEvent | -1015 | Nhấn Deny. |
faceCaptureStartedEvent | -1016 | Bắt đầu chụp khuôn mặt. |
faceCaptureEndedEvent | -1017 | Kết thúc chụp khuôn mặt. |
backBtnClickedEvent | -1018 | Nhấn nút back trên màn hình. |
EkycFailure
| Trường | Kiểu | Mô tả |
|---|---|---|
timeOutErrorCode | 40000 | Timeout. |
userCancelErrorCode | 40001 | Người dùng hủy. |
permissionErrorCode | 40002 | Từ chối cấp quyền. |
cameraErrorCode | 40003 | Lỗi camera. |
unexpectedErrorCode | 50000 | Lỗi không mong đợi. |
nidSanityFailed | 60000 | Lỗi sanity của NID. |
nidTamperingFailed | 60001 | Lỗi giả mạo của NID. |
faceSanityFailed | 60002 | Lỗi sanity khuôn mặt. |
faceLivenessFailed | 60003 | Lỗi liveness khuôn mặt. |
code | String | Mã lỗi. |
message | String? | Thông báo chi tiết lỗi. |
cause | Exception? | Lỗi gốc bên dưới. |
Kiểu dữ liệu tùy biến giao diện
Được truyền qua Config.uiSetting. Xem Flutter SDK § Tùy biến giao diện.
| Trường | Kiểu | Mô tả |
|---|---|---|
darkThemeSetting | EkycThemeSetting | Theme mặc định cho màn hình chụp, QR và selfie. |
lightThemeSetting | EkycThemeSetting | Theme mặc định cho màn hình xác nhận và loading. |
nidCaptureScreenSetting | NIDCaptureScreenSetting | Ghi đè cho màn hình chụp NID. |
nidConfirmScreenSetting | NIDConfirmScreenSetting | Ghi đè cho màn hình xác nhận NID. |
nidFeedbackLookupTable | NIDFeedbackLookupTable | Ghi đè thông báo phản hồi cho lúc chụp NID. |
scanQRScreenSetting | NIDScanQRScreenSetting | Ghi đè cho màn hình quét QR. |
selfieScreenSetting | SelfieScreenSetting | Ghi đè cho màn hình selfie. |
selfieFeedbackLookupTable | SelfieFeedbackLookupTable | Ghi đè thông báo phản hồi cho lúc chụp selfie. |
loadingScreenSetting | LoadingScreenSetting | Ghi đè cho màn hình loading. |
Bước tiếp theo
- Tích hợp Flutter SDK — hướng dẫn tích hợp
- Tổng quan Mobile SDK — các khái niệm dùng chung giữa các nền tảng