الانتقال إلى المحتوى الرئيسي

محاكاة النتائج (Test Mock)

MarkdownChatGPTClaude

في sandbox، يمكنك محاكاة نتيجة عملية دون الاعتماد على التقاط بيومتري حقيقي. أضف الحقل expected_result إلى نص طلب إنشاء عملية — تبقى بقية عملية التكامل (عرض SDK، الالتقاط البيومتري، الحصول على العملية) كما هي تمامًا كما في التدفق الحقيقي.

المحاكاة (mock) لا تتخطى خطوة الالتقاط البيومتري. لا يزال المستخدم (أو نص الاختبار الخاص بك) بحاجة إلى إكمال التدفق العادي — ما يتغيّر هو أنه بمجرد الانتهاء، تُعيد العملية القيم المُحدَّدة في expected_result بدلاً من نتيجة التقييم الحقيقية.

يقبل كل flow تنسيقًا واحدًا فقط من التنسيقين أدناه، حسب كيفية تهيئته:

التنسيقمتى تستخدمه
id_cloud_one_resultالتدفقات التي تُعيد نتيجة واحدة (مقبولة، مرفوضة، مخاطر عالية، إلخ)
authentication_infoالتدفقات التي تُعيد إشارات فردية (UnicoId، Trust، Liveness، IdAge، IdFace...)

يؤدي إرسال التنسيق الذي لا يطابق flow الخاص بك، أو إرسال كليهما معًا، إلى حدوث خطأ — راجع الأخطاء.

النقطة النهائية​

البيئةالرابط
SandboxPOST https://api.idcloud.uat.unico.app/client/v1/process

المحاكاة متاحة فقط في sandbox. في الإنتاج، يُرفض الحقل expected_result.

نتيجة واحدة — id_cloud_one_result

استخدم هذا عندما يُعيد flow الخاص بك نتيجة واحدة على نمط الموافقة.

معاملات الطلب (Body)

الحقلالنوعمطلوبالوصف
expected_result.​id_cloud_one_resultstringنعمالنتيجة الواحدة المطلوب محاكاتها. يجب أن تكون نتيجة ينتجها flow الخاص بك فعليًا — تحقق من تهيئة التدفق الخاص بك لمعرفة النتائج التي يتعرف عليها.

مثال​

curl -X POST https://api.idcloud.uat.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expected_result": {
"id_cloud_one_result": "PROCESS_RESULT_APPROVED"
}
// ... باقي المعاملات هي نفسها التي تستخدمها في استدعاء إنشاء عملية حقيقي
}'

الاستجابة (200 OK)​

{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"flow": "your-sandbox-flow",
"simulated": true,
"capacities": ["PROCESS_CAPACITY_IDCHECK"],
"person": { "duiType": "DUI_TYPE_BR_CPF", "duiValue": "12345678909" }
}
}

تُشير simulated: true إلى أن هذه العملية لها نتيجة محاكاة، وليست تقييمًا حقيقيًا.

القيم الممكنة لـ id_cloud_one_result هي نفس قيم نتيجة العملية الموثّقة في تفسير النتائج — أرسل فقط نتيجة يتعرف عليها flow الخاص بك فعليًا.

Brazilإشارات فردية — authentication_info

استخدم هذا عندما يُعيد flow الخاص بك إشارات منفصلة بدلاً من نتيجة واحدة.

يجب أن تكون كل إشارة يُعيدها flow الخاص بك عادةً موجودة في authentication_info. يُرفض إرسال بعضها فقط — لا يمكنك محاكاة إشارة واحدة وترك الباقي للتقييم الحقيقي.

trust_result مقابل identity_fraudsters_result

يمثل trust_result وidentity_fraudsters_result الإشارة نفسها (مؤشر احتيال الهوية): يغطي trust_result الجانب السلبي، بينما يغطي identity_fraudsters_result الجانب الإيجابي. استخدم أيهما يطابق النتيجة التي تريد محاكاتها.

للاطلاع على القيم الممكنة لكل حقل، راجع نتائج الإمكانيات في authenticationInfo.

تدفقات Frictionless غير مدعومة في هذا التنسيق — راجع إشارات غير مدعومة.

مثال​

curl -X POST https://api.idcloud.uat.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expected_result": {
"authentication_info": {
"authentication_result": "AUTHENTICATION_RESULT_POSITIVE",
"liveness_result": "LIVENESS_RESULT_LIVE",
"id_age_result": "ID_AGE_RESULT_POSITIVE"
}
}
// ... باقي المعاملات هي نفسها التي تستخدمها في استدعاء إنشاء عملية حقيقي
}'

الاستجابة (200 OK)​

{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"flow": "your-sandbox-flow",
"simulated": true,
"capacities": ["PROCESS_CAPACITY_IDUNICO", "PROCESS_CAPACITY_IDAGE"],
"authenticationInfo": {
"authenticationResult": "AUTHENTICATION_RESULT_POSITIVE",
"livenessResult": "LIVENESS_RESULT_LIVE",
"idAgeResult": "ID_AGE_RESULT_POSITIVE"
},
"person": { "duiType": "DUI_TYPE_BR_CPF", "duiValue": "12345678909" }
}
}

إشارات غير مدعومة​

الإشارات أدناه غير مدعومة من قبل المحاكاة (mock)، في أي من التنسيقين:

  • multi_accounts
  • data_mismatch
  • serial_fraudster
  • smart_revalidation_result
  • passkey_result (مُهملة)

تُدعم تدفقات Frictionless (المصادقة بدون التقاط بيومتري) فقط في تنسيق id_cloud_one_result — لا تعمل مع authentication_info.

ملاحظات حول الاستجابة​

تُعاد الدرجة (Score) فقط عندما تكون نتيجة الهوية غير حاسمة. يعكس الحقل score_engine_result قيمة فقط عندما يكون authentication_result هو AUTHENTICATION_RESULT_INCONCLUSIVE. إذا حاكيت authentication_result بالقيمة POSITIVE أو NEGATIVE مع score_engine_result غير صفري، فإن الاستجابة النهائية تُعيد score_enabled: SCORE_ENABLED_FALSE وscore: 0، بغض النظر عن القيمة المُرسَلة.

هذا هو السلوك الطبيعي لـ API — تنطبق القاعدة نفسها على العمليات الحقيقية، وليست خاصة بالمحاكاة. إذا كان السيناريو الذي تريد اختباره يعتمد على ظهور الدرجة في الاستجابة، استخدم authentication_result: AUTHENTICATION_RESULT_INCONCLUSIVE.

الأخطاء​

الحالةالخطأ
expected_result خارج sandboxPERMISSION_DENIED
إرسال id_cloud_one_result وauthentication_info معًاINVALID_ARGUMENT
authentication_info: {} فارغINVALID_ARGUMENT
authentication_info تفتقد إشارة يُعيدها التدفقخطأ تحقق — أدرج كل إشارة
قيمة id_cloud_one_result لا يتعرف عليها التدفقخطأ تحقق
لا يدعم flow المحاكاةخطأ تحقق

الخطوات التالية​

بعد إنشاء العملية المحاكاة، أكمل الالتقاط البيومتري بشكل طبيعي واستخدم الحصول على العملية لاسترجاع النتيجة المحاكاة.