Hoşgeldin Misafir

Ücretsiz | Android SMS Sunucusu Saas Sistemi Abonelik sistemli Script 13.07.2026

müminbiri

müminbiri

Ne kadar sessiz olursan, o kadar çok işitebilirsin
13 Ağu 2025
1,331 Mesaj
TIM Görevleri
1

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
İNDİRME
DEMO

Öne Çıkan Özellikler​


  • Kayıt, giriş, e-posta doğrulama ve şifre sıfırlama
  • Kullanıcı profili düzenleme ve şifre değiştirme
  • Eşleştirme kodu ile Android cihaz bağlama
  • Birden fazla cihaz yönetimi, düzenleme, duraklatma ve silme
  • Rehber, grup, toplu içe aktarma ve boş şablon indirme
  • Tekli, gruplu ve tüm rehbere SMS gönderimi
  • Zamanlama, hız limiti ve cihaz seçimi destekli SMS kuyruğu
  • SMS durum raporları ve Excel dışa aktarma
  • Kullanıcı API anahtarı üretme ve harici sistem entegrasyonu
  • Kullanıcılar için PayTR ile online paket satın alma, uzatma ve yükseltme
  • Kullanıcılar için Havale/EFT ödeme talebi ve WhatsApp üzerinden dekont iletimi
  • Admin panelinden APK yükleme ve kullanıcılar için APK indirme sayfası
  • Kullanıcı sözleşmesi kabulü, kabul tarihi, IP adresi ve tarayıcı bilgisi loglama
  • Android tarafında foreground service, polling, heartbeat, boot sonrası yeniden başlatma ve pil optimizasyonu uyarısı

Sistem Gereksinimleri​


  • PHP ≥ 8.1 (PDO MySQL, mbstring, openssl, fileinfo extension'ları)
  • MySQL ≥ 5.7 / MariaDB ≥ 10.3
  • Apache veya Nginx (mod_rewrite / rewrite desteği) — paylaşımlı hostingde .htaccess kullanılır
  • HTTPS (PayTR callback ve güvenli oturum için zorunlu)
  • Yazılabilir storage/ klasörü (log, rate-limit, APK upload)
YAPILANDIRMA VE SCRİPT İÇERİK

Öne Çıkan Özellikler​

  • public/: Web giriş noktası ve statik dosyalar​
  • app/: Controller, model, core sınıflar ve view dosyaları​
  • database/schema.sql: Temiz kurulum için MySQL şeması​
  • database/migrate_2026_04_08_user_agreements.sql: Mevcut kurulumlar için kullanıcı sözleşmesi kabul kayıt tablosu​
  • database/migrate_2026_04_08_paytr_payments.sql: Mevcut kurulumlar için PayTR ödeme tabloları ve ayarları​
  • database/migrate_2026_04_08_whatsapp_bank_transfer.sql: Mevcut kurulumlar için Havale/EFT WhatsApp ayarı​
  • docs/api.md: Harici entegrasyon API dokümantasyonu​
  • android-app/: Kotlin tabanlı Android istemci uygulaması​

Öne Çıkan Özellikler​

  • Kayıt, giriş, e-posta doğrulama ve şifre sıfırlama​
  • Kullanıcı profili düzenleme ve şifre değiştirme​
  • Eşleştirme kodu ile Android cihaz bağlama​
  • Birden fazla cihaz yönetimi, düzenleme, duraklatma ve silme​
  • Rehber, grup, toplu içe aktarma ve boş şablon indirme​
  • Tekli, gruplu ve tüm rehbere SMS gönderimi​
  • Zamanlama, hız limiti ve cihaz seçimi destekli SMS kuyruğu​
  • SMS durum raporları ve Excel dışa aktarma​
  • Kullanıcı API anahtarı üretme ve harici sistem entegrasyonu​
  • Kullanıcılar için PayTR ile online paket satın alma, uzatma ve yükseltme​
  • Kullanıcılar için Havale/EFT ödeme talebi ve WhatsApp üzerinden dekont iletimi​
  • Admin panelinden APK yükleme ve kullanıcılar için APK indirme sayfası​
  • Kullanıcı sözleşmesi kabulü, kabul tarihi, IP adresi ve tarayıcı bilgisi loglama​
  • Android tarafında foreground service, polling, heartbeat, boot sonrası yeniden başlatma ve pil optimizasyonu uyarısı​

Sistem Gereksinimleri​

  • PHP ≥ 8.1 (PDO MySQL, mbstring, openssl, fileinfo extension'ları)​
  • MySQL ≥ 5.7 / MariaDB ≥ 10.3​
  • Apache veya Nginx (mod_rewrite / rewrite desteği) — paylaşımlı hostingde .htaccess kullanılır​
  • HTTPS (PayTR callback ve güvenli oturum için zorunlu)​
  • Yazılabilir storage/ klasörü (log, rate-limit, APK upload)​

Kurulum​

1. Veritabanı Hazırlığı​

  1. Hosting panelinizden veya phpMyAdmin üzerinden boş bir veritabanı ve yetkili bir kullanıcı oluşturun.​
  2. İlgili veritabanını phpMyAdmin içinde seçin.​
  3. Temiz kurulum yapıyorsanız database/schema.sql dosyasını içe aktarın (tüm tablolar + seed verisi içerir).​
  4. Mevcut kurulumu güncelliyorsanızsırasıyla migrasyon dosyalarını çalıştırın:
    • database/migrate_2026_04_08_contact_address.sql​
    • database/migrate_2026_04_08_user_agreements.sql​
    • database/migrate_2026_04_08_plan_limits.sql​
    • database/migrate_2026_04_08_paytr_payments.sql​
    • database/migrate_2026_04_08_whatsapp_bank_transfer.sql​

2. Dosya Yükleme ve İzinler​

  1. Proje dosyalarını sunucuya yükleyin (paylaşımlı hosting: public_html/sms/ altına).​
  2. storage/ klasörünü ve alt klasörlerini (logs, rate_limits, uploads) yazılabilir yapın (chmod -R 775 storage).​
  3. index.php, .htaccess ve .env dosyalarının gerçekten sunucuda olduğundan emin olun.​

3. Ortam Yapılandırması​

  1. .env dosyasındaki veritabanı ve uygulama ayarlarını kendi ortamınıza göre güncelleyin.​
Örnek .env:
Kod:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://akcsoft.com/sms
APP_NAME=SMS Portal
APP_TIMEZONE=Europe/Istanbul
[email protected]
MAIL_FROM_NAME=SMS Portal
SMTP_ENABLED=false
SMTP_HOST=
SMTP_PORT=587
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_ENCRYPTION=tls
[email protected]
SMTP_FROM_NAME=SMS Portal
PAYTR_ENABLED=false
PAYTR_MERCHANT_ID=
PAYTR_MERCHANT_KEY=
PAYTR_MERCHANT_SALT=
PAYTR_TEST_MODE=true
PAYTR_DEBUG_ON=false
DB_HOST=localhost
DB_PORT=3306
DB_NAME=akcsoftc_sms
DB_USER=akcsoftc_sms
DB_PASS=akcsoftc_sms
RATE_LIMIT_PER_MINUTE=120
DEVICE_RATE_LIMIT_PER_MINUTE=1200
DEVICE_TASK_BATCH_LIMIT=20

Yerelde PHP geliştirme sunucusu açmak için:
php -S localhost:8000 -t public

Paylaşımlı hosting kullanıyorsanız:
  • Proje dosyalarını doğrudan public_html/sms/ altına yükleyin​
  • index.php, .htaccess ve .env dosyalarının gerçekten sunucuda olduğundan emin olun​
  • storage/ klasörünün yazılabilir olması gerekir​

Varsayılan Yönetici Hesabı​

Web Sayfaları​

  • Landing (SEO one-page): /​
  • Kullanıcı paneli: /dashboard​
  • Rehber: /contacts​
  • Cihazlar: /devices​
  • SMS: /sms​
  • Abonelik ve ödeme: /billing​
  • API dokümantasyonu: /api-docs​
  • APK indirme: /apk​
  • Kullanıcı sözleşmesi: /kullanici-sozlesmesi​
  • robots dosyası: /robots.txt​
  • sitemap dosyası: /sitemap.xml​

PayTR Kurulumu​

  1. Yönetici panelinden Yönetim -> PayTR Ayarları sayfasına gidin.​
  2. Merchant ID, Merchant Key ve Merchant Salt bilgilerinizi girin.​
  3. Test aşamasında Test modu açık, canlıya geçerken kapalı olmalıdır.​
  4. PayTR panelinde bildirim URL'si olarak şu adresi tanımlayın: https://your-domain.example/sms/payment/paytr/callback
  5. Kullanıcılar paket satın alma, uzatma ve yükseltme işlemlerini /billing sayfasından yapar.​

Havale/EFT + WhatsApp Kurulumu​

  1. Yönetici panelinde Yönetim -> Ayarlar ekranından Havale/EFT WhatsApp alanını doldurun.​
  2. Numara uluslararası formatta girilmelidir (örnek: +90 555 123 45 67).​
  3. Kullanıcılar /billing sayfasındaki paket kartlarından Havale/EFT için WhatsApp butonuna tıklayarak ödeme talebi oluşturabilir.​

Harici Entegrasyon API​

Base URL:



Temel kullanıcı endpointleri:
  • POST /auth/login​
  • GET /me​
  • GET /user/devices​
  • GET /user/groups​
  • POST /user/groups​
  • GET /user/contacts​
  • POST /user/contacts​
  • POST /user/sms/send​
  • GET /user/sms/history​
Android cihaz endpointleri:
  • POST /devices/register​
  • POST /devices/heartbeat​
  • GET /devices/tasks​
  • POST /devices/tasks/{id}/result​
Detaylı örnekler için:
  • Panel içi sayfa: /api-docs​
  • Dosya: docs/api.md​

Android Uygulaması​

  1. android-app/ klasörünü Android Studio ile açın.​
  2. Sunucu URL bilgisini kendi API adresinize göre ayarlayın.​
  3. Emülatör için örnek adres: http://10.0.2.2:8000/api/v1
  4. Fiziksel cihazda aynı ağdaki sunucu IP adresini veya canlı domaininizi kullanın.​
  5. Uygulama açıldığında cihaz kaydı yapılır ve eşleştirme kodu üretilir.​
  6. Kullanıcı panelinden bu kod ile cihaz hesabınıza bağlanır.​
Arka plan dayanıklılığı için uygulama:
  • Foreground service ile çalışır​
  • Cihaz yeniden başlatıldığında servisi tekrar açar​
  • Uygulama güncellendiğinde servisi tekrar başlatır​
  • Görev listesinden kapatılınca servis yeniden planlanır​
  • Pil optimizasyonu muafiyeti ister​
Hız optimizasyonu:
  • API tarafında cihaz görev batch limiti .env ile ayarlanır: DEVICE_TASK_BATCH_LIMIT=20​
  • Android varsayılan polling aralığı 10 saniye, batch limiti 20 olarak güncellendi​
  • Cihaz endpointleri için ayrı rate limit kullanılır: DEVICE_RATE_LIMIT_PER_MINUTE=1200​
  • Teorik cihaz kapasitesi formülü: (60 / poll_saniye) x batch_limit​
Not: Android derlemesi bu ortamda Gradle yerel kütüphane hatası nedeniyle yeniden doğrulanamadı. Kod tarafındaki değişiklikler hazırdır.

Güvenlik​

  • Web formlarında CSRF koruması​
  • API isteklerinde Bearer token doğrulaması​
  • PDO prepared statement ile SQL injection riskinin azaltılması​
  • View katmanında htmlspecialchars tabanlı çıktı kaçışı​
  • Dosya tabanlı rate limiting​
  • Kullanıcı sözleşmesi kabul kaydı: sürüm, tarih, IP adresi, user agent​

Sık Karşılaşılan Hosting Notları​

  • #1044 Access denied hatası alırsanız, CREATE DATABASE yetkiniz yoktur; sadece schema.sql dosyasını mevcut veritabanının içine import edin.​
  • cPanel benzeri sistemlerde veritabanı adı çoğunlukla kullaniciadi_veritabani formatındadır.​
  • /sms altında 404 alıyorsanız dosyalar yanlış klasöre yüklenmiş olabilir veya .htaccess eksik olabilir.​