मुख्य सामग्री पर जाएं

Liveness (बायोमेट्रिक सेल्फी)

एम्बेडेड liveness सत्यापन के साथ बायोमेट्रिक सेल्फी कैप्चर। SDK उपयोगकर्ता को तब तक मार्गदर्शन करता है जब तक SmartFrames के माध्यम से बायोमेट्रिक रूप से वैध फ्रेम प्राप्त नहीं हो जाता, और छवि को Base64 + JWT के रूप में वापस करता है।

क्षमता

इस कैप्चर प्रकार में Liveness क्षमता का उपयोग होता है। Liveness कैसे काम करता है इसके वैचारिक अवलोकन के लिए, Liveness क्षमता पृष्ठ देखें।

यह कैसे काम करता है

SDK पूरे कैप्चर सत्र का प्रबंधन करता है:

  1. SmartFrame ओवरले के साथ कैमरा खोलता है।
  2. उपयोगकर्ता को उनके चेहरे को फ्रेम के भीतर रखने के लिए मार्गदर्शन करता है।
  3. Liveness को सत्यापित करता है — सत्र केवल तभी पूर्ण होता है जब उपयोगकर्ता शारीरिक रूप से उपस्थित हो।
  4. base64 और encrypted (JWT) के साथ एक SelfieResult (उपनाम ResultCamera) ऑब्जेक्ट वापस करता है।
कैमरा मोड (स्मार्ट कैप्चर)

SDK में इंटेलिजेंट फ्रेमिंग और स्वचालित कैप्चर डिफ़ॉल्ट रूप से सक्षम हैं। अपने builder में कैमरा मोड को इस प्रकार कॉन्फ़िगर करें:

unicoCheck.setSmartFrame(true)
unicoCheck.setAutoCapture(true)
Liveness कैप्चर शुरू करना
चरण 1AcessoBioManagerDelegate लागू करें

AcessoBioManagerDelegate SDK lifecycle callbacks को संभालता है। चार अनिवार्य विधियां लागू करें:

विधिजब यह कॉल की जाती है
onErrorAcessoBioManager(error)SDK संचालन के दौरान त्रुटि हुई
onUserClosedCameraManually()उपयोगकर्ता ने मैन्युअल रूप से कैमरा बंद किया
onSystemClosedCameraTimeoutSession()40-सेकंड session सीमा पहुंच गई
onSystemChangedTypeCameraTimeoutFaceInference()13 सेकंड तक कोई चेहरा नहीं पहचाना — manual capture पर स्विच
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() { }
}
अनिवार्य delegate विधियां

ऊपर की सभी चार delegate विधियां आपके project में बनाई जानी चाहिए (चाहे बिना किसी logic के भी)। अन्यथा, project सफलतापूर्वक compile नहीं होगा।

चरण 2SelfieCameraDelegate और AcessoBioSelfieDelegate लागू करें

ये delegates सेल्फी कैप्चर परिणाम callbacks को संभालते हैं:

विधिविवरण
onSuccessSelfie(result)कैप्चर सफल रहा — base64 (पूर्वावलोकन) और encrypted (API के लिए JWT) के साथ SelfieResult वापस करता है
onErrorSelfie(errorBio)कैप्चर विफल रहा — कोड और विवरण के साथ एक ErrorBio वापस करता है
टोकन समाप्ति

encrypted उत्पन्न करने और इसे API को सबमिट करने के बीच का अंतराल 10 मिनट से अधिक नहीं होना चाहिए।

class ViewController: UIViewController, AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate {

func onSuccessSelfie(_ result: SelfieResult!) { }
func onErrorSelfie(_ errorBio: ErrorBio!) { }
}
चरण 3prepareSelfieCamera और open कॉल करें

SDK कॉन्फ़िग पास करते हुए prepareSelfieCamera कॉल करें। जब कैमरा तैयार हो, onCameraReady इवेंट एक AcessoBioCameraOpenerDelegate के साथ ट्रिगर होता है — open() विधि के माध्यम से कैमरा खोलें:

  • onCameraReady(cameraOpener) — कैमरा तैयार है; open(self) कॉल करें।
  • onCameraFailed(message) — कैमरा तैयारी विफल रही (ErrorPrepare, ErrorBio का एक विस्तार है)।
@IBAction func openCamera(_ sender: Any) {
unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
}

func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
cameraOpener.open(self)
}

func onCameraFailed(_ message: ErrorPrepare!) { }
निगरानी डेटा संग्रह

prepareSelfieCamera विधि एक ओवरलोड प्रदान करती है जो उपयोगकर्ता सत्र और प्रवाह की पहचान करने में सहायता के लिए PrepareInfo के माध्यम से मेटाडेटा स्वीकार करती है:

  • externalUserId (String, आवश्यक) — आपके सिस्टम में उपयोगकर्ता पहचानकर्ता। ट्रांसमिशन से पहले SHA-256 का उपयोग करके स्वचालित रूप से हैश किया जाता है।
  • useCase (String, वैकल्पिक) — वर्तमान में चल रहे संदर्भ या प्रवाह के लिए पहचानकर्ता (उदाहरण, "account_opening", "password_recovery")। सादे पाठ में प्रेषित।
let prepareInfo = PrepareInfo(
externalUserId: "external_user_id",
useCase: "use_case"
)
unicoCheck.build().prepareSelfieCamera(
self,
config: YourUnicoConfigClass(),
prepareInfo: prepareInfo
)

पूर्ण परिणाम हैंडलिंग के लिए, परिणाम प्राप्त करना देखें।