메인 콘텐츠로 건너뛰기

사용자 여정

사용자 여정은 구성된 흐름과 연계하여 SDK가 조율하는 다단계 캡처 세션입니다. 예를 들어, idchecktrustdocssign 흐름은 단일 세션에서 셀피 + 문서 + 서명을 실행합니다.

사용 사례

사용 가능한 여정은 통합을 위해 구성된 흐름에 따라 다릅니다. 사용 사례 → 흐름 → 기능의 전체 매핑은 사용 사례를 참조하세요.

작동 방식

플러그인은 기반 네이티브 SDK에 위임합니다:

  1. 플러그인이 SmartFrame 오버레이와 함께 카메라(Android 또는 iOS)를 엽니다.
  2. 네이티브 SDK가 흐름에 필요한 캡처 시퀀스(셀피, 문서, 서명)를 조율합니다.
  3. SDK가 내부적으로 결과를 Unico에 전달합니다 — 클라이언트는 이미지 데이터를 직접 수신하거나 관리하지 않습니다.
  4. 플랫폼 채널을 통해 processId가 포함된 SuccessResult 객체를 반환합니다.

조율은 SDK에 의해 전적으로 처리됩니다 — Dart 코드에서 단계 시퀀스를 구현할 필요가 없습니다.

카메라 모드 (스마트 캡처)

SDK는 기본적으로 지능형 프레이밍자동 캡처가 활성화되어 있습니다. 빌더에서 카메라 모드를 다음과 같이 구성하세요:

UnicoCheckCameraOpener _opener = new UnicoCheck(this)
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();

위 메서드의 false/true 값은 캡처 경험을 변경하지 않으며, SDK 내부 로직에만 사용됩니다.

사용자 여정 시작
1단계UnicoListener 구현

UnicoListener는 SDK 수명 주기 콜백을 처리합니다. 네 가지 필수 메서드를 구현하세요:

메서드호출 시점
onErrorUnico(error)SDK 작동 중 오류 발생 시
onUserClosedCameraManually()사용자가 카메라를 수동으로 닫을 때
onSystemClosedCameraTimeoutSession()40초 세션 제한에 도달했을 때
onSystemChangedTypeCameraTimeoutFaceInference()13초 동안 얼굴이 감지되지 않아 수동 캡처로 전환될 때
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;

@override
void onErrorUnico(UnicoError error) {}

@override
void onUserClosedCameraManually() {}

@override
void onSystemClosedCameraTimeoutSession() {}

@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
필수 리스너 메서드

위의 네 가지 리스너 메서드는 프로젝트에 반드시 생성해야 합니다 (로직이 없어도 됩니다). 그렇지 않으면 프로젝트가 성공적으로 컴파일되지 않습니다.

2단계UnicoSelfie에 여정 리스너 구현

상태 클래스에 여정 콜백을 추가하세요:

메서드설명
onSuccess(SuccessResult result)캡처 성공 — processId가 포함된 SuccessResult 반환 (Unico가 내부적으로 이미지를 처리)
onErrorSelfie(UnicoError error)캡처 실패 — 코드 및 설명이 포함된 UnicoError 반환
이미지 데이터 없음

라이브니스 흐름과 달리, 사용자 여정 콜백은 base64 또는 encrypted반환하지 않습니다. Unico가 내부적으로 이미지 처리를 수행하고 processId만 반환합니다.

@override
void onSuccess(SuccessResult result) {
debugPrint('processId: ${result.processId}');
}

@override
void onErrorSelfie(UnicoError error) { }
3단계openCameraSelfie 호출

openCameraSelfie 메서드가 카메라를 엽니다. 사용자 여정의 경우, JSON 자격 증명 파일 대신 Unico에서 제공한 webAppToken을 전달하세요:

_opener.openCameraSelfie(
listener: this,
webAppToken: token,
);
모니터링 데이터 수집

openCameraSelfie 메서드는 사용자 세션과 흐름을 식별하는 데 도움이 되도록 UnicoCheckPrepareInfo를 통해 메타데이터를 받는 오버로드를 제공합니다:

  • externalUserId (String, 필수) — 시스템 내 사용자 식별자. 전송 전 SHA-256을 사용하여 자동으로 해시됩니다.
  • useCase (String, 선택) — 현재 실행 중인 컨텍스트 또는 흐름의 식별자. 일반 텍스트로 전송됩니다.
_opener.openCameraSelfie(
listener: this,
webAppToken: token,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

전체 결과 처리에 대해서는 결과 수신을 참조하세요.