نظرة عامة
يسجل تقرير التحقق عبر NFC ما قرأته Didit وتحققت منه من شريحة NFC الخاصة بالمستند — سواء كان جواز سفر إلكتروني، أو بطاقة هوية إلكترونية، أو مستنداً إلكترونياً آخر متوافقاً مع معيار ICAO 9303. ويتضمن البيانات البيوغرافية للشريحة، وعمليات التحقق التشفيرية من سلامة البيانات (تجزئات SOD وتجزئات مجموعات البيانات)، وملخصاً لشهادة موقِّع المستند (DSC) المستخدمة من قبل دولة الإصدار. يتم إصدار التقرير بعد إتمام المستخدم لخطوة NFC في سير العمل. تقرأ Didit مجموعات البيانات للشريحة على جهاز المستخدم، وتتحقق من توقيع كائن أمان المستند (SOD) مقابل شهادة CSCA الخاصة بدولة الإصدار، وتفحص تجزئة كل مجموعة بيانات مقابل القيم الموقعة في SOD، وتطابق MRZ الخاص بالشريحة مع MRZ المستخرج عبر تقنية OCR من الوجه الظاهر للمستند. تتم قراءة بطاقة My Number اليابانية عبر JPKI بدلاً من ذلك (chip_protocol: "jpki"): حيث يتضمن تقريرها عمليات التحقق من الشهادة والتوقيع والإلغاء وبيانات الحامل تحت jpki، بينما تظل حقول ICAO فارغة null. راجع Japan My Number Card (JPKI).
يحمل كل تقرير قيمة status خاصة به — بشكل مستقل عن حالة الجلسة الإجمالية — تعكس نتيجة خطوة NFC وحدها:
- مقبولة — تمت قراءة الشريحة ولم يُطلق أي من التحذيرات التي تم إعدادها لتوجيه الخطوة إلى المراجعة أو الرفض.
- قيد المراجعة — تم إطلاق تحذير واحد على الأقل إجراءه المُعدّ هو المراجعة (على سبيل المثال
NFC_CHIP_NOT_VERIFIEDأوNFC_TRUST_ANCHOR_MISSINGعند تعيين إجراء الشريحة غير المتحقق منها إلى المراجعة، أوJPKI_REVOCATION_UNCHECKEDمع الإجراء الافتراضي الخاص به). - مرفوضة — تم إطلاق تحذير واحد على الأقل إجراءه المُعدّ هو الرفض (على سبيل المثال
NFC_AND_OCR_DATA_NOT_SAMEعند تعيين إجراء عدم تطابق البيانات إلى الرفض). - لم تكتمل — لم يُكمل المستخدم خطوة NFC إطلاقاً؛ إما أنه تُركت محاولة قراءة الشريحة أو أن الجهاز لا يدعم NFC.
- طُلبت إعادة الإرسال — طلب أحد المراجعين من المستخدم إعادة الإرسال؛ وسيتم استبدال التقرير بمحاولة جديدة.
أين يظهر في استجابات API
يأتي تقرير NFC داخل المصفوفةnfc_verifications[] — دائماً كمصفوفة JSON، وليس ككائن nfc فردي مطلقاً. تظهر عناصر متعددة عندما يشغّل سير العمل خطوة NFC أكثر من مرة (على سبيل المثال في مسار ترقية مستوى التحقق)؛ ويحمل كل عنصر قيمة node_id خاصة به.
- واجهة API لقرار الجلسة — يظهر كـ
nfc_verifications[]في المستوى الأعلى لـGET /v3/session/{sessionId}/decision/. راجع استرداد قرار الجلسة. - webhook — تتضمن payload الخاص بـ
status.updatedنفس المصفوفةnfc_verifications[]بمجرد أن تُنتج خطوة NFC بيانات. راجع webhook. - NFC المستقل — للإرسال المباشر لبيانات الشريحة، راجع نظرة عامة على NFC.
nfc_skip_reason يوضح السبب بدقة — سواء كان المستند لا يحتوي على شريحة، أو شهادة دولة الإصدار غير متوفرة، أو الجهاز لا يحتوي على قارئ NFC، أو تم التحقق دون استخدام SDK أصلي (لا يوجد وصول لـ NFC من المتصفح)، أو تعذر اشتقاق مفتاح الوصول إلى الشريحة من MRZ، أو تعذرت قراءة بطاقة My Number عبر JPKI، أو اختار المستخدم التخطي. ويظل الحقل null للنتائج الخارجة عن هذا التصنيف — والأكثر شيوعاً هو المستخدم الذي ترك المحاولة في منتصفها (حالة التقرير Not Finished) أو الجلسة التي لا تزال خطوة NFC فيها قيد الانتظار. راجع أسباب التخطي لمعرفة القيم الدقيقة.
أشارت الوثائق القديمة إلى حقل
nfc فردي. هذا الشكل غير موجود على endpoint قرار v3 — يظهر فقط في الوجهات المثبتة صراحة على webhook في الإصدار V2، حيث يحمل أيضاً chip_protocol وjpki. احرص دائماً على قراءة response.nfc_verifications[0] والتكرار عبر عناصر المصفوفة.المخطط
يوجد المخطط المرجعي الكامل، حقلاً بحقل، في صفحة مرجع نماذج البيانات. تعكس الحقول أدناه ذلك المخطط المرجعي.قيم الحالة
تحذيرا الشهادة (
DSC_CERTIFICATE_REVOKED وDSC_CERTIFICATE_EXPIRED) هما للعلم فقط: يظهران في warnings[] لكنهما لا يغيران قيمة status لـ NFC بمفردهما أبداً. راجع تحذيرات NFC للاطلاع على مصفوفة السلوك الكاملة.أمثلة
Approved — تمت قراءة الشريحة وهي صالحة تشفيرياً
Declined — عدم تطابق بين OCR والشريحة
بطاقة My Number اليابانية (JPKI)
تُقرأ بطاقة My Number اليابانية عبر JPKI في حزم SDK الأصلية: يُدخل الشخص رقم PIN الخاص بالبطاقة وتوقّع البطاقة تحدياً يُستخدم لمرة واحدة (راجع آلية العمل). يحتوي تقريرها علىchip_protocol: "jpki" ويحمل الأدلة ضمن jpki. تكون الحقول portrait_image وsignature_image وchip_data وauthenticity وcertificate_summary بالقيمة null، لأن البطاقة لا تحتوي على بيانات ICAO.
حقول JPKI
لا يحمل التقرير أبداً الشهادات نفسها، أو أرقامها التسلسلية، أو التوقيعات، أو الرقم الفردي (My Number) المكوّن من 12 رقماً للبطاقة، والذي لا تقرأه خطوة NFC مطلقاً.
مثال: قراءة بطاقة My Number
revocation_status: "unchecked"، وتحذيراً بقيمة JPKI_REVOCATION_UNCHECKED، وstatus: "In Review" وفقاً للإعدادات الافتراضية. راجع تحذيرات NFC.
ملاحظة أمنية
يتم توقيع بيانات شريحة NFC بواسطة جهة الإصدار، لذا فإن التقرير المقبول الذي يحتوي علىsod_integrity: true وdg_integrity: true يمثل أقوى إثبات هوية يمكن لـ Didit تقديمه. تعامل مع روابط الصور الموقعة (portrait_image، وsignature_image) على أنها قصيرة الأجل: نزّلها فوراً ولا تخزنها مؤقتاً بصورة عامة — أعد طلب القرار عندما تحتاج إلى روابط جديدة.
مواضيع ذات صلة
- تحذيرات NFC — قائمة قيم التحذيرات الكاملة، وأسبابها، وطرق معالجتها.
- webhook — الاستماع إلى حدث
status.updatedلتلقي تقرير NFC. - نماذج البيانات — التحقق عبر NFC — المخطط الأساسي متضمناً كل حقل.
- المستندات المدعومة — المستندات الإلكترونية التي يمكن لـ Didit قراءتها عبر NFC.