사용자 여정
사용자 여정(User Journeys)은 SDK가 설정된 플로우와 함께 조율하는 다단계 캡처 세션입니다. 예를 들어, 라이브니스 + 사기 위험 분류 + 문서 캡처 + 전자 서명이 포함된 플로우는 단일 세션에서 셀피, 문서 캡처, 서명을 순서대로 실행합니다.
사용 사례
사용 가능한 여정은 통합에 설정된 플로우에 따라 다릅니다. 사용 사례 → 플로우 → 기능의 전체 매핑은 사용 사례를 참조하세요.
작동 방식
SDK는:
- 초기화 중에 제공된 플로우 구성을 읽습니다.
- 플로우에 필요한 캡처 순서(셀피, 문서, 서명)를 조율합니다.
- 각 캡처 단계에 대한 결과 객체를 반환합니다.
조율은 SDK가 전적으로 처리하므로 앱에서 단계 순서를 직접 구현할 필요가 없습니다.
사용자 여정 시작
1단계 — AcessoBioManagerDelegate 구현
AcessoBioManagerDelegate는 SDK 라이프사이클 콜백을 처리합니다. 필수 메서드 4개를 구현하세요:
| 메서드 | 호출 시점 |
|---|---|
onErrorAcessoBioManager(error) | SDK 작동 중 오류 발생 |
onUserClosedCameraManually() | 사용자가 카메라를 수동으로 닫음 |
onSystemClosedCameraTimeoutSession() | 40초 세션 제한 도달 |
onSystemChangedTypeCameraTimeoutFaceInference() | 13초 동안 얼굴이 감지되지 않음 — 수동 캡처로 전환 |
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate {
var unicoCheck: AcessoBioManager!
override func viewDidLoad() {
super.viewDidLoad()
unicoCheck = AcessoBioManager(viewController: self)
}
func onErrorAcessoBioManager(_ error: ErrorBio!) { }
func onUserClosedCameraManually() { }
func onSystemClosedCameraTimeoutSession() { }
func onSystemChangedTypeCameraTimeoutFaceInference() { }
}
@implementation ViewController: UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];
}
- (void)onErrorAcessoBioManager:(ErrorBio *)error { }
- (void)onSystemChangedTypeCameraTimeoutFaceInference { }
- (void)onSystemClosedCameraTimeoutSession { }
- (void)onUserClosedCameraManually { }
@end
필수 델리게이트 메서드
위의 4개 델리게이트 메서드는 프로젝트에서 모두 생성해야 합니다 (로직이 없어도). 그렇지 않으면 프로젝트가 컴파일되지 않습니다.
2단계 — AcessoBioSelfieDelegate 구현
여정 캡처 결과 콜백을 처리하도록 메서드를 재정의합니다:
| 메서드 | 설명 |
|---|---|
onSuccessSelfie(result) | 이미지가 성공적으로 캡처됨 — 이후 REST API 호출에 사용할 SelfieResult를 반환 |
onSuccess(result) | WebApp 플로우가 성공적으로 완료됨 — 검증 결과 조회에 사용되는 processId를 반환 |
onErrorSelfie(errorBio) | 캡처 실패 — 오류 세부 정보가 포함된 ErrorBio를 반환 |
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate {
func onSuccessSelfie(_ result: SelfieResult!) { }
func onSuccess(_ result: SuccessResult!) { }
func onErrorSelfie(_ errorBio: ErrorBio!) { }
}
@interface ViewController: UIViewController <AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate>
@end
@implementation ViewController
- (void)onSuccessSelfie:(SelfieResult *)result { }
- (void)onSuccess:(SuccessResult *)result { }
- (void)onErrorSelfie:(ErrorBio *)errorBio { }
@end
3단계 — prepareSelfieCamera 및 open 호출
SDK 구성을 전달하며 prepareSelfieCamera를 호출합니다. 카메라가 준비되면 onCameraReady 이벤트가 트리거됩니다 — web_app_token을 전달하며 open() 메서드를 통해 카메라를 엽니다:
web_app_token
web_app_token은 백엔드에서 프로세스를 생성할 때 POST /client/v1/process가 반환하는 process.webAppToken 필드입니다. 프로세스 생성을 참조하세요.
onCameraReady(cameraOpener)— 카메라 준비 완료;open(self, webAppToken:)호출.onCameraFailed(message)— 카메라 준비 실패(ErrorPrepare는ErrorBio의 확장입니다).
- Swift
- Objective-C
@IBAction func openCamera(_ sender: Any) {
unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
}
func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
cameraOpener.open(self, webAppToken: "your_web_app_token")
}
func onCameraFailed(_ message: ErrorPrepare!) { }
- (IBAction)openCamera:(UIButton *)sender {
[[unicoCheck build] prepareSelfieCamera:self config:[YourUnicoConfigClass new]];
}
- (void)onCameraReady:(id)cameraOpener {
[cameraOpener open:self webAppToken:@"your_web_app_token"];
}
- (void)onCameraFailed:(ErrorPrepare *)message { }
전체 결과 처리에 대해서는 결과 수신을 참조하세요.