Skip to content

Tài liệu tham chiếu iOS SDK ​

Mọi class, struct và phương thức công khai trong eKYC iOS SDK. Mọi kiểu dữ liệu đều có tiền tố CES. Xem Tích hợp iOS SDK để biết hướng dẫn tích hợp.

CakeEkycSdk ​

public class CakeEkycSdk

TrườngKiểuMô tả
upload(image:label:metaData:)CESResult<CESEkycResponse<CESPhotoUploadData>>Tải lên một UIImage.
upload(data:label:metaData:)CESResult<CESEkycResponse<CESPhotoUploadData>>Tải lên dữ liệu Data thô.
takeNid(hostViewController:config:delegate:)VoidChụp NID → tải lên → kiểm tra sanity → kiểm tra giả mạo → trích xuất thông tin. Trả về CESNidCardResult qua delegate.
checkNidSanity(params:)CESResult<CESEkycResponse<CESNidSanityData>>Kiểm tra sanity của ảnh NID.
checkNidTampering(params:)CESResult<CESEkycResponse<CESNidTamperingData>>Kiểm tra giả mạo trong ảnh NID.
readNidInfo(params:)CESResult<CESEkycResponse<CESNidReadInfoData>>Trích xuất thông tin từ ảnh NID.
takeFaces(hostViewController:config:delegate:)VoidChụp khuôn mặt → tải lên → kiểm tra sanity → kiểm tra liveness. Trả về CESSelfieResult.
checkFaceSanity(params:)CESResult<CESEkycResponse<CESFaceSanityData>>Kiểm tra sanity của một ảnh khuôn mặt.
checkFaceLiveness(params:)CESResult<CESEkycResponse<CESFaceLivenessData>>Kiểm tra liveness của ảnh khuôn mặt.
compareFaces(params:)CESResult<CESEkycResponse<CESFaceCompareData>>So sánh hai ảnh khuôn mặt.
close()VoidKết thúc các tác vụ chụp NID và khuôn mặt đang diễn ra.
getInstance(config:)static Future<CakeEkycSdk, Never>Tạo một instance một cách bất đồng bộ.

Kết quả ​

CESNidCardResult ​

TrườngKiểuMô tả
cardTypeCESCardTypeLoại thẻ NID (CCCD).
frontSideImageCESEkycImage?Mặt trước của thẻ.
backSideImageCESEkycImage?Mặt sau của thẻ.
qrDataQRData?Dữ liệu mã QR của NID.
sanityResultCESEkycResponse<CESNidSanityData>?Kết quả kiểm tra sanity.
tamperingResultCESEkycResponse<CESNidTamperingData>?Kết quả kiểm tra giả mạo.
cardInfoCESEkycResponse<CESNidReadInfoData>?Thông tin thẻ đã trích xuất.

CESNidCardResult.QRData ​

TrườngKiểuMô tả
rawString?Giá trị chuỗi từ lần quét QR.
imageCESEkycImage?Ảnh mã QR.

CESSelfieResult ​

TrườngKiểuMô tả
faces[Face]?Các khuôn mặt đã chụp.
sanityResult[CESEkycResponse<CESFaceSanityData>]?Response sanity cho từng ảnh khuôn mặt.
livenessResultCESEkycResponse<CESFaceLivenessData>?Kết quả kiểm tra liveness.

CESSelfieResult.Face ​

TrườngKiểuMô tả
imageCESEkycImage?Ảnh chân dung.
gestureStringCử chỉ khuôn mặt: frontal, left, right, up, down.

Cấu hình ​

CESConfig ​

TrườngKiểuMô tả
languageCodeStringvi hoặc en.
baseUrlStringBase URL cho các network request.
tokenProviderTokenProvider?Provider cung cấp authentication token.
loggerLogger?Sink nhận log.

Config.Builder ​

TrườngKiểuMô tả
withLanguage(language:)BuilderĐặt language code.
withBaseUrl(url:)BuilderĐặt base URL.
withToken(tokenProvider:)BuilderĐặt token provider.
withLogger(logger:)BuilderĐặt logger.
build()ConfigTạo CESConfig.

TokenProvider ​

TrườngKiểuMô tả
getToken(timestamp:path:method:)StringTrả về một authentication token cho request đã cho.

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.

CESTakeNidConfig ​

TrườngKiểuMô tả
cardTypeCESCardTypeLoại thẻ, mặc định .cccd.
cardSides[CESCardSide]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.
loadingViewUIView?Giao diện loading tùy chỉnh.
otherSideImages[CESCardSide: CESEkycImage]Mặt còn lại đã được chụp trước đó.

CESTakeFaceConfig ​

TrườngKiểuMô tả
captureOnlyBoolChế độ chỉ chụp, mặc định false.
loadingViewUIView?Giao diện loading tùy chỉnh.

Params của request ​

TrườngKiểuMô tả
CESCheckNidSanityParamsstructimage, image2?, cardType, specialTypeId?
CESCheckNidTamperingParamsstructimage, image2?, cardType, level?
CESNidReadInfoParamsstructimage, image2?, cardType
CESFaceSanityParamsstructimage — id ảnh khuôn mặt
CESFaceLivenessParamsstructimages — mảng id ảnh khuôn mặt
CESFaceCompareParamsstructimage1, image2

Kiểu dữ liệu ​

CESEkycImage ​

TrườngKiểuMô tả
idString?Định danh duy nhất sau khi tải lên.
labelString?Nhãn mô tả ảnh.
imageUIImage?Dữ liệu ảnh.

CESEkycResponse ​

TrườngKiểuMô tả
dataT?Dữ liệu response.
errors[CESResponseError]?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.
responseBodyString?Response body thô.

CESResponseError ​

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

CESCardType ​

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 CESCardTypeCCCD Việt Nam.

CESCardSide ​

public enum CardSide: String — giá trị front và back.

CESNidSanityData ​

TrườngKiểuMô tả
statusString?success hoặc failure.
cardSanityCESCardSanity?Chi tiết sanity của thẻ.
image1CESNidResponseImage?Ảnh NID thứ nhất.
image2CESNidResponseImage?Ảnh NID thứ hai.
requestIdString?Định danh request.

CESCardSanity ​

TrườngKiểuMô tả
verdictString?good khi kiểm tra đạt. Xem Định nghĩa kết luận.
scoreDouble?Điểm độ tin cậy.
infoString?Thông tin bổ sung.

CESNidResponseImage ​

TrườngKiểuMô tả
idString?Định danh ảnh.
transformedImageIdString?Định danh ảnh đã biến đổi.
cardBoxCardBox?Bounding box của thẻ.

CESNidTamperingData ​

TrườngKiểuMô tả
statusString?Trạng thái của kiểm tra giả mạo.
cardTamperingCESCardTampering?Chi tiết giả mạo.
requestIdString?Định danh request.
imageId imageId2String?Các ảnh được sử dụng.

CESCardTampering / CESCardTemperingDetail ​

TrườngKiểuMô tả
verdictString?good khi kiểm tra đạt, ngược lại là tín hiệu cụ thể.
scoreDouble?Điểm độ tin cậy.
details[CESCardTamperingDetail]?Các tín hiệu giả mạo riêng lẻ.
infoString?Thông tin bổ sung. Chỉ có ở Detail.

CESNidReadInfoData ​

TrườngKiểuMô tả
statusString?Trạng thái trích xuất.
imageCESReadNidImageData?Dữ liệu từ ảnh thứ nhất.
image2CESReadNidImageData?Dữ liệu từ ảnh thứ hai.
cardInfo[CESCardInfo]?Thông tin thẻ đã hợp nhất.
requestIdString?Định danh request.

CESReadNidImageData ​

TrườngKiểuMô tả
idString?Định danh ảnh NID.
transformedImageIdString?Định danh ảnh đã biến đổi.
cardBoxCardBox?Bounding box của thẻ.
qrCESNidQRData?Dữ liệu mã QR.
ocrCESNidOcrData?Dữ liệu OCR.
mrzCESNidMrzData?Dữ liệu MRZ.

CESNidQRData / CESNidOcrData / CESNidMrzData ​

TrườngKiểuMô tả
parsedFields[CESParsedField]?Các trường đã phân tích từ nguồn này.
rawString?Giá trị thô. Chỉ có ở QR.
confidenceScoreDouble?Độ tin cậy của lần trích xuất.

CESParsedField / CESCardInfo ​

TrườngKiểuMô tả
fieldString?Tên trường.
valueString?Giá trị trường.
confidenceVerdictString?Kết luận độ tin cậy.
confidenceScore / confidentScoreDouble?Điểm độ tin cậy.

Lưu ý các kiểu dữ liệu iOS dùng field trong khi các kiểu tương đương của Android và Flutter dùng key.

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.

CESFaceSanityData ​

TrườngKiểuMô tả
statusString?Trạng thái của kiểm tra sanity khuôn mặt.
portraitSanityCESPortraitSanity?Chi tiết sanity.
requestIdString?Định danh request.
imageCESPortraitImageInfo?Thông tin ảnh chân dung.
isSanityPassed()BoolTrue khi verdict là good.

CESPortraitSanity ​

TrườngKiểuMô tả
verdictString?Kết quả của kiểm tra sanity.
scoreDouble?Điểm độ tin cậy.

CESFaceLivenessData / CESLivenessResult ​

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.
results[CESLivenessResult]?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.

CESFaceCompareData / CESFaceCompare ​

TrườngKiểuMô tả
statusString?Trạng thái so sánh.
faceCompare[CESFaceCompare]?Kết quả so sánh.
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.

Delegate và Event ​

CESNidCapturingDelegate / CESFaceCapturingDelegate ​

TrườngKiểuMô tả
onEvent(event:)VoidMột sự kiện xảy ra trong lúc chụp.
onError(error:)VoidXảy ra lỗi.
onSuccess(result:)VoidChụp thành công.

CESEkycEvent ​

TrườngKiểuMô tả
idIntĐịnh danh sự kiện.
params[String: Any]Tham số sự kiện.
timestampDoubleThời điểm tạo, tính bằng mili-giây.
timeoutEvent-1000Xảy ra timeout.
faceSelfieAssessingResultEvent-1001Kết quả đánh giá selfie khuôn mặt.
nidAssessingResultEvent-1003Kết quả đánh giá NID.
faceSelfieResultEvent-1004Kết quả selfie.
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.
backClickedEvent-1018Nhấn nút back trên màn hình.
kCardTypecard_typeParam key cho loại thẻ.
kCardSidecard_sideParam key cho mặt thẻ.
kAssessingCodeassessing_codeParam key cho mã đánh giá.
kAssessingMessageassessing_messageParam key cho thông báo đánh giá.
kAutoCaptureauto_captureParam key cho tự động chụp.
kStepNamestep_nameParam key cho tên bước.
kSelfieImagesselfie_imagesParam key cho ảnh selfie.

CESError ​

public enum CESError: Error

TrườngKiểuMô tả
kErrorCodeTimeout40000Timeout.
kErrorCodeCancelled40001Người dùng hủy.
kErrorCodePermissionNotGranted40002Từ chối cấp quyền.
kErrorCodeUnexpected50000Lỗi không mong đợi.
kErrorCodeNidSanityFailed60000Lỗi sanity của NID.
kErrorCodeNidTamperingFailed60001Lỗi giả mạo của NID.
kErrorCodeFaceSanityFailed60002Lỗi sanity khuôn mặt.
kErrorCodeFaceLivenessFailed60003Lỗi liveness khuôn mặt.

Case: timeoutError, userCancelled, permissionNotGranted, unexpectedError(_ cause:), QualityFailed(code:detail:message:).

Bước tiếp theo ​

Developers