رحلات المستخدم
رحلات المستخدم هي جلسات التقاط متعددة الخطوات يُنسِّقها SDK جنباً إلى جنب مع التدفق المُهيَّأ. على سبيل المثال، ينفِّذ تدفق يضم لايفنس + تصنيف مخاطر الاحتيال + التقاط الوثائق + التوقيع الإلكتروني كلاً من التقاط الصورة الشخصية والمستند والتوقيع في جلسة واحدة.
تعتمد الرحلات المتاحة على التدفق المُهيَّأ لتكاملك. راجع حالات الاستخدام للاطلاع على التعيين الكامل لحالة الاستخدام ← التدفق ← القدرة.
يقوم SDK بما يلي:
- يقرأ إعداد التدفق المُقدَّم أثناء التهيئة.
- يُنسِّق تسلسل عمليات الالتقاط المطلوبة للتدفق (صورة شخصية، مستند، توقيع).
- يُعيد كائن نتيجة لكل خطوة التقاط.
يتم التنسيق بالكامل من قِبَل SDK — لا تحتاج إلى تنفيذ تسلسل الخطوات في تطبيقك.
الخطوة 1 — تنفيذ AcessoBioManagerDelegate
تتولى AcessoBioManagerDelegate معالجة استدعاءات دورة حياة SDK. نفِّذ الطرق الأربع الإلزامية:
| الطريقة | متى يتم استدعاؤها |
|---|---|
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
يجب إنشاء جميع الطرق الأربع للتفويض المذكورة أعلاه في مشروعك (حتى بدون أي منطق). وإلا، لن يُكمَّل تحويل المشروع بنجاح.
الخطوة 2 — تطبيق AcessoBioSelfieDelegate
تجاوز الدوال للتعامل مع callbacks نتيجة التقاط الرحلة:
| الدالة | الوصف |
|---|---|
onSuccessSelfie(result) | تم التقاط الصورة بنجاح — يُعيد SelfieResult لاستدعاءات REST API اللاحقة |
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
استدعِ prepareSelfieCamera مع تمرير إعداد SDK. عندما تكون الكاميرا جاهزة، يتم تشغيل حدث onCameraReady — افتح الكاميرا من خلال دالة open()، مع تمرير web_app_token:
الـ web_app_token هو الحقل process.webAppToken الذي يُعيده POST /client/v1/process عند إنشاء العملية في الخادم الخلفي. راجع إنشاء عملية.
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 { }
للاطلاع على معالجة النتيجة الكاملة، راجع استقبال النتيجة.