DIGITALHUB VVIP - STARTER PHP + MYSQL
=====================================

Fitur:
- Tampilan katalog bergaya streaming, tanpa kategori wajib di halaman depan.
- Akun anonim otomatis berbasis cookie acak yang disimpan sebagai hash di database.
- Kode pemulihan akun (ditampilkan sekali).
- Panel admin satu akun: login, dashboard, tambah/edit/hapus video, upload sampul.
- Tiap video memiliki satu sampul, satu URL video, dan label internal opsional.
- Akses video seharga 1 koin, pembelian tersimpan sehingga tidak bayar ulang.
- Paket top-up dan halaman status pesanan.
- Endpoint webhook Saweria dengan validasi HMAC-SHA256 berdasarkan format webhook yang diketahui komunitas dan deduplikasi ID donasi.

PENTING TENTANG SAWERIA:
- Format signature webhook yang dipakai di sini mengikuti dokumentasi komunitas yang menyatakan:
  HMAC-SHA256(version + id + amount_raw + donator_name + donator_email, stream_key)
  Header: Saweria-Callback-Signature
- Ini bukan jaminan API resmi terkini. Uji dahulu dengan dashboard Saweria kamu. Jika format/header berbeda, jangan aktifkan top-up otomatis sebelum diperbaiki.
- Saweria donasi bukan selalu invoice QRIS unik. Implementasi ini mencocokkan kode pesanan yang harus ditulis di pesan donasi. Jika dashboard/flow pembayaran kamu tidak menjamin pesan donasi ikut webhook, jangan gunakan sebagai bukti tunggal.
- Koin hanya dikreditkan jika signature valid, jumlah sesuai, dan kode pesanan cocok. ID donasi diproses satu kali.
- URL webhook: https://DOMAIN-KAMU/payment/saweria_webhook.php
- Jangan menganggap return page browser sebagai bukti pembayaran.
- Gunakan HTTPS.

INSTALASI:
1. Upload isi folder ini ke public_html pada hosting PHP + MySQL (PHP 8.1+ disarankan).
2. Buat database dan user MySQL di panel hosting.
3. Import database/schema.sql melalui phpMyAdmin.
4. Salin config.example.php menjadi config.php.
5. Isi kredensial database, password admin, base_url, stream_key Saweria, dan paket koin.
6. Buat password hash admin dengan PHP: echo password_hash('PASSWORD_KUAT', PASSWORD_DEFAULT);
   Masukkan hasil hash ke ADMIN_PASSWORD_HASH.
7. Pastikan folder storage/covers bisa ditulis PHP. Proteksi akses script di folder tersebut.
8. Hapus/larang akses folder database/ setelah import, atau pindahkan schema.sql ke luar webroot.
9. Atur webhook Saweria ke URL di atas. Jangan masukkan stream key ke browser.
10. Tes dengan donasi kecil dan cek tabel webhook_events, topups, wallet_transactions.
11. Jangan aktifkan produksi sebelum verifikasi webhook berhasil diuji. Gunakan hanya konten yang kamu punya/berhak distribusikan.

CATATAN:
- Ini starter untuk pengembangan, bukan audit keamanan atau jaminan kompatibel dengan semua konfigurasi Saweria.
- Pembayaran otomatis bergantung pada kemampuan Saweria mengirim webhook dengan pesan/kode pesanan yang cocok.
- Link eksternal yang publik tetap bisa dibuka langsung di luar DigitalHub. Untuk proteksi konten, gunakan host video privat/tokenized.
- Jangan upload config.php, database dump, atau token ke GitHub publik.


PENGATURAN SAWERIA
1. Import database/schema.sql pada database baru.
2. Masuk /admin/login.php lalu buka Pengaturan Saweria.
3. Isi link profil Saweria, Stream Key, dan minimal donasi.
4. Endpoint webhook: BASE_URL/payment/saweria_webhook.php
5. Integrasi belum dianggap siap produksi sampai webhook diuji pada akun Saweria kamu. Format tanda tangan dalam starter mengacu dokumentasi komunitas dan dapat berubah. Jangan pernah membagikan stream key.
