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ường | Kiểu | Mô 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:) | Void | Chụ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:) | Void | Chụ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() | Void | Kế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ường | Kiểu | Mô tả |
|---|---|---|
cardType | CESCardType | Loại thẻ NID (CCCD). |
frontSideImage | CESEkycImage? | Mặt trước của thẻ. |
backSideImage | CESEkycImage? | Mặt sau của thẻ. |
qrData | QRData? | Dữ liệu mã QR của NID. |
sanityResult | CESEkycResponse<CESNidSanityData>? | Kết quả kiểm tra sanity. |
tamperingResult | CESEkycResponse<CESNidTamperingData>? | Kết quả kiểm tra giả mạo. |
cardInfo | CESEkycResponse<CESNidReadInfoData>? | Thông tin thẻ đã trích xuất. |
CESNidCardResult.QRData
| Trường | Kiểu | Mô tả |
|---|---|---|
raw | String? | Giá trị chuỗi từ lần quét QR. |
image | CESEkycImage? | Ảnh mã QR. |
CESSelfieResult
| Trường | Kiểu | Mô tả |
|---|---|---|
faces | [Face]? | Các khuôn mặt đã chụp. |
sanityResult | [CESEkycResponse<CESFaceSanityData>]? | Response sanity cho từng ảnh khuôn mặt. |
livenessResult | CESEkycResponse<CESFaceLivenessData>? | Kết quả kiểm tra liveness. |
CESSelfieResult.Face
| Trường | Kiểu | Mô tả |
|---|---|---|
image | CESEkycImage? | Ảnh chân dung. |
gesture | String | Cử chỉ khuôn mặt: frontal, left, right, up, down. |
Cấu hình
CESConfig
| Trường | Kiểu | Mô tả |
|---|---|---|
languageCode | String | vi hoặc en. |
baseUrl | String | Base URL cho các network request. |
tokenProvider | TokenProvider? | Provider cung cấp authentication token. |
logger | Logger? | Sink nhận log. |
Config.Builder
| Trường | Kiểu | Mô 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() | Config | Tạo CESConfig. |
TokenProvider
| Trường | Kiểu | Mô tả |
|---|---|---|
getToken(timestamp:path:method:) | String | Trả về một authentication token cho request đã cho. |
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. |
CESTakeNidConfig
| Trường | Kiểu | Mô tả |
|---|---|---|
cardType | CESCardType | Loại thẻ, mặc định .cccd. |
cardSides | [CESCardSide] | 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. |
loadingView | UIView? | Giao diện loading tùy chỉnh. |
otherSideImages | [CESCardSide: CESEkycImage] | Mặt còn lại đã được chụp trước đó. |
CESTakeFaceConfig
| Trường | Kiểu | Mô tả |
|---|---|---|
captureOnly | Bool | Chế độ chỉ chụp, mặc định false. |
loadingView | UIView? | Giao diện loading tùy chỉnh. |
Params của request
| Trường | Kiểu | Mô tả |
|---|---|---|
CESCheckNidSanityParams | struct | image, image2?, cardType, specialTypeId? |
CESCheckNidTamperingParams | struct | image, image2?, cardType, level? |
CESNidReadInfoParams | struct | image, image2?, cardType |
CESFaceSanityParams | struct | image — id ảnh khuôn mặt |
CESFaceLivenessParams | struct | images — mảng id ảnh khuôn mặt |
CESFaceCompareParams | struct | image1, image2 |
Kiểu dữ liệu
CESEkycImage
| 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. |
image | UIImage? | Dữ liệu ảnh. |
CESEkycResponse
| Trường | Kiểu | Mô tả |
|---|---|---|
data | T? | Dữ liệu response. |
errors | [CESResponseError]? | 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. |
responseBody | String? | Response body thô. |
CESResponseError
| Trường | Kiểu | Mô tả |
|---|---|---|
code | String? | Mã lỗi. |
message | String? | Mô tả lỗi. |
CESCardType
| 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 CESCardType | CCCD Việt Nam. |
CESCardSide
public enum CardSide: String — giá trị front và back.
CESNidSanityData
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | success hoặc failure. |
cardSanity | CESCardSanity? | Chi tiết sanity của thẻ. |
image1 | CESNidResponseImage? | Ảnh NID thứ nhất. |
image2 | CESNidResponseImage? | Ảnh NID thứ hai. |
requestId | String? | Định danh request. |
CESCardSanity
| Trường | Kiểu | Mô tả |
|---|---|---|
verdict | String? | good khi kiểm tra đạt. Xem Định nghĩa kết luận. |
score | Double? | Điểm độ tin cậy. |
info | String? | Thông tin bổ sung. |
CESNidResponseImage
| Trường | Kiểu | Mô tả |
|---|---|---|
id | String? | Định danh ảnh. |
transformedImageId | String? | Định danh ảnh đã biến đổi. |
cardBox | CardBox? | Bounding box của thẻ. |
CESNidTamperingData
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | Trạng thái của kiểm tra giả mạo. |
cardTampering | CESCardTampering? | Chi tiết giả mạo. |
requestId | String? | Định danh request. |
imageId imageId2 | String? | Các ảnh được sử dụng. |
CESCardTampering / CESCardTemperingDetail
| Trường | Kiểu | Mô tả |
|---|---|---|
verdict | String? | good khi kiểm tra đạt, ngược lại là tín hiệu cụ thể. |
score | Double? | Điểm độ tin cậy. |
details | [CESCardTamperingDetail]? | Các tín hiệu giả mạo riêng lẻ. |
info | String? | Thông tin bổ sung. Chỉ có ở Detail. |
CESNidReadInfoData
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | Trạng thái trích xuất. |
image | CESReadNidImageData? | Dữ liệu từ ảnh thứ nhất. |
image2 | CESReadNidImageData? | Dữ liệu từ ảnh thứ hai. |
cardInfo | [CESCardInfo]? | Thông tin thẻ đã hợp nhất. |
requestId | String? | Định danh request. |
CESReadNidImageData
| Trường | Kiểu | Mô tả |
|---|---|---|
id | String? | Định danh ảnh NID. |
transformedImageId | String? | Định danh ảnh đã biến đổi. |
cardBox | CardBox? | Bounding box của thẻ. |
qr | CESNidQRData? | Dữ liệu mã QR. |
ocr | CESNidOcrData? | Dữ liệu OCR. |
mrz | CESNidMrzData? | Dữ liệu MRZ. |
CESNidQRData / CESNidOcrData / CESNidMrzData
| Trường | Kiểu | Mô tả |
|---|---|---|
parsedFields | [CESParsedField]? | Các trường đã phân tích từ nguồn này. |
raw | String? | Giá trị thô. Chỉ có ở QR. |
confidenceScore | Double? | Độ tin cậy của lần trích xuất. |
CESParsedField / CESCardInfo
| Trường | Kiểu | Mô tả |
|---|---|---|
field | String? | Tên trường. |
value | String? | Giá trị trường. |
confidenceVerdict | String? | Kết luận độ tin cậy. |
confidenceScore / confidentScore | Double? | Đ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ườ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. |
CESFaceSanityData
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | Trạng thái của kiểm tra sanity khuôn mặt. |
portraitSanity | CESPortraitSanity? | Chi tiết sanity. |
requestId | String? | Định danh request. |
image | CESPortraitImageInfo? | Thông tin ảnh chân dung. |
isSanityPassed() | Bool | True khi verdict là good. |
CESPortraitSanity
| Trường | Kiểu | Mô tả |
|---|---|---|
verdict | String? | Kết quả của kiểm tra sanity. |
score | Double? | Điểm độ tin cậy. |
CESFaceLivenessData / CESLivenessResult
| 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 | [CESLivenessResult]? | 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. |
CESFaceCompareData / CESFaceCompare
| Trường | Kiểu | Mô tả |
|---|---|---|
status | String? | Trạng thái so sánh. |
faceCompare | [CESFaceCompare]? | Kết quả so sánh. |
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. |
Delegate và Event
CESNidCapturingDelegate / CESFaceCapturingDelegate
| Trường | Kiểu | Mô tả |
|---|---|---|
onEvent(event:) | Void | Một sự kiện xảy ra trong lúc chụp. |
onError(error:) | Void | Xảy ra lỗi. |
onSuccess(result:) | Void | Chụp thành công. |
CESEkycEvent
| Trường | Kiểu | Mô tả |
|---|---|---|
id | Int | Định danh sự kiện. |
params | [String: Any] | Tham số sự kiện. |
timestamp | Double | Thời điểm tạo, tính bằng mili-giây. |
timeoutEvent | -1000 | Xảy ra timeout. |
faceSelfieAssessingResultEvent | -1001 | Kết quả đánh giá selfie khuôn mặt. |
nidAssessingResultEvent | -1003 | Kết quả đánh giá NID. |
faceSelfieResultEvent | -1004 | Kết quả selfie. |
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. |
backClickedEvent | -1018 | Nhấn nút back trên màn hình. |
kCardType | card_type | Param key cho loại thẻ. |
kCardSide | card_side | Param key cho mặt thẻ. |
kAssessingCode | assessing_code | Param key cho mã đánh giá. |
kAssessingMessage | assessing_message | Param key cho thông báo đánh giá. |
kAutoCapture | auto_capture | Param key cho tự động chụp. |
kStepName | step_name | Param key cho tên bước. |
kSelfieImages | selfie_images | Param key cho ảnh selfie. |
CESError
public enum CESError: Error
| Trường | Kiểu | Mô tả |
|---|---|---|
kErrorCodeTimeout | 40000 | Timeout. |
kErrorCodeCancelled | 40001 | Người dùng hủy. |
kErrorCodePermissionNotGranted | 40002 | Từ chối cấp quyền. |
kErrorCodeUnexpected | 50000 | Lỗi không mong đợi. |
kErrorCodeNidSanityFailed | 60000 | Lỗi sanity của NID. |
kErrorCodeNidTamperingFailed | 60001 | Lỗi giả mạo của NID. |
kErrorCodeFaceSanityFailed | 60002 | Lỗi sanity khuôn mặt. |
kErrorCodeFaceLivenessFailed | 60003 | Lỗi liveness khuôn mặt. |
Case: timeoutError, userCancelled, permissionNotGranted, unexpectedError(_ cause:), QualityFailed(code:detail:message:).
Bước tiếp theo
- Tích hợp iOS 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