التحقق الصامت
يتيح التحقق الصامت لهوية عائدة تم التحقق منها مسبقًا إكمال معاملة التحقق من البطاقة غير الحاضرة دون شاشة التقاط مرئية. فبدلاً من مطالبة المستخدم بصورة سيلفي جديدة، تقيّم تقنية Unico الإشارات والتكرار في الخلفية لتحديد ما إذا كان يمكن الموافقة على المعاملة بصمت.
التحقق الصامت ليس منتجًا منفصلاً — إنه خطوة إضافية فوق نفس تدفق إنشاء المعاملات الموضح في معاملات الدفع وOnboarding بطاقة الائتمان. جمع إشارات السياق باستخدام SDK وإرسال نفس المفتاح الخارجي عند إنشاء المعاملة هو ما يتيح إمكانية الموافقة الصامتة.
- ينطبق التحقق الصامت عندما يكون هناك سجل كافٍ لتقيّم تقنية Unico الهوية من خلال الإشارات.
- عندما لا يكون هذا التقييم ممكنًا — بسبب نقص السجل أو لأسباب أخرى — تعود المعاملة إلى التدفق البصري القياسي بدلاً من ذلك. يمكن أن يحدث هذا، على سبيل المثال، في المرة الأولى التي تُرصد فيها هوية معينة على الشبكة.
قم بتثبيت وتهيئة SDK الالتقاط الخاص بمنصتك كالمعتاد — التحقق الصامت لا يغيّر هذا الإعداد. اتبع دليل جمع بيانات المراقبة الخاص بالمنصة لإرسال externalUserId:
Flutter غير مدعوم بعد للتحقق الصامت.
تصف أدلة جمع بيانات المراقبة externalUserId بأنها بيانات تتبع اختيارية "لا تغيّر سلوك التقاط SDK ولا استجابة API". هذا صحيح بالنسبة إلى SDK بمفرده. في التحقق من البطاقة غير الحاضرة، هذا الحقل نفسه هو ما يستخدمه الخادم الخلفي لتحديد ما إذا كان يمكن الموافقة على المعاملة بشكل صامت. إرسال هذا الحقل هو ما يفعّل التحقق الصامت لتلك المعاملة — فهو ليس بلا تأثير هنا.
هناك تعديلان مطلوبان على إعداد الالتقاط القياسي للحفاظ على صمت التدفق:
- الجوال (Android / iOS): استخدم إصدار
prepareCamera/prepareSelfieCameraالذي يستقبل كائنPrepareInfoمعexternalUserId، ولا تستدعِ طريقة فتح الكاميرا داخل رد نداء النجاح — إلا إذا كنت تريد فعلاً التدفق البصري الكامل لتلك الجلسة.
unicoCheckCamera.prepareCamera(unicoConfig, object : CameraListener {
override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Camera?) {
// لا حاجة لاستدعاء cameraOpener?.open() هنا — الجمع في الخلفية بدأ بالفعل.
}
override fun onCameraFailed(message: String?) { /* handle error */ }
}, PrepareInfo("YOUR_EXTERNAL_USER_ID"))
- الويب: استدعِ
setSilentInfo(externalUserId, useCase)على مثيلUnicoCheckBuilderقبل استدعاءprepareCamera/prepareSelfieCamera، وبالمثل تجنّب فتح الكاميرا في رد نداء النجاح.
unicoCamera.setSilentInfo("YOUR_EXTERNAL_USER_ID");
await unicoCamera.prepareSelfieCamera(config, SelfieCameraTypes.SMART);
// لا حاجة لفتح الكاميرا هنا — الجمع في الخلفية بدأ بالفعل.
يقوم SDK بجمع البيانات في الخلفية، لذا يجب أن تكون هناك فجوة زمنية دنيا قبل إنشاء المعاملة:
- ابدأ تحضير SDK قبل 4 ثوانٍ على الأقل من استدعاء API المعاملة — إذا كان ذلك مبكرًا جدًا، فقد لا يكون الجمع قد انتهى.
- البيانات المُجمَّعة صالحة لمدة تصل إلى 5 دقائق — إذا كان ذلك متأخرًا جدًا، ستكون قد انتهت صلاحيتها بحلول وقت إنشاء المعاملة.
externalUserID اختياري — لكن بدونه، لا يمكن أن يحدث التحقق الصامت لتلك المعاملة. عند إنشاء المعاملة — عبر معاملات الدفع أو Onboarding بطاقة الائتمان — أرسل نفس externalUserID بالضبط المستخدم في SDK، داخل additionalInfo:
{
"additionalInfo": {
"externalUserID": "YOUR_EXTERNAL_USER_ID"
}
}
إغفاله لا يتسبب في أي خطأ — لا تزال المعاملة تُنشأ بشكل طبيعي، فقط تتبع دائمًا التدفق القياسي مع الاحتكاك البصري.
إذا استوفت المعاملة الشروط وتمت الموافقة عليها بشكل صامت، فلا حاجة لأي إجراء إضافي:
{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "approved"
}
خلاف ذلك، تتضمن الاستجابة link لإكمال التدفق البصري القياسي، تمامًا مثل معاملة تم إنشاؤها بدون التحقق الصامت:
{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "waiting",
"link": "https://aces.so/example",
"token": "eyJhbGciOiJIUzI1NiIsInR5cC[...]Ok6yJV_adQssw5c"
}
بالنسبة إلى أي حالة أخرى، اتبع التدفق القياسي باستخدام link المُعاد — راجع التحكم في التجرب ة والقيم التعدادية للاطلاع على القائمة الكاملة للحالات.