Jual script WHATSAPP BLAST
lengkap... metode pembayaran di script, midtrans otomatis, dan manual transfer.. bahasa program PHP .
B. FITUR PENGGUNA (USER DASHBOARD)
================================================================================
--- B1. AUTENTIKASI & PROFIL ---
[x] Registrasi dengan verifikasi email
[x] Login dengan session secure (HttpOnly, SameSite, HTTPS-only)
[x] Logout + hapus session
[x] Lupa password via email (token one-time, expire 1 jam)
[x] Reset password dengan validasi token
[x] Ubah profil (nama, email, nomor HP, foto)
[x] Ubah password dari dashboard
[x] Session lifetime 2 jam (auto logout jika idle)
--- B2. WHATSAPP SESSIONS ---
[x] Tambah sesi WhatsApp baru (multi-device)
[x] Scan QR Code secara real-time (polling setiap 3 detik)
[x] Status sesi: connecting / connected / disconnected
[x] Disconnect sesi dari dashboard
[x] Hapus sesi (bersihkan credential Baileys)
[x] PAUSE / RESUME sesi (hentikan sementara tanpa disconnect)
[x] Tampilkan nomor HP yang terhubung
[x] Batas maksimal sesi sesuai paket (configurable per paket)
[x] Reconnect otomatis saat koneksi terputus (delay 5 detik)
[x] Penanganan kode 405 Forbidden (akun diblokir WA) — cooldown 2 menit
[x] Penanganan logout paksa dari HP — marker sesi di database
--- B3. KONTAK ---
[x] Tambah kontak manual (nama, HP, email, catatan, tag)
[x] Import kontak dari CSV / TXT (auto-detect separator koma/titik koma)
[x] Export kontak ke CSV
[x] Hapus kontak (single dan bulk)
[x] Duplikasi nomor HP dicegah secara otomatis
[x] Normalisasi nomor HP otomatis (0812 → 62812)
[x] Tag / label kontak untuk segmentasi
[x] Sinkronisasi kontak dari riwayat chat WhatsApp (has_contact_sync)
[x] Batas maksimal kontak sesuai paket
[x] Grup kontak (kelompokkan kontak untuk targeting kampanye)
[x] Anggota grup kontak (many-to-many)
--- B4. KAMPANYE BLAST ---
[x] Buat kampanye baru (bulk send ke banyak kontak)
[x] Pilih kontak target secara manual / per grup
[x] Pilih sesi WhatsApp yang digunakan
[x] Pesan teks dengan format bold/italic/strikethrough WhatsApp
[x] Kirim media (gambar, dokumen, video) via URL
[x] Tombol URL interaktif (hingga 3 tombol per pesan)
[x] Menu List interaktif (multi-pilihan dalam satu pesan)
[x] Delay antar pesan (configurable, minimum 1 detik, default 3 detik)
[x] Jadwal kampanye (kirim otomatis di waktu tertentu)
[x] Auto-start kampanye terjadwal via cron
[x] Hentikan / pause kampanye yang sedang berjalan
[x] Hapus kampanye (hanya owner / manager / admin)
[x] Pantau progress kampanye real-time (pending/sent/failed)
[x] Riwayat kampanye lengkap
[x] Kuota kampanye per bulan sesuai paket
[x] Kuota pesan per hari sesuai paket
[x] Cek kuota harian sebelum kampanye dimulai
[x] Mutex lock — cegah duplikasi pengiriman jika cron overlap
[x] Pengiriman maksimal 50 pesan per run cron (anti-timeout)
--- B5. TEMPLATE PESAN ---
[x] Simpan template pesan yang sering digunakan
[x] Kategori template (general, promo, follow-up, dll.)
[x] Template dengan media URL
[x] Template dengan tombol URL (hingga 3 tombol)
[x] Template dengan menu list interaktif
[x] Edit dan hapus template
[x] Gunakan template langsung saat membuat kampanye
--- B6. AUTO REPLY ---
[x] Balas pesan otomatis berbasis kata kunci
[x] Tiga mode pencocokan: contains (mengandung), exact (persis), starts_with (diawali)
[x] Pesan balasan teks biasa
[x] Pesan balasan dengan menu list interaktif
[x] Pesan balasan dengan tombol URL
[x] Prioritas rule (angka lebih tinggi = diproses lebih dulu)
[x] Enable / disable per rule
[x] Berlaku untuk sesi tertentu atau semua sesi
[x] Fitur dikunci di balik flag paket (has_auto_reply)
--- B7. CHATBOT AI (OpenAI GPT) ---
[x] Chatbot berbasis OpenAI GPT-3.5 / GPT-4
[x] Konfigurasi system prompt per sesi (kepribadian bot)
[x] Trigger keywords — bot hanya aktif jika kata kunci diterima
[x] Pesan sambutan (welcome message) saat kontak pertama kali chat
[x] Welcome message dengan tombol URL dan list interaktif
[x] Pesan fallback jika GPT tidak bisa menjawab
[x] Fallback dengan tombol URL dan list interaktif
[x] Riwayat percakapan real-time (polling AJAX)
[x] Filter kontak berdasarkan sesi
[x] Jumlah token OpenAI yang digunakan tercatat di database
[x] Fitur dikunci di balik flag paket (has_chatbot)
--- B8. JAM KERJA (BUSINESS HOURS) ---
[x] Setting jam operasional per hari (Senin–Minggu)
[x] Konfigurasi berbeda per sesi WhatsApp
[x] Pesan otomatis di luar jam kerja (offline message)
[x] Offline message dengan tombol URL
[x] Enable / disable per hari
[x] Berlaku untuk semua sesi atau sesi tertentu
[x] Fitur dikunci di balik flag paket (has_business_hours)
--- B9. SALAM PENUTUP (CLOSING GREETING) ---
[x] Kirim pesan penutup otomatis setelah kontak tidak membalas
[x] Delay configurable (default 30 menit, minimum 5 menit)
[x] Salam penutup dengan menu list interaktif
[x] Salam penutup dengan tombol URL
[x] Berlaku untuk sesi tertentu atau semua sesi
[x] Tracking kapan terakhir pesan masuk & kapan closing terkirim
[x] Fitur dikunci di balik flag paket (has_closing_greeting)
--- B10. FILTER KATA BURUK ---
[x] Daftar kata yang diblokir atau diganti
[x] Mode "replace" — ganti kata dengan ***(atau custom)
[x] Mode "block" — blokir seluruh pesan jika ada kata terlarang
[x] Daftar kata global dari admin (berlaku ke semua user)
[x] Daftar kata personal per user
[x] Enable / disable per kata
[x] Fitur dikunci di balik flag paket (has_bad_word_filter)
--- B11. TIM MANAJEMEN ---
[x] Undang anggota tim via email
[x] Link undangan berexpiry (7 hari) dengan token unik
[x] 4 level role tim:
VIEWER — hanya bisa melihat data
OPERATOR — bisa kelola kontak, kampanye, template
MANAGER — operator + bisa hapus data
ADMIN — akses penuh termasuk kelola tim
[x] Anggota tim mengakses data owner (bukan data sendiri)
[x] Revoke / hapus anggota tim kapan saja
[x] Halaman kelola tim bisa diakses oleh role Admin Tim
[x] Fitur dikunci di balik flag paket (has_team_access)
--- B12. CEK NOMOR WHATSAPP ---
[x] Cek apakah nomor HP terdaftar di WhatsApp
[x] Normalisasi nomor otomatis sebelum cek
[x] Fitur dikunci di balik flag paket (has_check_number)
--- B13. WEBHOOKS ---
[x] Konfigurasi webhook URL untuk notifikasi event real-time
[x] Pilih event yang dimonitor:
- Pesan masuk (message_received)
- Pesan terkirim (message_sent)
- Sesi terhubung (session_connected)
- Sesi terputus (session_disconnected)
- QR Code diterima (qr_received)
[x] Secret key per webhook untuk validasi tanda tangan (HMAC-SHA256)
[x] Webhook test langsung dari dashboard
[x] Riwayat webhook log (status, response HTTP, timestamp)
[x] Fitur dikunci di balik flag paket (has_webhooks)
[x] Hanya tersedia untuk pemilik akun (bukan tim)
--- B14. AKSES API ---
[x] Generate API token (40-char hex, valid 1 tahun)
[x] Revoke token kapan saja
[x] Token di-mask di tampilan (hanya 8 char pertama & terakhir)
[x] Kuota API call per hari sesuai paket
[x] Dokumentasi endpoint tersedia di halaman API Access
[x] Fitur dikunci di balik flag paket (has_api_access)
[x] Hanya tersedia untuk pemilik akun (bukan tim)
--- B15. PAKET & PEMBAYARAN ---
[x] Lihat daftar paket aktif yang tersedia
[x] Proses berlangganan dengan payment gateway Midtrans
[x] Dukungan berbagai metode pembayaran (transfer, virtual account, QRIS, dll.)
[x] Riwayat order lengkap
[x] Riwayat pembayaran lengkap
[x] Cek status pembayaran manual
[x] Paket aktif dan tanggal kedaluwarsa tampil di dashboard
--- B16. MONITORING & LOG ---
[x] Message logs — riwayat semua pesan yang dikirim
[x] Audit logs — riwayat aktivitas user (login, edit, hapus, dll.)
[x] Notifikasi in-app (real-time polling setiap 30 detik)
[x] Mark notification sebagai dibaca (satu per satu atau semua)
[x] Session events (koneksi WA masuk / keluar dicatat)
C. FITUR ADMIN PANEL
================================================================================
--- C1. DASHBOARD ADMIN ---
[x] Total user, user aktif
[x] Total revenue dan revenue bulan ini
[x] Total order dan pembayaran pending
[x] Sesi WhatsApp aktif saat ini
[x] Total kampanye seluruh user
[x] Chart pendapatan 6 bulan terakhir
[x] Chart user baru per bulan
[x] 10 order terbaru
[x] 5 user terbaru
--- C2. MANAJEMEN USER ---
[x] Daftar semua user dengan filter & pencarian
[x] Tambah user baru
[x] Edit data user (nama, email, role, status)
[x] Suspend / aktifkan user
[x] Hapus user
[x] Lihat detail user (paket, sesi, kampanye)
[x] Assign / ubah paket user secara manual
--- C3. MANAJEMEN PAKET ---
[x] Tambah, edit, hapus paket
[x] Auto-generate slug dari nama paket
[x] Konfigurasi limit per paket:
- Maks sesi WhatsApp
- Maks kontak
- Maks kampanye per bulan
- Maks pesan per hari
- Maks API call per hari
[x] Toggle fitur per paket (on/off):
has_chatbot, has_api_access, has_webhooks, has_team_access,
has_bad_word_filter, has_business_hours, has_closing_greeting,
has_check_number, has_contact_sync, has_auto_reply
[x] Harga paket dan durasi (hari)
[x] Auto-generate deskripsi fitur dari konfigurasi (selalu sinkron)
[x] Nonaktifkan paket (soft delete)
--- C4. MANAJEMEN PROMO / DISKON ---
[x] Buat kode promo dengan kode unik
[x] Diskon tipe persen atau nominal tetap
[x] Batas penggunaan (max_uses, NULL = unlimited)
[x] Minimum nominal order
[x] Tanggal mulai dan berakhir promo
[x] Aktif / nonaktifkan promo
[x] Counter penggunaan kode promo otomatis
--- C5. MANAJEMEN ORDER & PEMBAYARAN ---
[x] Daftar semua order seluruh user
[x] Detail order (user, paket, diskon, kode promo, metode bayar)
[x] Update status order secara manual
[x] Daftar pembayaran pending
[x] Payment callback dari Midtrans (webhook otomatis)
[x] Ekspor data order
--- C6. PENGATURAN SISTEM ---
[x] Konfigurasi nama aplikasi, URL, logo
[x] Konfigurasi Midtrans (server key, client key, mode)
[x] Konfigurasi OpenAI (API key, model)
[x] Konfigurasi WhatsApp Service token
[x] Konfigurasi SMTP email
[x] Pengaturan batas upload, maintenance mode
[x] Semua pengaturan tersimpan di tabel `settings` (key-value)
--- C7. FILTER KATA BURUK GLOBAL ---
[x] Tambah kata buruk yang berlaku untuk SEMUA user
[x] Toggle aktif/nonaktif per kata
[x] Hapus kata buruk global
--- C8. AUDIT LOG ADMIN ---
[x] Riwayat semua aktivitas admin
[x] Riwayat aktivitas semua user
[x] Filter berdasarkan user dan jenis aksi
--- C9. NOTIFIKASI ADMIN ---
[x] Notifikasi real-time untuk admin
[x] Notifikasi pembayaran baru masuk
[x] Notifikasi registrasi user baru
--- C10. MESSAGE LOGS ADMIN ---
[x] Lihat log pesan dari semua user
[x] Filter berdasarkan user dan sesi
================================================================================
D. SISTEM OTOMASI & CHATBOT
================================================================================
[x] Auto Reply — Balas pesan secara otomatis berbasis keyword
[x] Chatbot AI — GPT menjawab percakapan secara natural
[x] Business Hours — Hanya proses pesan di jam kerja
[x] Closing Greeting — Kirim pesan perpisahan otomatis
[x] Bad Word Filter — Sensor / blokir kata terlarang di semua pesan
[x] Campaign Scheduler — Jadwalkan kampanye di waktu tertentu
[x] Expiry Reminder — Ingatkan user sebelum paket habis (via email)
[x] Auto Expire — Nonaktifkan paket yang sudah habis masa berlaku
[x] Pause Campaign — Pause kampanye saat paket expired
Urutan pemrosesan pesan masuk di Node.js:
1. Cek sesi PAUSE — jika pause, abaikan
2. Cek Business Hours — jika di luar jam kerja, kirim offline message
3. Cek Bad Word Filter — sensor / blokir kata terlarang
4. Cek Auto Reply — jika ada keyword match, balas dan stop
5. Cek Chatbot AI — jika trigger keyword cocok, teruskan ke GPT
6. Update contact_sessions untuk tracking closing greeting
================================================================================
E. SISTEM PAYMENT & PAKET BERLANGGANAN
================================================================================
[x] Integrasi Midtrans production dan sandbox
[x] Buat order dan redirect ke halaman pembayaran Midtrans
[x] Kode promo & diskon — validasi saat checkout
[x] Perhitungan final_amount (harga - diskon)
[x] Callback otomatis dari Midtrans (webhook) untuk update status
[x] Validasi signature Midtrans (HMAC-SHA512) di callback
[x] Aktivasi paket otomatis setelah pembayaran sukses
[x] Email konfirmasi setelah pembayaran berhasil
[x] Penanganan payment method: bank_transfer, echannel, bca_va, bni_va, dll.
[x] Riwayat order dan pembayaran per user
[x] Tabel `payments` terpisah dari `orders` untuk audit trail
[x] Cek status pembayaran manual (re-check ke Midtrans API)
[x] Email pengingat paket akan habis (H-7, H-3, H-1)
[x] Auto-pause kampanye saat paket expired
================================================================================
F. KEAMANAN (SECURITY)
================================================================================
--- F1. AUTENTIKASI ---
[x] Password di-hash dengan password_hash() (bcrypt)
[x] Rate limiting login — blokir setelah 5 kali gagal (cooldown 15 menit)
[x] Rate limiting register — maks 3 register per IP per jam
[x] Rate limiting forgot-password — maks 3 request per IP per jam
[x] Session regenerate ID setelah login (cegah session fixation)
[x] Cookie session: HttpOnly, Secure (HTTPS), SameSite=Lax
[x] Session lifetime 2 jam
--- F2. CSRF PROTECTION ---
[x] CSRF token di setiap form POST (bin2hex random_bytes 32)
[x] Validasi token di semua handler POST
[x] Token per-session (bukan per-form) — efisien dan aman
[x] Gagal validasi → redirect dengan pesan error + HTTP 403
--- F3. INPUT VALIDATION & SANITIZATION ---
[x] htmlspecialchars() pada semua output HTML (fungsi e())
[x] Prepared statement PDO di semua query database (zero SQL injection)
[x] Validasi tipe data (intval, filter_var, preg_match)
[x] Validasi URL (FILTER_VALIDATE_URL)
[x] Whitelist validasi untuk enum/pilihan (role, match_type, action)
[x] Normalisasi nomor telepon sebelum disimpan
--- F4. AKSES KONTROL ---
[x] requireLogin() — middleware cek login di semua halaman user
[x] requireAdmin() — middleware cek role admin di semua halaman admin
[x] requireActivePackage() — blokir akses jika paket tidak aktif
[x] requireTeamRole() — validasi level role tim
[x] Gate per fitur: cek has_chatbot, has_api_access, dll. sebelum render
[x] Anggota tim hanya akses data owner (row-level isolation)
[x] API token auth via header Authorization: Bearer
[x] WA Service token internal (PHP → Node.js) via Bearer header
--- F5. FILE UPLOAD SECURITY ---
[x] Validasi ekstensi file sebelum upload
[x] Validasi ukuran file (MAX 10MB)
[x] File disimpan di luar public root jika perlu
[x] Generated filename (bukan nama asli file user)
--- F6. NODE.JS SERVICE ---
[x] Bearer token auth di semua endpoint /api/*
[x] Health check endpoint bebas auth (/api/health)
[x] CORS tersedia (bisa dikonfigurasi lebih ketat)
[x] Cooldown 2 menit saat error 405 Forbidden WhatsApp
--- F7. HEADER KEAMANAN HTTP ---
[x] X-Content-Type-Options: nosniff
[x] X-Frame-Options: SAMEORIGIN (anti-clickjacking)
[x] X-XSS-Protection: 1; mode=block
[x] Referrer-Policy: strict-origin-when-cross-origin
[x] Permissions-Policy (disable geolocation, microphone, camera)
[x] Content-Security-Policy (whitelist CDN, Midtrans)
--- F8. ENVIRONMENT ---
[x] Kredensial di .env (tidak di-commit ke repo)
[x] File .env diblokir akses publik via .htaccess
[x] composer.json, .sql, .gitignore semua diblokir
[x] Directory listing dinonaktifkan (Options -Indexes)
--- F9. WEBHOOK ---
[x] Validasi HMAC-SHA256 di setiap webhook request dari user
[x] Validasi Midtrans signature (SHA512) di payment callback



Loading ...

No record found.