Lewati ke konten utama
Didit Raih $7,5 Juta untuk Membangun Infrastruktur Identitas dan Fraud
Didit
Kembali ke blog
Blog · 7 Maret 2026

Pemeriksaan Identitas yang Dapat Diperluas di Go dengan Didit Primitives (ID)

Pelajari cara merancang arsitektur plugin yang fleksibel di Go untuk pemeriksaan identitas kustom, memanfaatkan Didit's modular identity primitives. Pendekatan ini memungkinkan alur kerja verifikasi yang skalabel dan adaptif.

Oleh DiditDiperbarui
extensible-identity-checks-in-go-with-didits-primitives.png

Desain Modular untuk AgilitasMembangun arsitektur plugin yang dapat diperluas di Go memungkinkan bisnis untuk dengan cepat beradaptasi dengan peraturan kepatuhan yang terus berkembang dan vektor penipuan baru tanpa merombak seluruh sistem verifikasi identitas mereka.

Memanfaatkan Kekuatan GoPengetikan yang kuat, kinerja, dan fitur konkurensi Go menjadikannya bahasa yang ideal untuk mengembangkan layanan verifikasi identitas yang kuat dan skalabel yang mampu menangani throughput tinggi.

Komposabilitas dengan Didit PrimitivesMengintegrasikan Didit's AI-native identity primitives, seperti Verifikasi ID, Liveness Pasif & Aktif, dan Pemeriksaan AML, menyediakan komponen yang kuat dan siap pakai yang dapat diorkestrasi dalam plugin Go kustom.

Pendekatan Didit yang Mengutamakan PengembangAPI Didit yang bersih, sandbox instan, dan arsitektur modular sangat cocok untuk pengembang yang membangun sistem yang dapat diperluas, menawarkan KYC Inti Gratis dan tanpa biaya pengaturan untuk mempercepat pengembangan.

Kebutuhan Verifikasi Identitas yang Dapat Diperluas

Dalam lanskap digital yang berubah dengan cepat saat ini, verifikasi identitas (IDV) bukan lagi proses statis. Regulasi berkembang, teknik penipuan baru muncul, dan kebutuhan bisnis bergeser. Sistem IDV yang kaku dan monolitik dengan cepat menjadi hambatan, menghambat inovasi dan meningkatkan risiko kepatuhan. Inilah mengapa arsitektur plugin yang dapat diperluas bukan hanya kemewahan tetapi suatu keharusan, terutama bagi pengembang yang bekerja dengan bahasa berperforma tinggi seperti Go.

Arsitektur yang dapat diperluas memungkinkan bisnis untuk menambah, menghapus, atau memodifikasi pemeriksaan identitas secara dinamis tanpa menyebarkan ulang seluruh layanan. Agilitas ini sangat penting untuk beradaptasi dengan persyaratan KYC (Know Your Customer) khusus wilayah, mengintegrasikan mekanisme deteksi penipuan mutakhir, atau bereksperimen dengan alur orientasi pengguna baru. Misalnya, sebuah bisnis mungkin awalnya memerlukan Verifikasi ID dasar dan Deteksi Kehidupan. Kemudian, mereka mungkin perlu menambahkan Estimasi Usia untuk produk tertentu atau menggabungkan Pemeriksaan AML untuk transaksi keuangan. Sistem berbasis plugin menangani penambahan ini dengan mulus.

Merancang Arsitektur Plugin di Go

Desain berbasis antarmuka dan pengetikan kuat Go menjadikannya pilihan yang sangat baik untuk membangun sistem plugin yang kokoh. Ide intinya adalah untuk mendefinisikan antarmuka umum yang harus diimplementasikan oleh semua "plugin" pemeriksaan identitas. Antarmuka ini bertindak sebagai kontrak, memastikan bahwa setiap pemeriksaan baru dapat diintegrasikan dengan mulus ke dalam alur kerja yang ada.

Mendefinisikan Antarmuka Pemeriksaan Identitas

Mari kita pertimbangkan antarmuka sederhana untuk pemeriksaan identitas:

package main

type IdentityCheckResult struct {
    Passed  bool
    Details string
}

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

Di sini, IdentityChecker mendefinisikan dua metode: Name() untuk mengidentifikasi plugin dan Execute() untuk melakukan pemeriksaan sebenarnya, mengambil data masukan generik dan mengembalikan hasilnya. Abstraksi ini memungkinkan berbagai pemeriksaan, mulai dari verifikasi dokumen hingga analisis biometrik.

Mengimplementasikan Pemeriksaan Kustom dengan Didit Primitives

Sekarang, mari kita lihat bagaimana kita dapat mengimplementasikan pemeriksaan identitas spesifik menggunakan Didit's primitives yang kuat dalam kerangka kerja plugin ini. Arsitektur modular Didit, API yang bersih, dan kemampuan AI-native membuatnya mudah untuk mengintegrasikan layanan canggih ini.

Contoh: Plugin Verifikasi ID Didit

Untuk verifikasi identitas berbasis dokumen, kita dapat membuat plugin yang memanfaatkan produk Verifikasi ID Didit, yang mencakup OCR, MRZ, dan pemindaian kode batang di 220+ negara. Plugin ini akan mengirim gambar dokumen dan data ke API Didit dan memproses responsnya.

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
    }

    // Dalam aplikasi nyata, Anda akan mengirim gambar ke API Verifikasi ID Didit.
    // Untuk contoh ini, kita akan mensimulasikan panggilan.
    // Dokumentasi: https://docs.didit.me/core-technology/id-verification

    // Mensimulasikan panggilan API ke Verifikasi ID Didit
    // Ganti dengan panggilan API aktual dan penanganan kesalahan
    fmt.Printf("Memanggil Verifikasi ID Didit untuk gambar: %s...\n", documentImage[:20]) // Potong untuk tampilan
    
    // Asumsikan respons berhasil untuk demonstrasi
    if documentImage != "invalid_id_image" {
        return IdentityCheckResult{Passed: true, Details: "Dokumen ID diverifikasi oleh Didit."}, nil
    } else {
        return IdentityCheckResult{Passed: false, Details: "Verifikasi dokumen ID gagal oleh Didit." + " Gambar tidak valid disediakan."},
            fmt.Errorf("Verifikasi ID Didit gagal")
    }
}

Contoh: Plugin Pemeriksaan Kehidupan Didit

Untuk memerangi deepfake dan serangan presentasi, pemeriksaan kehidupan sangat penting. Didit menawarkan deteksi Kehidupan Pasif & Aktif. Sebuah plugin dapat mengintegrasikan ini, memproses video pendek atau serangkaian gambar.

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
    }

    // Mensimulasikan panggilan API ke Deteksi Kehidupan Didit
    // Ganti dengan panggilan API aktual dan penanganan kesalahan
    fmt.Printf("Memanggil Deteksi Kehidupan Didit untuk video: %s...\n", livenessVideo[:20])

    if livenessVideo != "deepfake_video" {
        return IdentityCheckResult{Passed: true, Details: "Kehidupan terdeteksi oleh Didit."}, nil
    } else {
        return IdentityCheckResult{Passed: false, Details: "Deteksi kehidupan gagal oleh Didit." + " Deepfake terdeteksi."},
            fmt.Errorf("Deteksi Kehidupan Didit gagal")
    }
}

Mengorkestrasi Alur Kerja dengan Plugin

Setelah Anda memiliki plugin Anda, Anda memerlukan mekanisme untuk mengorkestrasinya menjadi alur kerja yang koheren. Alur Kerja Terorkestrasi Didit menyediakan pembangun visual tanpa kode untuk ini, tetapi jika Anda membangun layanan Go kustom, Anda dapat mengelola logika ini secara terprogram.

package main

import "fmt"

// Sebuah orkestrator sederhana
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("\nMenjalankan pemeriksaan %s...\n", check.Name())
        res, err := check.Execute(userData)
        results = append(results, res)
        if err != nil || !res.Passed {
            fmt.Printf("Pemeriksaan %s gagal: %s\n", check.Name(), res.Details)
            return results, fmt.Errorf("alur kerja gagal pada %s: %w", check.Name(), err)
        }
        fmt.Printf("Pemeriksaan %s berhasil: %s\n", check.Name(), res.Details)
    }
    return results, nil
}

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

    // Contoh data pengguna
    userData := map[string]interface{}{
        "documentImage": "valid_passport_image_base64",
        "livenessVideo": "valid_liveness_video_base64",
        "name":          "Jane Doe",
    }

    fmt.Println("--- Menjalankan alur kerja yang berhasil ---")
    results, err := workflow.Run(userData)
    if err != nil {
        fmt.Printf("Alur kerja selesai dengan kesalahan: %v\n", err)
    } else {
        fmt.Println("Alur kerja selesai dengan sukses!")
    }
    for _, r := range results {
        fmt.Printf("- %s: Berhasil = %t, Detail = %s\n", r.Name, r.Passed, r.Details)
    }

    // Contoh alur kerja yang gagal
    fmt.Println("\n--- Menjalankan alur kerja yang gagal (ID tidak valid) ---")
    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("Alur kerja selesai dengan kesalahan: %v\n", err)
    } else {
        fmt.Println("Alur kerja selesai dengan sukses!")
    }
    for _, r := range failingResults {
        fmt.Printf("- %s: Berhasil = %t, Detail = %s\n", r.Name, r.Passed, r.Details)
    }
}

Orkestrator sederhana ini mengeksekusi pemeriksaan secara berurutan. Dalam skenario dunia nyata, Anda mungkin menambahkan logika kondisional, eksekusi paralel, atau percobaan ulang, mencerminkan kemampuan pembangun alur kerja tanpa kode Didit.

Pertimbangan Lanjutan untuk Arsitektur Plugin Go

Saat membangun arsitektur plugin siap produksi di Go, pertimbangkan aspek-aspek ini:

  • Penanganan Kesalahan: Implementasikan penanganan kesalahan dan pencatatan yang kuat untuk setiap plugin.
  • Konfigurasi: Izinkan plugin untuk dikonfigurasi secara dinamis (misalnya, kunci API, ambang batas).
  • Pemuatan Plugin: Untuk ekstensibilitas sejati tanpa kompilasi ulang, jelajahi paket plugin Go (meskipun memiliki batasan platform) atau proses eksternal/gRPC untuk komunikasi antar-proses.
  • Keamanan: Pastikan bahwa plugin di-sandbox atau diverifikasi dengan benar untuk mencegah eksekusi kode berbahaya.
  • Aliran Data: Definisikan kontrak data yang jelas untuk input dan output setiap plugin.
  • White-Labeling: Jika Anda membangun alur yang menghadap pengguna, ingatlah bahwa Didit menawarkan opsi white-labeling yang luas, memungkinkan Anda untuk menyesuaikan warna, font, logo, dan bahkan menggunakan domain kustom, memastikan pengalaman merek yang mulus. Ini sangat penting untuk menjaga kepercayaan pengguna dan mengurangi tingkat putus sekolah selama proses verifikasi.

Bagaimana Didit Membantu

Didit dirancang dari awal untuk jenis integrasi modular dan ekstensibel ini. Sebagai platform identitas AI-native, yang mengutamakan pengembang, Didit menyediakan blok bangunan—atau "primitif"—yang dapat diintegrasikan dengan mulus ke dalam arsitektur plugin Go Anda. Arsitektur modular kami berarti Anda dapat memilih komponen verifikasi yang Anda butuhkan, apakah itu Verifikasi ID, Liveness Pasif & Aktif, Pencocokan Wajah 1:1, Pemeriksaan & Pemantauan AML, Bukti Alamat, atau Estimasi Usia. Masing-masing dapat menjadi plugin yang berbeda dalam sistem Anda.

Didit menonjol dengan menawarkan KYC Inti Gratis, memungkinkan Anda untuk memulai pemeriksaan identitas penting tanpa biaya di muka. API kami yang bersih dan dokumentasi yang komprehensif, bersama dengan sandbox instan, membuat integrasi menjadi intuitif dan cepat. Dengan memanfaatkan Didit, Anda menghilangkan kerumitan dalam memelihara model AI canggih, basis data dokumen global, dan pembaruan kepatuhan, memungkinkan layanan Go Anda untuk fokus pada orkestrasi dan logika bisnis. Model bayar-per-pemeriksaan-berhasil Didit dan tidak adanya biaya pengaturan lebih lanjut selaras dengan arsitektur yang fleksibel dan skalabel, memastikan Anda hanya membayar untuk apa yang Anda gunakan.

Siap untuk Memulai?

Siap melihat Didit beraksi? Dapatkan demo gratis hari ini.

Mulai verifikasi identitas secara gratis dengan tingkat gratis Didit.

Infrastruktur untuk identitas dan fraud.

Satu API untuk KYC, KYB, Transaction Monitoring, dan Wallet Screening. Integrasi dalam 5 menit.

Minta AI untuk merangkum halaman ini
Pemeriksaan Identitas Ekstensibel di Go dengan Didit.