تجاوز إلى المحتوى الرئيسي
Didit تجمع 7.5 مليون دولار لبناء البنية التحتية للهوية والاحتيال
Didit
العودة إلى المدونة
المدونة · 7 مارس 2026

فحوصات الهوية المرنة في Go باستخدام أساسيات Didit (AR)

اكتشف كيفية تصميم بنية إضافية مرنة في Go لفحوصات الهوية المخصصة، مستفيدًا من أساسيات Didit المعيارية للهوية. يتيح هذا النهج سير عمل تحقق قابل للتطوير والتكيف بسهولة.

بواسطة Diditتحديث
extensible-identity-checks-in-go-with-didits-primitives.png

تصميم معياري للرشاقةإن بناء بنية إضافية قابلة للتوسيع في Go يتيح للشركات التكيف بسرعة مع لوائح الامتثال المتطورة ومتجهات الاحتيال الجديدة دون الحاجة إلى إصلاح نظام التحقق من الهوية بالكامل.

الاستفادة من نقاط قوة Goتعتبر Go لغة مثالية لتطوير خدمات قوية وقابلة للتطوير للتحقق من الهوية قادرة على التعامل مع الإنتاجية العالية، وذلك بفضل كتابتها القوية وأدائها وميزات التزامن.

قابلية التركيب مع أساسيات Diditيوفر دمج أساسيات Didit للهوية الأصلية لـ AI، مثل التحقق من الهوية، والتحقق من الحيوية السلبية والنشطة، وفحص مكافحة غسيل الأموال (AML)، مكونات قوية ومبنية مسبقًا يمكن تنظيمها ضمن مكونات Go الإضافية المخصصة.

نهج Didit الموجه للمطورين أولاًتعد واجهات برمجة التطبيقات النظيفة من Didit، وبيئة الاختبار الفورية، والبنية المعيارية مناسبة تمامًا للمطورين الذين يبنون أنظمة قابلة للتوسيع، حيث تقدم خدمة KYC الأساسية المجانية وبدون رسوم إعداد لتسريع التطوير.

الحاجة إلى التحقق من الهوية القابل للتوسيع

في المشهد الرقمي سريع التغير اليوم، لم يعد التحقق من الهوية (IDV) عملية ثابتة. تتطور اللوائح، وتظهر تقنيات احتيال جديدة، وتتغير احتياجات العمل. يصبح نظام IDV الجامد والمتكامل عنق الزجاجة بسرعة، مما يعيق الابتكار ويزيد من مخاطر الامتثال. لهذا السبب، فإن بنية المكونات الإضافية القابلة للتوسيع ليست مجرد رفاهية بل ضرورة، خاصة للمطورين الذين يعملون بلغات عالية الأداء مثل Go.

تتيح البنية القابلة للتوسيع للشركات إضافة أو إزالة أو تعديل فحوصات الهوية ديناميكيًا دون إعادة نشر الخدمة بأكملها. هذه المرونة حاسمة للتكيف مع متطلبات KYC (اعرف عميلك) الخاصة بالمنطقة، أو دمج آليات الكشف عن الاحتيال المتطورة، أو تجربة تدفقات جديدة لتسجيل المستخدمين. على سبيل المثال، قد تحتاج الشركة في البداية إلى التحقق الأساسي من الهوية واكتشاف الحيوية. لاحقًا، قد تحتاج إلى إضافة تقدير العمر لمنتجات محددة أو دمج فحص AML للمعاملات المالية. يتعامل النظام القائم على المكونات الإضافية مع هذه الإضافات بسلاسة.

تصميم بنية المكونات الإضافية في Go

يعد تصميم Go القائم على الواجهة والكتابة القوية خيارًا ممتازًا لبناء أنظمة مكونات إضافية قوية. الفكرة الأساسية هي تحديد واجهة مشتركة يجب أن تنفذها جميع "المكونات الإضافية" لفحص الهوية. تعمل هذه الواجهة كعقد، مما يضمن إمكانية دمج أي فحص جديد بسلاسة في سير العمل الحالي.

تحديد واجهة فحص الهوية

دعنا نأخذ في الاعتبار واجهة بسيطة لفحص الهوية:

package main

type IdentityCheckResult struct {
    Passed  bool
    Details string
}

type IdentityChecker interface {
    Name() string
    Execute(data map[string]interface{}) (IdentityCheckResult, error)
}

هنا، تحدد IdentityChecker طريقتين: Name() لتحديد المكون الإضافي و Execute() لإجراء الفحص الفعلي، مع أخذ بيانات إدخال عامة وإرجاع نتيجة. يتيح هذا التجريد فحوصات متنوعة، من التحقق من المستندات إلى التحليل البيومتري.

تنفيذ فحوصات مخصصة باستخدام أساسيات Didit

الآن، دعنا نرى كيف يمكننا تنفيذ فحوصات هوية محددة باستخدام أساسيات Didit القوية ضمن إطار عمل هذا المكون الإضافي. إن بنية Didit المعيارية، وواجهات برمجة التطبيقات النظيفة، وقدرات الذكاء الاصطناعي الأصلية تجعل دمج هذه الخدمات المتقدمة أمرًا بسيطًا.

مثال: مكون Didit الإضافي للتحقق من الهوية

للتحقق من الهوية المستند إلى المستندات، يمكننا إنشاء مكون إضافي يستفيد من منتج Didit للتحقق من الهوية، والذي يتضمن التعرف الضوئي على الحروف (OCR)، ورمز MRZ، ومسح الباركود عبر أكثر من 220 دولة. سيرسل هذا المكون الإضافي صور المستندات والبيانات إلى واجهة برمجة تطبيقات Didit ويعالج الاستجابة.

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)

type DiditIDVCheck struct{}

func (d *DiditIDVCheck) Name() string {
    return "DiditIDVerification"
}

func (d *DiditIDVCheck) Execute(data map[string]interface{}) (IdentityCheckResult, error) {
    documentImage, ok := data["documentImage"].(string)
    if !ok {
        return IdentityCheckResult{Passed: false, Details: "Missing document image"}, nil
    }

    // في تطبيق حقيقي، سترسل الصورة إلى واجهة برمجة تطبيقات Didit للتحقق من الهوية.
    // لهذا المثال، سنحاكي مكالمة.
    // الوثائق: https://docs.didit.me/core-technology/id-verification

    // محاكاة استدعاء واجهة برمجة تطبيقات Didit للتحقق من الهوية
    // استبدل باستدعاء واجهة برمجة تطبيقات فعلية ومعالجة الأخطاء
    fmt.Printf("جاري استدعاء Didit للتحقق من الهوية للصورة: %s...\n", documentImage[:20]) // اقتطاع للعرض
    
    // افترض استجابة ناجحة للتوضيح
    if documentImage != "invalid_id_image" {
        return IdentityCheckResult{Passed: true, Details: "تم التحقق من مستند الهوية بواسطة Didit."}, nil
    } else {
        return IdentityCheckResult{Passed: false, Details: "فشل التحقق من مستند الهوية بواسطة Didit." + " تم توفير صورة غير صالحة."}, 
            fmt.Errorf("فشل التحقق من الهوية بواسطة Didit")
    }
}

مثال: مكون Didit الإضافي لفحص الحيوية

لمكافحة التزييف العميق وهجمات العرض، يعد فحص الحيوية أمرًا ضروريًا. تقدم Didit اكتشاف الحيوية السلبية والنشطة. يمكن لمكون إضافي دمج هذا، ومعالجة مقطع فيديو قصير أو سلسلة من الصور.

package main

type DiditLivenessCheck struct{}

func (d *DiditLivenessCheck) Name() string {
    return "DiditLivenessDetection"
}

func (d *DiditLivenessCheck) Execute(data map[string]interface{}) (IdentityCheckResult, error) {
    livenessVideo, ok := data["livenessVideo"].(string)
    if !ok {
        return IdentityCheckResult{Passed: false, Details: "Missing liveness video"}, nil
    }

    // محاكاة استدعاء واجهة برمجة تطبيقات Didit لاكتشاف الحيوية
    // استبدل باستدعاء واجهة برمجة تطبيقات فعلية ومعالجة الأخطاء
    fmt.Printf("جاري استدعاء Didit لاكتشاف الحيوية للفيديو: %s...\n", livenessVideo[:20])

    if livenessVideo != "deepfake_video" {
        return IdentityCheckResult{Passed: true, Details: "تم اكتشاف الحيوية بواسطة Didit."}, nil
    } else {
        return IdentityCheckResult{Passed: false, Details: "فشل اكتشاف الحيوية بواسطة Didit." + " تم اكتشاف تزييف عميق."}, 
            fmt.Errorf("فشل اكتشاف الحيوية بواسطة Didit")
    }
}

تنظيم تدفقات العمل باستخدام المكونات الإضافية

بمجرد أن تكون لديك المكونات الإضافية، تحتاج إلى آلية لتنظيمها في سير عمل متماسك. توفر Didit's Orchestrated Workflows منشئًا مرئيًا بدون رمز لهذا الغرض، ولكن إذا كنت تقوم ببناء خدمة Go مخصصة، فيمكنك إدارة هذا المنطق برمجيًا.

package main

import "fmt"

// منسق بسيط
type Workflow struct {
    Checks []IdentityChecker
}

func (w *Workflow) AddCheck(checker IdentityChecker) {
    w.Checks = append(w.Checks, checker)
}

func (w *Workflow) Run(userData map[string]interface{}) ([]IdentityCheckResult, error) {
    var results []IdentityCheckResult
    for _, check := range w.Checks {
        fmt.Printf("\nجاري تشغيل فحص %s...\n", check.Name())
        res, err := check.Execute(userData)
        results = append(results, res)
        if err != nil || !res.Passed {
            fmt.Printf("فشل الفحص %s: %s\n", check.Name(), res.Details)
            return results, fmt.Errorf("فشل سير العمل عند %s: %w", check.Name(), err)
        }
        fmt.Printf("نجح الفحص %s: %s\n", check.Name(), res.Details)
    }
    return results, nil
}

func main() {
    workflow := &Workflow{}
    workflow.AddCheck(&DiditIDVCheck{})
    workflow.AddCheck(&DiditLivenessCheck{})

    // بيانات المستخدم المثال
    userData := map[string]interface{}{
        "documentImage": "valid_passport_image_base64",
        "livenessVideo": "valid_liveness_video_base64",
        "name":          "Jane Doe",
    }

    fmt.Println("--- جاري تشغيل سير عمل ناجح ---")
    results, err := workflow.Run(userData)
    if err != nil {
        fmt.Printf("اكتمل سير العمل مع أخطاء: %v\n", err)
    } else {
        fmt.Println("اكتمل سير العمل بنجاح!")
    }
    for _, r := range results {
        fmt.Printf("- %s: نجح = %t، التفاصيل = %s\n", r.Name, r.Passed, r.Details)
    }

    // مثال على سير عمل فاشل
    fmt.Println("\n--- جاري تشغيل سير عمل فاشل (معرف غير صالح) ---")
    failingUserData := map[string]interface{}{
        "documentImage": "invalid_id_image",
        "livenessVideo": "valid_liveness_video_base64",
        "name":          "John Smith",
    }
    failingResults, err := workflow.Run(failingUserData)
    if err != nil {
        fmt.Printf("اكتمل سير العمل مع أخطاء: %v\n", err)
    } else {
        fmt.Println("اكتمل سير العمل بنجاح!")
    }
    for _, r := range failingResults {
        fmt.Printf("- %s: نجح = %t، التفاصيل = %s\n", r.Name, r.Passed, r.Details)
    }
}

يقوم هذا المنسق البسيط بتنفيذ الفحوصات بالتتابع. في سيناريو العالم الحقيقي، قد تضيف منطقًا شرطيًا، أو تنفيذًا متوازيًا، أو عمليات إعادة محاولة، مما يعكس قدرات منشئ سير العمل بدون رمز من Didit.

اعتبارات متقدمة لبنى المكونات الإضافية في Go

عند بناء بنية مكونات إضافية جاهزة للإنتاج في Go، ضع في اعتبارك هذه الجوانب:

  • معالجة الأخطاء: تنفيذ معالجة أخطاء وتسجيل قوي لكل مكون إضافي.
  • التكوين: السماح بتكوين المكونات الإضافية ديناميكيًا (على سبيل المثال، مفاتيح واجهة برمجة التطبيقات، الحدود).
  • تحميل المكونات الإضافية: للحصول على قابلية توسيع حقيقية بدون إعادة تجميع، استكشف حزمة plugin في Go (على الرغم من أنها تحتوي على قيود على النظام الأساسي) أو العمليات الخارجية/gRPC للاتصال بين العمليات.
  • الأمان: تأكد من أن المكونات الإضافية معزولة أو تم فحصها بشكل صحيح لمنع تنفيذ التعليمات البرمجية الضارة.
  • تدفق البيانات: تحديد عقود بيانات واضحة للمدخلات والمخرجات لكل مكون إضافي.
  • العلامة البيضاء: إذا كنت تقوم ببناء تدفق موجه للمستخدم، فتذكر أن Didit تقدم خيارات واسعة للعلامة البيضاء، مما يتيح لك تخصيص الألوان والخطوط والشعارات، وحتى استخدام نطاق مخصص، مما يضمن تجربة علامة تجارية سلسة. هذا أمر بالغ الأهمية للحفاظ على ثقة المستخدم وتقليل معدلات التخلي أثناء عملية التحقق.

كيف تساعد Didit

تم تصميم Didit من الألف إلى الياء لهذا النوع من التكامل المعياري والقابل للتوسيع. كمنصة هوية أصلية للذكاء الاصطناعي وموجهة للمطورين أولاً، توفر Didit اللبنات الأساسية — أو "الأساسيات" — التي يمكن دمجها بسلاسة في بنية المكونات الإضافية الخاصة بك في Go. تعني بنيتنا المعيارية أنه يمكنك اختيار مكونات التحقق الدقيقة التي تحتاجها، سواء كانت التحقق من الهوية، أو التحقق من الحيوية السلبية والنشطة، أو مطابقة الوجه 1:1، أو فحص ومراقبة مكافحة غسيل الأموال (AML)، أو إثبات العنوان، أو تقدير العمر. يمكن أن يكون كل من هذه المكونات الإضافية متميزًا في نظامك.

تتميز Didit بتقديم خدمة KYC الأساسية المجانية، مما يتيح لك البدء في فحوصات الهوية الأساسية دون تكاليف أولية. تجعل واجهات برمجة التطبيقات النظيفة والوثائق الشاملة، جنبًا إلى جنب مع بيئة اختبار فورية، التكامل بديهيًا وسريعًا. من خلال الاستفادة من Didit، فإنك تتخلص من تعقيد الحفاظ على نماذج الذكاء الاصطناعي المتطورة، وقواعد بيانات المستندات العالمية، وتحديثات الامتثال، مما يسمح لخدمة Go الخاصة بك بالتركيز على التنظيم ومنطق العمل. يتوافق نموذج الدفع لكل فحص ناجح من Didit وعدم وجود رسوم إعداد بشكل أكبر مع بنية مرنة وقابلة للتطوير، مما يضمن أنك تدفع فقط مقابل ما تستخدمه.

هل أنت مستعد للبدء؟

هل أنت مستعد لرؤية Didit في العمل؟ احصل على عرض توضيحي مجاني اليوم.

ابدأ في التحقق من الهويات مجانًا باستخدام الطبقة المجانية من Didit.

بنية تحتية للهوية والاحتيال.

واجهة برمجية واحدة لـ KYC و KYB ومراقبة المعاملات وفحص المحافظ. ادمجها في 5 دقائق.

اطلب من الذكاء الاصطناعي تلخيص هذه الصفحة
فحوصات الهوية المرنة في Go باستخدام أساسيات Didit.