Skip to content

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ườngKiểuMô 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.
eventStreamStream<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ườngKiểuMô tả
facesList<Face>?Các khuôn mặt đã chụp.
sanityResultsList<EkycResponse<FaceSanityData>>?Response sanity cho từng ảnh khuôn mặt.
livenessResultEkycResponse<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ườngKiểuMô tả
imageEkycImage?Ảnh chân dung.
gestureStringCử chỉ khuôn mặt: frontal, left, right, up, down.

Cấu hình ​

Config ​

TrườngKiểuMô tả
languageCodeStringvi hoặc en.
baseUrlStringBase URL cho các network request.
networkConfigNetworkConfigThiết lập cấu hình mạng.
accessTokenAccessToken?Provider cung cấp authentication token.
loggerLogger?Sink nhận log.
exposeImagebool?Lưu ảnh vào file cục bộ. Mặc định false.

NetworkConfig ​

TrườngKiểuMô tả
readTimeoutMilliSecondsintTimeout đọc, mặc định 0.
writeTimeoutMilliSecondsintTimeout ghi, mặc định 0.
connectTimeoutMilliSecondsintTimeout kết nối, mặc định 0.
callTimeoutMilliSecondsintTổng thời gian lệnh gọi, mặc định 60000.

Logger ​

TrườngKiểuMô tả
info(log)voidGhi log một thông báo thông tin.
error(log)voidGhi log một thông báo lỗi.
warning(log)voidGhi log một thông báo cảnh báo.

TakeNIDConfig ​

TrườngKiểuMô tả
cardTypeCardTypeLoại thẻ, mặc định CardType.CCCD.
cardSidesList<CardSide>Các mặt cần chụp, mặc định [Front, Back].
requiredReviewboolYêu cầu xem lại, mặc định true.
autoCaptureEnableboolTự động chụp khi chất lượng đạt yêu cầu, mặc định true.
requiredScanQRboolYêu cầu quét QR, mặc định false.
captureOnlyboolChế độ chỉ chụp, mặc định false.
otherSideImagesMap<CardSide, EkycImage>Mặt còn lại đã được chụp trước đó.

TakeFaceConfig ​

TrườngKiểuMô tả
captureOnlyboolChế độ chỉ chụp, mặc định false.

Kiểu dữ liệu ​

EkycImage ​

TrườngKiểuMô tả
idString?Định danh duy nhất sau khi tải lên.
labelString?Nhãn mô tả ảnh.
fileString?File ảnh.

UploadImageRequest / UploadImageResult ​

TrườngKiểuMô tả
filePathString?Vị trí của ảnh.
labelString?Nhãn mô tả ảnh.
metaDataString?Metadata khi tải lên.
imageIdString?Định danh ảnh sau khi tải lên. Chỉ có ở Result.

EkycResponse ​

TrườngKiểuMô tả
dataT?Dữ liệu response.
errorList<EkycErrorDetail>?Chi tiết lỗi.
codeint?Status code của response.
messageString?Thông báo của response.
signatureString?Signature của response.
signatureTimestampString?Timestamp của signature.
rawDataString?Chuỗi dữ liệu thô.
requestString?Request.

Khác với Android và iOS, EkycResponse của Flutter không có thuộc tính responseBody.

EkycErrorDetail ​

TrườngKiểuMô tả
codeString?Mã lỗi.
messageString?Mô tả lỗi.

CardType / CardSide ​

TrườngKiểuMô tả
idStringĐịnh danh loại thẻ, ví dụ vn.national_id.
nameStringTên loại thẻ, ví dụ id_card.vn.national_id.
CCCDstatic CardTypeCCCD Việt Nam.
front backCardSideMặt trước và mặt sau của NID.

NIDSanityData / CardSanity / NIDImageInfo ​

TrườngKiểuMô tả
statusString?success hoặc failure.
cardSanityCardSanity?Chi tiết sanity của thẻ.
image1 image2NIDImageInfo?Các ảnh NID được sử dụng.
requestIdString?Định danh request.
verdictString?good khi kiểm tra đạt.
scoredouble?Điểm độ tin cậy.
infoString?Thông tin bổ sung.
idString?Định danh ảnh.
transformedImageIdString?Định danh ảnh đã biến đổi.
cardBoxCardBox?Bounding box của thẻ.

NIDTamperingData / CardTampering / TamperingDetail ​

TrườngKiểuMô tả
statusString?Trạng thái của kiểm tra giả mạo.
cardTamperingCardTampering?Chi tiết giả mạo.
requestIdString?Định danh request.
imageId imageId2String?Các ảnh được sử dụng.
verdictString?good khi đạt, ngược lại là tín hiệu cụ thể.
scoredouble?Điểm độ tin cậy.
detailsList<TamperingDetail>?Các tín hiệu giả mạo riêng lẻ.

NIDCardData / ExtractedData ​

TrườngKiểuMô tả
statusString?Trạng thái trích xuất.
extractedDataOnImage1 extractedDataOnImage2ExtractedData?Dữ liệu theo từng ảnh.
cardInfoList<CardInfo>?Thông tin thẻ đã hợp nhất.
requestIdString?Định danh request.
qrQRData?Dữ liệu mã QR.
ocrOCRData?Dữ liệu OCR.
mrzDataMRZData?Dữ liệu MRZ.

QRData / OCRData / MRZData / ParsedField / CardInfo ​

TrườngKiểuMô tả
parsedFieldsList<ParsedField>?Các trường đã phân tích từ nguồn này.
rawString?Giá trị thô. Chỉ có ở QRData.
confidenceScoredouble?Độ tin cậy của lần trích xuất.
keyString?Tên trường.
valueString?Giá trị trường.
confidenceVerdictString?Kết luận độ tin cậy.
confidentScoredouble?Điểm độ tin cậy. Chỉ có ở CardInfo.

CardBox / Point ​

TrườngKiểuMô tả
topLeft topRight bottomLeft bottomRightPoint?Các góc của bounding box thẻ.
x ydouble?Tọa độ điểm.

FaceSanityData / PortraitSanity / PortraitImageInfo ​

TrườngKiểuMô tả
statusString?Trạng thái của kiểm tra sanity khuôn mặt.
portraitSanityPortraitSanity?Chi tiết sanity.
requestIdString?Định danh request.
imagePortraitImageInfo?Thông tin ảnh chân dung.
isSanityPassed()boolTrue khi verdict là good.
verdictString?Kết quả của kiểm tra sanity.
scoredouble?Điểm độ tin cậy.
idString?Định danh ảnh chân dung.

FaceLivenessData / LivenessResult ​

TrườngKiểuMô tả
statusString?Trạng thái của kiểm tra liveness.
isLivebool?Khuôn mặt có phải là live hay không.
scoredouble?Điểm độ tin cậy.
resultsList<LivenessResult>?Kết quả theo từng ảnh.
requestIdString?Định danh request.
mainImageIdString?Ảnh chính được sử dụng.
idString?Định danh ảnh. Chỉ có ở Result.

FaceComparedData / ComparedResult ​

TrườngKiểuMô tả
statusString?Trạng thái so sánh.
comparedResultsList<ComparedResult>?Kết quả so sánh.
requestIdString?Định danh request.
face1Id face2IdString?ID của các ảnh khuôn mặt được so sánh.
scoredouble?Điểm tương đồng.
resultString?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ườngKiểuMô tả
idintĐịnh danh sự kiện.
paramsMap<String, dynamic>Tham số sự kiện.
timestampintThời điểm tạo, tính bằng mili-giây.
faceSelfieAssessingResultEvent-1001Kết quả đánh giá selfie khuôn mặt.
nidAssessingResultEvent-1003Kết quả đánh giá NID.
nidCaptureStartedEvent-1008Bắt đầu chụp NID.
nidCaptureEndedEvent-1009Kết thúc chụp NID.
nidReviewStartedEvent-1010Bắt đầu xem lại NID.
nidShuttleClickedEvent-1011Nhấn nút chụp.
nidAutoCaptureSelectedEvent-1012Đã chọn tự động chụp.
nidReviewEndedEvent-1013Kết thúc xem lại NID.
nidReviewAcceptClickedEvent-1014Nhấn Accept.
nidReviewDenyClickedEvent-1015Nhấn Deny.
faceCaptureStartedEvent-1016Bắt đầu chụp khuôn mặt.
faceCaptureEndedEvent-1017Kết thúc chụp khuôn mặt.
backBtnClickedEvent-1018Nhấn nút back trên màn hình.

EkycFailure ​

TrườngKiểuMô tả
timeOutErrorCode40000Timeout.
userCancelErrorCode40001Người dùng hủy.
permissionErrorCode40002Từ chối cấp quyền.
cameraErrorCode40003Lỗi camera.
unexpectedErrorCode50000Lỗi không mong đợi.
nidSanityFailed60000Lỗi sanity của NID.
nidTamperingFailed60001Lỗi giả mạo của NID.
faceSanityFailed60002Lỗi sanity khuôn mặt.
faceLivenessFailed60003Lỗi liveness khuôn mặt.
codeStringMã lỗi.
messageString?Thông báo chi tiết lỗi.
causeException?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ườngKiểuMô tả
darkThemeSettingEkycThemeSettingTheme mặc định cho màn hình chụp, QR và selfie.
lightThemeSettingEkycThemeSettingTheme mặc định cho màn hình xác nhận và loading.
nidCaptureScreenSettingNIDCaptureScreenSettingGhi đè cho màn hình chụp NID.
nidConfirmScreenSettingNIDConfirmScreenSettingGhi đè cho màn hình xác nhận NID.
nidFeedbackLookupTableNIDFeedbackLookupTableGhi đè thông báo phản hồi cho lúc chụp NID.
scanQRScreenSettingNIDScanQRScreenSettingGhi đè cho màn hình quét QR.
selfieScreenSettingSelfieScreenSettingGhi đè cho màn hình selfie.
selfieFeedbackLookupTableSelfieFeedbackLookupTableGhi đè thông báo phản hồi cho lúc chụp selfie.
loadingScreenSettingLoadingScreenSettingGhi đè cho màn hình loading.

Bước tiếp theo ​

Developers