Planlama v2

Muzibu Sertifika + QR Sistemi

31 Aralık 2025 - Bağımsız QR Kod Doğrulama Sistemi

v2 Güncellemesi: Bağımsız QR Kod Sistemi

Her sertifika benzersiz QR kod içerecek

QR kod okunduğunda üyelik bilgileri doğrulanacak

Sertifika sahibi değiştirilemez şekilde DB'ye kaydedilecek

Doğrulama geçmişi tutulacak (kim, ne zaman okudu)

Sistem Mimarisi

Premium Üye

Sertifika İndir

DB'ye Kaydet

PDF + QR

QR Tara

/verify/{code}

Doğrulama Sayfası

Veritabanı Yapısı

certificates (Yeni Tablo)

Kolon Tip Açıklama
id bigint Primary key
user_id bigint Sertifika sahibi (değiştirilemez)
subscription_id bigint İlgili abonelik
certificate_code varchar(32) Benzersiz kod (MZB-XXXX-XXXX)
qr_hash varchar(64) QR için şifreli hash (SHA-256)
member_name varchar Üye adı (snapshot - değişmez)
member_email varchar Üye email (snapshot)
membership_start date Üyelik başlangıç tarihi
membership_end date Üyelik bitiş tarihi
plan_name varchar Plan adı (snapshot)
issued_at datetime Sertifika oluşturulma tarihi
is_valid boolean Geçerli mi? (iptal edilebilir)
metadata json Ek bilgiler

certificate_verifications (Log Tablosu)

Kolon Tip Açıklama
id bigint Primary key
certificate_id bigint Hangi sertifika doğrulandı
verified_at datetime Doğrulama zamanı
ip_address varchar Doğrulayan IP
user_agent text Tarayıcı bilgisi
is_valid boolean Doğrulama sonucu

QR Kod Doğrulama Mantığı

Sertifika Oluşturma

  1. Üye sertifika ister
  2. Benzersiz certificate_code üret
  3. SHA-256 ile qr_hash oluştur
  4. Üyelik bilgilerini snapshot olarak kaydet
  5. QR kod içine URL yerleştir:
    muzibu.com/verify/{qr_hash}
  6. PDF oluştur ve indir

QR Tarama & Doğrulama

  1. Kullanıcı QR kodu tarar
  2. /verify/{hash} açılır
  3. Hash DB'de aranır
  4. Bulunursa: Sertifika bilgileri gösterilir
  5. Doğrulama logu kaydedilir
  6. Bulunamazsa: "Geçersiz sertifika" uyarısı

Hash Oluşturma Mantığı

Değiştirilemez, tahmin edilemez hash:

qr_hash = SHA256(user_id + subscription_id + certificate_code + secret_key + issued_at)

secret_key .env'de saklanır, hash kırılamaz

Güvenlik Katmanları

Değiştirilemez Kayıt

user_id ve bilgiler snapshot olarak saklanır

Benzersiz Hash

SHA-256 + secret key ile kırılamaz

Doğrulama Logu

Her tarama kaydedilir (IP, tarih)

İptal Edilebilir

Admin gerekirse sertifikayı iptal edebilir

Doğrulama Sayfası Tasarımı

Geçerli Sertifika

Bu sertifika doğrulanmıştır

Ad Soyad: Ahmet Yılmaz

Üyelik: 01.01.2025 - 01.01.2026

Plan: Yıllık Premium

Sertifika No: MZB-2025-A1B2

Geçersiz Sertifika

Bu sertifika bulunamadı veya iptal edilmiş

Sertifika sahte olabilir veya süresi dolmuş olabilir.

Güncel Sertifika Tasarımı (QR ile)

Muzibu

Premium Üyelik Sertifikası

Bu belge,

[Ad Soyad]

kişisinin Muzibu Premium üyesi olduğunu tasdik eder.

Üyelik Başlangıç

[01.01.2025]

Geçerlilik Tarihi

[01.01.2026]

Plan

[Yıllık Premium]

Sertifika No

[MZB-2025-XXXX]

Doğrulama için tarayın

Düzenlenme:

[31.12.2025]

Bu sertifikayı doğrulamak için QR kodu tarayın veya muzibu.com/verify adresini ziyaret edin.

Uygulama Adımları

1

Migration Oluştur

certificates + certificate_verifications tabloları

database/migrations/tenant/create_certificates_table.php
2

Model & Service Oluştur

Certificate model, CertificateService (hash, QR, PDF)

Modules/Subscription/app/Models/Certificate.php Modules/Subscription/app/Services/CertificateService.php
3

PDF Template Hazırla

Sertifika blade template + QR kod entegrasyonu

Modules/Subscription/resources/views/certificate/template.blade.php
4

Controller & Routes

İndirme + Doğrulama endpoint'leri

GET /my-certificate → PDF indir GET /verify/{hash} → Doğrulama sayfası (public)
5

Doğrulama Sayfası

Public sayfa: Geçerli/Geçersiz sonuç gösterimi

resources/views/themes/muzibu/certificate/verify.blade.php
6

Dashboard Entegrasyonu

"Sertifikamı İndir" butonu + varsa mevcut sertifikayı göster

Ek Gereksinimler

QR Kod Paketi

simplesoftwareio/simple-qrcode

Laravel için QR kod oluşturma paketi

.env Ayarı

CERTIFICATE_SECRET_KEY=...

Hash oluşturma için gizli anahtar