Skip to content

Kiến trúc Web SDK ​

Cách eKYC Web SDK được tổ chức bên trong: bố cục module, năm layer kiến trúc, và các class tạo nên mỗi layer. Hữu ích khi mở rộng SDK hoặc chèn view tùy chỉnh.

Bố cục module ​

TrườngKiểuMô tả
CakeEkycSDK.tsmoduleEntry point chính, chứa class CakeEkycSDK.
common/directoryCác class và hằng số tiện ích dùng chung trong toàn SDK.
data/directoryThao tác dữ liệu — HTTP request và logic repository.
face/directoryScan, xác minh và cấu hình khuôn mặt.
nid/directoryScan, xác minh và cấu hình NID.
pipeline/directoryLogic quy trình xử lý.
utils/directoryCác hàm tiện ích.

Các layer ​

1. Presentation Layer ​

Giao diện mà người dùng tương tác — render các phần tử, chụp đầu vào, hiển thị phản hồi.

TrườngKiểuMô tả
DefaultCakeFaceScanViewclassGiao diện scan khuôn mặt.
DefaultCakeNIDScanViewclassGiao diện scan NID.
DefaultCakeNIDPreviewclassGiao diện xác nhận NID.
DefaultCakeLoadingViewclassGiao diện loading.

2. Business Logic Layer ​

TrườngKiểuMô tả
CakeEkycSDKclassĐiều phối luồng xử lý và kết nối các thành phần.
DefaultCakeFaceScannerclassChạy một lượt scan khuôn mặt.
CakeNIDScanTaskclassChạy một lượt scan NID.
CakeFaceVerifyStepclassXác minh ảnh khuôn mặt.
CakeNIDVerifyStepclassXác minh ảnh NID.
FaceAssessorFactoryclassDựng bộ đánh giá khuôn mặt tổng hợp.
NIDAssessorFactoryclassDựng bộ đánh giá NID tổng hợp.

3. Data Access Layer ​

TrườngKiểuMô tả
CakeKYCRepositoryinterfaceHợp đồng cho mọi lệnh gọi API.
DefaultCakeKYCRepositoryclassTriển khai — xử lý mọi lệnh gọi API bao gồm cả tải ảnh lên.
HttpClientclassThực hiện các HTTP request.

4. Configuration Layer ​

TrườngKiểuMô tả
SDKConfigParamstypeBase URL, token và resource path.
CakeLivenessConfigclassKiểm tra cục bộ, kiểm tra từ xa và schema cho liveness.
CakeNIDConfigclassKiểm tra cục bộ và từ xa cho NID.
DefaultCakeConfigParsersclassPhân tích cấu hình được lấy về từ server.

5. Model Layer ​

TrườngKiểuMô tả
CESUploadRequest / CESUploadResponsetypeTải ảnh lên.
CESCardSanityRequest / CESCardSanityResponsetypeSanity của thẻ.
CESCardTamperingRequest / CESCardTamperingResponsetypeGiả mạo thẻ.
CESReadCardInfoRequest / CESReadCardInfoResponsetypeTrích xuất thông tin thẻ.
CESFaceSanityRequest / CESFaceSanityResponsetypeSanity khuôn mặt.
CESFaceLivenessRequest / CESFaceLivenessResponsetypeLiveness khuôn mặt.
CESCompareFaceRequest / CESCompareFaceResponsetypeSo sánh khuôn mặt.
CakeNIDCardSideenumFRONT hoặc BACK.

Luồng giao tiếp ​

  1. Người dùng tương tác với Presentation Layer.
  2. Business Logic Layer xử lý các tương tác đó.
  3. Khi cần, nó yêu cầu dữ liệu từ Data Access Layer.
  4. Data Access Layer gọi dịch vụ bên ngoài — ví dụ tải một ảnh lên.
  5. Kết quả chảy ngược lên qua các layer để cập nhật giao diện.

Việc tải ảnh lên diễn ra ở Data Access Layer: DefaultCakeKYCRepository.uploadImage() dựng một FormData và post nó đến endpoint API.

CakeEkycSDK ​

Interface chính.

TrườngKiểuMô tả
containerHTMLElementPhần tử DOM nơi SDK render giao diện của nó.
faceConfigCakeLivenessConfigCấu hình cho các thao tác khuôn mặt.
nidConfigCakeNIDConfigCấu hình cho các thao tác NID.
sdkConfigSDKConfigParamsCấu hình chung của SDK.
repositoryCakeKYCRepositoryXử lý các lệnh gọi API và thao tác dữ liệu.

Phương thức ​

TrườngKiểuMô tả
initialize(container, sdkConfig)Promise<CakeEkycSDK>Khởi tạo SDK, lấy và phân tích cấu hình từ server.
scanFace()CakeFaceScannerBắt đầu một lượt scan khuôn mặt bằng một face scan view và assessor.
scanNID(cardSide, elements?)CakeNIDScanner | nullBắt đầu một lượt scan NID cho một mặt, dùng view và assessor được chèn vào hoặc mặc định.
verifyNID(input)CakeNIDVerifyStepXác minh NID đã scan.
verifyFaces(faceImages, isFaceAuth?)CakeFaceVerifyStepXác minh ảnh khuôn mặt cho liveness hoặc xác thực.
verifyPair(params)Promise<CESCompareFaceResponse>So sánh độ tương đồng giữa hai khuôn mặt.
verifyFaceAuthentication(params)Promise<CESVerifyFaceAuthenticationResponse>Xác minh xác thực khuôn mặt phía server.

CakeKYCRepository ​

Hợp đồng data-access. Mỗi phương thức ánh xạ đến một endpoint của API.

TrườngKiểuMô tả
config()Promise<HttpResponse<CESConfigResponse>>Lấy cấu hình SDK.
uploadImage(params)Promise<HttpResponse<CESUploadResponse>>Tải ảnh lên
checkCardSanity(params)Promise<HttpResponse<CESCardSanityResponse>>Xác minh ID Card Sanity
checkCardTampering(params)Promise<HttpResponse<CESCardTamperingResponse>>Phát hiện giả mạo thẻ ID
readIdCardInfo(params)Promise<HttpResponse<CESReadCardInfoResponse>>Đọc thông tin thẻ ID
checFaceSanity(params)Promise<HttpResponse<CESFaceSanityResponse>>Xác minh sanity khuôn mặt
checFaceLiveness(params)Promise<HttpResponse<CESFaceLivenessResponse>>Xác minh liveness khuôn mặt
compareFace(params)Promise<HttpResponse<CESCompareFaceResponse>>So sánh khuôn mặt
verifyFaceAuthentication(params)Promise<HttpResponse<CESVerifyFaceAuthenticationResponse>>Xác minh FaceAuthen.

INFO

checFaceSanity và checFaceLiveness được viết thiếu chữ k thứ hai trong source của SDK. Hãy dùng đúng như vậy — đây là tên phương thức thật sự, không phải lỗi gõ trong tài liệu này.

Chèn view tùy chỉnh ​

scanNID nhận một CakeNIDScanInjectElements để bạn có thể thay thế giao diện mặc định.

TrườngKiểuMô tả
scanViewCakeNIDScanViewTriển khai render, presentAccessingResult, startCamera, stopCamera.
assessorNIDAssessorTriển khai execute(input): NIDAssessingResult.
confirmationViewCakeNIDPreviewTriển khai show, hide, onConfirm, onRetry.

Cùng mẫu hình này áp dụng cho scan khuôn mặt qua CakeFaceScanView và FaceAssessor.

Bước tiếp theo ​

Developers