Creart Resmi Fatura Modulü
WHMCS 8.10+ / 9.x için geliştirilmiş, Türkiye odaklı resmi fatura PDF üretimi ve muhasebe provider entegrasyonu sunan addon modül.
İçindekiler
- Ürün Özeti
- Kapsam ve Sınırlar
- Mimari Genel Bakış
- Yıllık Lisans Modeli
- Teknik Gereksinimler
- Kurulum
- İlk Konfigürasyon
- Provider Konfigürasyonu
- PDF Üretim Kuralları
- Lisans Güvenlik Modeli
- Hook ve İş Akışı Matrisi
- Veritabanı Şeması
- Admin Arayüzü
- API/Lisans Sunucusu Beklentisi
- Test ve Kalite
- Hata Senaryoları ve Troubleshooting
- Production Checklist
- Sürümleme ve Destek
1) Ürün Özeti
ResmiFaturaModulu, WHMCS faturalarını resmi görünümlü PDF çıktısına dönüştürür ve fatura verisini seçili provider’a (Paraşüt/Logo/Mikro) aktarır.
Başlıca Yetkinlikler
- TCPDF ile resmi fatura düzeni.
- QR kod, kaşe/imza alanı, yasal metin bloğu.
- Provider abstraction (
FaturaProviderInterface) ile genişletilebilir mimari. - Gelişmiş lisans doğrulama (imza, fingerprint, şifreli cache).
- Hook tabanlı otomasyon (fatura oluşumu, ödeme, günlük cron).
2) Kapsam ve Sınırlar
- Bu modül doğrudan GİB API entegrasyonu içermez.
- Akış, WHMCS veri modeli + seçili muhasebe provider API’leri üzerinden ilerler.
- GİB tarafına direkt gönderim yerine “resmi formatlı PDF + provider entegrasyonu” odaklanır.
3) Mimari Genel Bakış
Katmanlar
Entry:resmifaturamodulu.phpHooks:hooks.phpLicense:src/License/LicenseValidator.phpPDF:src/Pdf/InvoicePdfGenerator.phpProviders:src/Providers/*Support:src/Support/*Templates:templates/admin/*
Tasarım Prensipleri
strict_types=1- PSR-4 autoload
- Interface + Factory tabanlı provider seçimi
- Güvenlikte fail-closed yaklaşımı
4) Yıllık Lisans Modeli
Bu ürün yıllık lisans ile satılır.
- Lisans süresi:
365 gün. - Lisans bağlama:
domain + IP + instance_id + fingerprint. - Süre sonu: otomatik akışlar kısıtlanabilir, yenileme gerekir.
- Yenileme kapsamı: sürüm güncellemeleri, güvenlik yamaları, teknik destek.
- Lisans devri: satıcı onayı ile kontrollü.
Önerilen Ticari Politika
- Ana lisans: 1 production domain.
- Opsiyonel ek lisans: staging/dev domain.
- Yenileme gecikmesi sonrası grace period: satıcı politikasına göre tanımlanabilir.
5) Teknik Gereksinimler
- PHP
8.2+ - IonCube Loader
14+ - WHMCS
8.10+/9.x - Composer
- OpenSSL eklentisi (AES-256-GCM için önerilir)
- İnternet erişimi (lisans doğrulama ve provider API çağrıları için)
6) Kurulum
- Modül klasörünü WHMCS kökünde aşağıya yerleştirin:
modules/addons/resmifaturamodulu/
- Bağımlılıkları kurun:
composer install --no-dev
- WHMCS Admin panelde
Addon Modulesbölümünden modülü aktive edin. - Aktivasyonda lisans anahtarını girin.
- Provider ayarlarını kaydedin.
- Gerekli client custom field’ları doğrulayın:
Vergi DairesiVKN/TCKNTicari Unvan
7) İlk Konfigürasyon
Admin ayar ekranındaki temel adımlar:
- Aktif provider seçin:
local_only | parasut | logo | mikro - Otomasyon bayraklarını belirleyin:
InvoiceCreatedsonrası gönderimInvoicePaidsonrası gönderim- Firma bilgilerini doldurun:
- Ünvan, VKN, MERSIS, adres, telefon, e-posta, logo, IBAN
- Yasal metni HTML olarak kaydedin
8) Provider Konfigürasyonu
Genel Parametreler
provider.api_urlprovider.company_idprovider.client_idprovider.client_secretprovider.usernameprovider.password
Provider Seçenekleri
local_only: sadece yerel PDF üretimi, dış sistem gönderimi yok.parasut: OAuth/token akışı + satış faturası gönderimi.logo: token/basic auth tabanlı REST gönderimi.mikro: token tabanlı JSON REST gönderimi.
Güvenlik
- Hassas bilgiler settings tablosunda şifreli tutulur.
- Provider credential’larını loglara düz metin yazmayın.
9) PDF Üretim Kuralları
src/Pdf/InvoicePdfGenerator.php aşağıdaki unsurları üretir:
- A4 dikey sayfa
- Türkçe karakter uyumlu font
- Firma başlık bloğu
- Alıcı bilgileri
- Satır bazlı ürün/hizmet tablosu
- KDV kırılımı ve toplamlar
- Tutarın yazıyla karşılığı
- Yasal metin alanı
- Kaşe/imza boşlukları
- QR kod
- Trial watermark
Çıktı Dizini
- Varsayılan:
storage/pdfs/ - Dosya adı örneği:
invoice_123_20260218_001501.pdf
10) Lisans Güvenlik Modeli
LicenseValidator katmanı:
- Request/response imza doğrulama (HMAC-SHA256)
nonce + timestampreplay koruması- Cihaz/kurulum fingerprint bağlama
- Runtime bütünlük hash kontrolü
- PBKDF2 ile anahtar türetme
- AES-256-GCM ile şifreli cache
- DB fallback (offline tolerans)
Lisans Geçersizse
- Hook akışları işlevsel olarak durdurulur.
- Admin tarafta uyarı gösterilir.
- Olay loglanır.
11) Hook ve İş Akışı Matrisi
Uygulanan kritik hook’lar:
InvoiceCreated: PDF üret + opsiyonel provider pushInvoicePaid: opsiyonel tekrar push/senkronAdminAreaPageInvoice: sidebar ve lisans uyarısıDailyCronJob: lisans check + temizlik işleriAfterCronJob: status sync için uygun noktaAdminInvoicesControlsOutput: admin badge/aksiyon alanıInvoiceCancelled,InvoiceRefunded,InvoiceDeleted: audit loggingAddInvoicePayment: ödeme hareket loguClientAdd,ClientEdit: müşteri veri değişimi takibi
12) Veritabanı Şeması
tbl_resmifatura_settingstbl_resmifatura_logstbl_resmifatura_manueltbl_resmifatura_lisans
Migration dosyası:
database/migrations/20260217_create_tables.php
13) Admin Arayüzü
templates/admin/config.tpltemplates/admin/invoice_sidebar.tpl
Arayüz İşlevleri
- Provider/Firma/Lisans/Yasal metin ayarları
- Manuel ETTN ve resmi no girişi
- Faturadan tek tık PDF üretimi
- Provider’a manuel gönderim
- Durum senkronlama
14) API/Lisans Sunucusu Beklentisi
Lisans endpoint’i şu yapıyı desteklemelidir:
Request:
payload:key, ip, domain, instance_id, whmcs_version, timestamp, nonce, fingerprint, integrity_hashsignature
Response:
payload:valid, message, expiry, max_instances, allowed_ips, allowed_domains, timestamp, nonce, integrity_hashsignature
Not: Response imzası doğrulanamazsa lisans invalid kabul edilir.
15) Test ve Kalite
Test Komutları
composer test
Test Dosyaları
tests/LicenseValidatorTest.phptests/ProviderFactoryTest.phptests/InvoicePdfGeneratorTest.php
Öneri
- CI’de en az PHP 8.2 + static analysis + unit test koşun.
16) Hata Senaryoları ve Troubleshooting
Sık Görülen Problemler
- Lisans API timeout
- Provider 401/403
- Provider 429 rate limit
- Geçersiz VKN/TCKN formatı
- PDF yazma izni hatası
- QR/merge sırasında kütüphane uyumsuzluğu
Hızlı Kontrol Adımları
tbl_resmifatura_logstablosunu kontrol edin.- Lisans tarihini ve domain/IP eşleşmesini doğrulayın.
storage/pdfsyazma izinlerini kontrol edin.- Provider API URL ve credential’ları doğrulayın.
- Cron çalışmasını doğrulayın.
17) Production Checklist
- Lisans anahtarı ve doğrulama endpoint’i aktif.
- Provider credentials production bilgileri girildi.
- Firma bilgileri ve yasal metin tamamlandı.
- PDF klasör izinleri doğrulandı.
- Cron job günlük çalışıyor.
- İlk test faturası
local_onlyile üretildi. - Provider’a test gönderimi başarılı.
- Log retention politikası belirlendi.
18) Sürümleme ve Destek
- Sürüm:
1.2.0 - Teknik notlar:
IMPLEMENTATION_NOTES.md - Destek ve yıllık lisans yenileme: satış/destek kanalınız
Lisans ve Hukuki
Bu depodaki kod örnekleri proje gereksinimine göre düzenlenmiştir. Ticari kullanımda yıllık lisans koşulları sözleşme ile belirlenmelidir.