Ruka hadi maudhui makuu
Didit Yakusanya $7.5M Kujenga Miundombinu ya Utambulisho na Udanganyifu
Didit
Rudi kwenye blogu
Blogu · 7 Machi 2026

Uthibitishaji wa Vitambulisho Unaoweza Kupanuka kwa Go kwa Kutumia Vitangulizi vya Didit (SW)

Gundua jinsi ya kubuni usanifu wa programu-jalizi unaonyumbulika katika Go kwa ajili ya ukaguzi maalum wa vitambulisho, ukitumia vitangulizi vya Didit.

Na DiditImesasishwa
extensible-identity-checks-in-go-with-didits-primitives.png

Ubunifu wa Moduli kwa UjasiriKujenga usanifu wa programu-jalizi unaoweza kupanuka katika Go huruhusu biashara kukabiliana haraka na kanuni zinazobadilika za kufuata sheria na mbinu mpya za ulaghai bila kurekebisha mfumo wao mzima wa uthibitishaji wa vitambulisho.

Tumia Nguvu za GoKuandika kwa uwazi kwa Go, utendaji, na vipengele vya uendeshaji sambamba huifanya kuwa lugha bora kwa ajili ya kuendeleza huduma thabiti na zinazoweza kuongezeka za uthibitishaji wa vitambulisho zenye uwezo wa kushughulikia mizigo mikubwa.

Uunganikaji na Vitangulizi vya DiditKuunganisha vitangulizi vya utambulisho vya Didit vinavyotumia AI, kama vile Uthibitishaji wa Kitambulisho, Uhai Tulivu na Amilifu, na Uchunguzi wa AML, kunatoa vipengele vyenye nguvu, vilivyojengwa awali ambavyavyo vinaweza kuratibiwa ndani ya programu-jalizi maalum za Go.

Mbinu ya Didit Inayowatanguliza WaendelezajiAPI safi za Didit, sandbox ya papo hapo, na usanifu wa moduli unafaa kabisa kwa waendelezaji wanaojenga mifumo inayoweza kupanuka, ikitoa KYC ya Msingi Bila Malipo na hakuna ada za kuanzisha ili kuharakisha maendeleo.

Umuhimu wa Uthibitishaji wa Vitambulisho Unaoongezeka

Katika mazingira ya kidijitali yanayobadilika kwa kasi ya leo, uthibitishaji wa vitambulisho (IDV) si mchakato tuli tena. Kanuni hubadilika, mbinu mpya za ulaghai hujitokeza, na mahitaji ya biashara hubadilika. Mfumo thabiti, usio na ugumu wa IDV haraka huwa kikwazo, ukizuia uvumbuzi na kuongeza hatari za kufuata sheria. Hii ndiyo maana usanifu wa programu-jalizi unaoweza kupanuka si anasa tu bali ni hitaji, hasa kwa waendelezaji wanaofanya kazi na lugha zenye utendaji mzuri kama Go.

Usanifu unaoweza kupanuka huruhusu biashara kuongeza, kuondoa, au kurekebisha ukaguzi wa vitambulisho kwa nguvu bila kupeleka tena huduma nzima. Ujasiri huu ni muhimu kwa kukabiliana na mahitaji ya KYC (Mjue Mteja Wako) mahususi kwa eneo, kuunganisha mifumo ya kisasa ya kugundua ulaghai, au kujaribu mtiririko mpya wa kuingiza watumiaji. Kwa mfano, biashara inaweza awali kuhitaji Uthibitishaji wa Kitambulisho cha msingi na Kugundua Uhai. Baadaye, wanaweza kuhitaji kuongeza Makadirio ya Umri kwa bidhaa maalum au kuunganisha Uchunguzi wa AML kwa miamala ya kifedha. Mfumo unaotegemea programu-jalizi hushughulikia nyongeza hizi kwa urahisi.

Kubuni Usanifu wa Programu-jalizi katika Go

Ubunifu unaoendeshwa na kiolesura cha Go na uandishi imara huifanya kuwa chaguo bora kwa ajili ya kujenga mifumo thabiti ya programu-jalizi. Wazo kuu ni kufafanua kiolesura cha kawaida ambacho programu-jalizi zote za "ukaguzi wa kitambulisho" lazima zitekeleze. Kiolesura hiki hufanya kazi kama mkataba, kuhakikisha kwamba ukaguzi wowote mpya unaweza kuunganishwa kwa urahisi katika mtiririko wa kazi uliopo.

Kufafanua Kiolesura cha Ukaguzi wa Kitambulisho

Hebu tuchunguze kiolesura rahisi cha ukaguzi wa kitambulisho:

package main

type IdentityCheckResult struct {
    Passed  bool
    Details string
}

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

Hapa, IdentityChecker inafafanua mbinu mbili: Name() kutambua programu-jalizi na Execute() kufanya ukaguzi halisi, ikichukua data ya pembejeo ya jumla na kurudisha matokeo. Ufafanuzi huu unaruhusu ukaguzi mbalimbali, kutoka uthibitishaji wa hati hadi uchambuzi wa biometriska.

Kutekeleza Ukaguzi Maalum kwa Kutumia Vitangulizi vya Didit

Sasa, hebu tuone jinsi tunaweza kutekeleza ukaguzi maalum wa vitambulisho kwa kutumia vitangulizi vyenye nguvu vya Didit ndani ya mfumo huu wa programu-jalizi. Usanifu wa moduli wa Didit, API safi, na uwezo wa AI huifanya iwe rahisi kuunganisha huduma hizi za hali ya juu.

Mfano: Programu-jalizi ya Uthibitishaji wa Kitambulisho Didit

Kwa uthibitishaji wa kitambulisho unaotegemea hati, tunaweza kuunda programu-jalizi inayotumia bidhaa ya Uthibitishaji wa Kitambulisho ya Didit, ambayo inajumuisha OCR, MRZ, na uchunguzi wa barcode katika nchi 220+. Programu-jalizi hii ingetuma picha za hati na data kwa API ya Didit na kuchakata jibu.

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
    }

    // Katika programu halisi, ungetuma picha kwa API ya Uthibitishaji wa Kitambulisho cha Didit.
    // Kwa mfano huu, tutaiga simu.
    // Nyaraka: https://docs.didit.me/core-technology/id-verification

    // Kuiga simu ya API kwa Uthibitishaji wa Kitambulisho cha Didit
    // Badilisha na simu halisi ya API na ushughulikiaji wa makosa
    fmt.Printf("Wito wa Uthibitishaji wa Kitambulisho cha Didit kwa picha: %s...\n", documentImage[:20]) // Punguza kwa ajili ya kuonyesha
    
    // Kudhani jibu lililofanikiwa kwa onyesho
    if documentImage != "invalid_id_image" {
        return IdentityCheckResult{Passed: true, Details: "Hati ya kitambulisho imethibitishwa na Didit."}, nil
    } else {
        return IdentityCheckResult{Passed: false, Details: "Uthibitishaji wa hati ya kitambulisho umeshindwa na Didit." + " Picha batili imetolewa."},
            fmt.Errorf("Uthibitishaji wa Kitambulisho cha Didit umeshindwa")
    }
}

Mfano: Programu-jalizi ya Ukaguzi wa Uhai wa Didit

Ili kupambana na deepfakes na mashambulizi ya uwasilishaji, ukaguzi wa uhai ni muhimu. Didit inatoa kugundua Uhai Tulivu na Amilifu. Programu-jalizi inaweza kuunganisha hii, ikichakata video fupi au mfululizo wa picha.

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
    }

    // Kuiga simu ya API kwa Kugundua Uhai wa Didit
    // Badilisha na simu halisi ya API na ushughulikiaji wa makosa
    fmt.Printf("Wito wa Kugundua Uhai wa Didit kwa video: %s...\n", livenessVideo[:20])

    if livenessVideo != "deepfake_video" {
        return IdentityCheckResult{Passed: true, Details: "Uhai umegunduliwa na Didit."}, nil
    } else {
        return IdentityCheckResult{Passed: false, Details: "Kugundua uhai kumeshindwa na Didit." + " Deepfake imegunduliwa."},
            fmt.Errorf("Kugundua Uhai wa Didit kumeshindwa")
    }
}

Kuratibu Mtiririko wa Kazi na Programu-jalizi

Mara tu unapokuwa na programu-jalizi zako, unahitaji utaratibu wa kuziratibu katika mtiririko wa kazi wenye mpangilio. Mtiririko wa Kazi Ulioratibiwa wa Didit hutoa kiunda taswira kisicho na msimbo kwa hili, lakini ikiwa unajenga huduma maalum ya Go, unaweza kudhibiti mantiki hii kwa programu.

package main

import "fmt"

// Mratibu rahisi
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("\nInaendesha ukaguzi wa %s...\n", check.Name())
        res, err := check.Execute(userData)
        results = append(results, res)
        if err != nil || !res.Passed {
            fmt.Printf("Ukaguzi wa %s umeshindwa: %s\n", check.Name(), res.Details)
            return results, fmt.Errorf("mtiririko wa kazi umeshindwa kwa %s: %w", check.Name(), err)
        }
        fmt.Printf("Ukaguzi wa %s umefaulu: %s\n", check.Name(), res.Details)
    }
    return results, nil
}

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

    // Data ya mfano ya mtumiaji
    userData := map[string]interface{}{
        "documentImage": "valid_passport_image_base64",
        "livenessVideo": "valid_liveness_video_base64",
        "name":          "Jane Doe",
    }

    fmt.Println("--- Inaendesha mtiririko wa kazi uliofanikiwa ---")
    results, err := workflow.Run(userData)
    if err != nil {
        fmt.Printf("Mtiririko wa kazi umekamilika na makosa: %v\n", err)
    } else {
        fmt.Println("Mtiririko wa kazi umekamilika kwa mafanikio!")
    }
    for _, r := range results {
        fmt.Printf("- %s: Imefaulu = %t, Maelezo = %s\n", r.Name, r.Passed, r.Details)
    }

    // Mfano wa mtiririko wa kazi unaoshindwa
    fmt.Println("\n--- Inaendesha mtiririko wa kazi unaoshindwa (kitambulisho batili) ---")
    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("Mtiririko wa kazi umekamilika na makosa: %v\n", err)
    } else {
        fmt.Println("Mtiririko wa kazi umekamilika kwa mafanikio!")
    }
    for _, r := range failingResults {
        fmt.Printf("- %s: Imefaulu = %t, Maelezo = %s\n", r.Name, r.Passed, r.Details)
    }
}

Mratibu huyu rahisi anatekeleza ukaguzi kwa mfuatano. Katika hali halisi, unaweza kuongeza mantiki yenye masharti, utekelezaji sambamba, au majaribio tena, kuakisi uwezo wa kiunda mtiririko wa kazi kisicho na msimbo cha Didit.

Mazingatio ya Juu kwa Usanifu wa Programu-jalizi ya Go

Unapojenga usanifu wa programu-jalizi tayari kwa uzalishaji katika Go, zingatia mambo haya:

  • Ushughulikiaji wa Makosa: Tekeleza ushughulikiaji thabiti wa makosa na ukataji wa magogo kwa kila programu-jalizi.
  • Usanidi: Ruhusu programu-jalizi kusanidiwa kwa nguvu (k.m., funguo za API, vizingiti).
  • Upakiaji wa Programu-jalizi: Kwa upanuzi wa kweli bila kukusanya tena, chunguza kifurushi cha plugin cha Go (ingawa kina mapungufu ya jukwaa) au michakato ya nje/gRPC kwa mawasiliano kati ya michakato.
  • Usalama: Hakikisha kwamba programu-jalizi ziko kwenye sanduku au zimekaguliwa vizuri ili kuzuia utekelezaji wa msimbo hatari.
  • Mtiririko wa Data: Fafanua mikataba wazi ya data kwa pembejeo na matokeo ya kila programu-jalizi.
  • White-Labeling: Ikiwa unaunda mtiririko unaomwezesha mtumiaji, kumbuka kuwa Didit inatoa chaguzi nyingi za white-labeling, hukuruhusu kubadilisha rangi, fonti, nembo, na hata kutumia kikoa maalum, kuhakikisha uzoefu wa chapa usio na mshono. Hii ni muhimu kwa kudumisha uaminifu wa mtumiaji na kupunguza viwango vya kuacha wakati wa mchakato wa uthibitishaji.

Jinsi Didit Inavyosaidia

Didit imeundwa tangu mwanzo kwa ajili ya aina hii ya ushirikiano wa moduli, unaoweza kupanuka. Kama jukwaa la utambulisho linalotumia AI na linalowatanguliza waendelezaji, Didit hutoa vitalu vya ujenzi—au "vitangulizi"—vinavyoweza kuunganishwa kwa urahisi katika usanifu wako wa programu-jalizi ya Go. Usanifu wetu wa moduli unamaanisha unaweza kuchagua vipengele halisi vya uthibitishaji unavyohitaji, iwe ni Uthibitishaji wa Kitambulisho, Uhai Tulivu na Amilifu, Kulinganisha Nyuso 1:1, Uchunguzi na Ufuatiliaji wa AML, Uthibitisho wa Anwani, au Makadirio ya Umri. Kila moja ya haya inaweza kuwa programu-jalizi tofauti katika mfumo wako.

Didit inajitokeza kwa kutoa KYC ya Msingi Bila Malipo, ikikuruhusu kuanza na ukaguzi muhimu wa vitambulisho bila gharama za awali. API zetu safi na nyaraka kamili, pamoja na sandbox ya papo hapo, hufanya ushirikiano kuwa rahisi na wa haraka. Kwa kutumia Didit, unaondoa utata wa kudumisha mifumo ya kisasa ya AI, hifadhidata za hati za kimataifa, na masasisho ya kufuata sheria, kuruhusu huduma yako ya Go kuzingatia uratibu na mantiki ya biashara. Mtindo wa malipo kwa kila ukaguzi uliofanikiwa wa Didit na kutokuwepo kwa ada za kuanzisha kunaendana zaidi na usanifu unaonyumbulika, unaoweza kuongezeka, kuhakikisha unalipa tu kwa kile unachotumia.

Uko Tayari Kuanza?

Uko tayari kuona Didit ikifanya kazi? Pata onyesho la bure leo.

Anza kuthibitisha vitambulisho bila malipo na ngazi ya bure ya Didit.

Miundombinu ya utambulisho na udanganyifu.

API moja kwa KYC, KYB, Ufuatiliaji wa Miamala, na Uchunguzi wa Wallet. Unganisha ndani ya dakika 5.

Uliza AI ifupishe ukurasa huu
Ukaguzi wa Vitambulisho Unaoongezeka katika Go na Didit.