Skip to content

Repository files navigation

πŸš€ DANA & Dynamic QRIS Payment Gateway (Self-Hosted)

Python 3.10+ FastAPI QRIS Standard HMAC-SHA256 License

Sistem Payment Gateway Mandiri (Auto-Verification) berbasis intersepsi notifikasi DANA Bisnis (Android / Termux:API) yang digabungkan dengan Generator QRIS Dinamis (EMVCo TLV).

Menerima pembayaran dari semua Bank dan E-Wallet di Indonesia (BCA, BRI, Mandiri, BNI, GoPay, OVO, ShopeePay, DANA, LinkAja) dengan 0% Biaya MDR / Potongan Transaksi.


🌟 Fitur Utama

  • ⚑ QRIS Dinamis Otomatis: Mengonversi QRIS Statis menjadi Dinamis dengan nominal unik & checksum CRC16-CCITT presisi. Pembeli scan dan nominal otomatis terisi di layar HP mereka.
  • πŸ”„ Auto-Settlement Real-time: Intersepsi notifikasi transaksi masuk DANA dan otomatis mengubah status tagihan menjadi PAID dalam hitungan detik.
  • πŸ“± Mendukung Non-Root & Root: Berjalan lancar di HP Android standar tanpa root. Fitur autostart tersedia via Termux:Boot (Non-Root) atau Magisk service.d (Root).
  • πŸ›‘οΈ Keamanan Tingkat Finansial:
    • Webhook Callback bertanda tangan kriptografi HMAC-SHA256 (X-Signature).
    • Proteksi Anti-Tampering dan Anti-Replay Attacks.
    • Buku besar mutasi (Ledger) untuk mencegah Double-Spend.
    • Alokasi kode unik bebas tabrakan (Collision-Free).
    • Transaksi Database Atomik (SQLite WAL Mode).
  • πŸ“± Halaman Checkout Web Siap Pakai: UI Checkout responsif dengan QRIS, info nominal, dan auto-check polling status.
  • πŸ”Œ RESTful API & Swagger Docs: Dilengkapi dokumentasi interaktif OpenAPI (/docs).
  • πŸ€– Android Daemon & Magisk Autostart: Berjalan di latar belakang dan dapat menyala otomatis saat HP booting via service.d.

πŸ—οΈ Arsitektur & Alur Kerja

[Pembeli Checkout di Website/VPS]
              β”‚
              β–Ό
    [POST /api/v1/invoices]
              β”‚
              β–Ό
[Payment Gateway di HP (Termux)]
  β”œβ”€β”€ 1. Generate Kode Unik (misal Rp 50.127)
  β”œβ”€β”€ 2. Buat QRIS Dinamis (Tag 54 + CRC16)
  └── 3. Simpan Status PENDING di SQLite
              β”‚
              β–Ό
[Pembeli Scan QRIS via Bank / E-Wallet]
              β”‚
              β–Ό
[DANA Mengirim Notifikasi ke HP: "Rp50.127 diterima"]
              β”‚
              β–Ό
[Termux:API Listener Menangkap Notifikasi]
  β”œβ”€β”€ 1. Ekstrak Nominal: Rp 50.127
  β”œβ”€β”€ 2. Cek Deduplikasi Buku Besar (Anti Double-Spend)
  └── 3. Cocokkan dengan Tagihan PENDING βž” Ubah Status: PAID
              β”‚
              β–Ό
[Kirim Callback Webhook + HMAC Signature ke VPS Anda]
              β”‚
              β–Ό
[Website/VPS Memproses Pesanan Secara Otomatis! πŸŽ‰]

⚑ Panduan Instalasi Cepat

1. Prasyarat di HP Android

  1. Pasang aplikasi Termux dan Termux:API (dari F-Droid / GitHub).
  2. Buka Pengaturan HP > Akses Notifikasi > Aktifkan izin untuk Termux:API.

2. Clone & Setup di Termux

# Update package dan install dependensi
pkg update && pkg install git python -y

# Clone repositori
git clone https://github.com/USERNAME/dana-qris-gateway.git
cd dana-qris-gateway

# Install dependensi Python
pip install -r requirements.txt --break-system-packages

3. Konfigurasi

Salin file konfigurasi .env.example ke .env:

cp .env.example .env
nano .env

⚠️ PENTING TENTANG API KEY & WEBHOOK SECRET:

  • DANA_API_KEY: BUKAN didapat dari DANA! Ini adalah Password Keamanan Buatan Sendiri agar gateway Anda tidak bisa diakses orang asing. Bebas diisi string acak apa saja.
  • DANA_WEBHOOK_SECRET: BUKAN dari DANA! Ini adalah Kunci Tanda Tangan (Stempel Rahasia) yang Anda buat sendiri untuk memverifikasi keaslian webhook di website/VPS Anda.
  • STATIC_QRIS: String QRIS Statis dari akun DANA Bisnis Anda (diawali 000201010211...).

4. Uji Coba (Test Suite)

Jalankan pengujian logika dan keamanan:

python test_gateway.py

5. Jalankan Gateway di Background

# Menjalankan service
sh scripts/start_gateway.sh

# Cek status log
tail -f logs/service.log

🌐 Endpoint API Utama

Method Endpoint Deskripsi Auth
GET /api/v1/health Cek status server & QRIS Bebas
POST /api/v1/invoices Buat invoice baru & QRIS Dinamis X-API-Key
GET /api/v1/invoices/{id} Cek status invoice Bebas
POST /api/v1/invoices/{id}/cancel Batalkan invoice PENDING X-API-Key
POST /api/v1/qris/convert Konversi QRIS Statis ke Dinamis Bebas
GET /api/v1/checkout/{id} Halaman web UI Checkout Pembayaran Bebas

Dokumentasi Swagger UI lengkap tersedia di: http://localhost:8080/docs



πŸ€– AI Agent Skill & Contoh Integrasi Project

Repositori ini dilengkapi dengan SKILL.md standar untuk AI Coding Assistants (Cursor, Claude, Copilot, Windsurf, Antigravity) dan contoh project toko online siap pakai:


πŸ“– Dokumentasi Lengkap

  • πŸ“Œ AGENTS.md : Pedoman dan arsitektur untuk AI Coding Agents.
  • πŸ› οΈ INSTRUCTIONS.md : Panduan setup lengkap Android Root (service.d), Termux Non-Root (Termux:Boot), dan VPS Tunneling.
  • πŸ’» INTEGRATION.md : Panduan integrasi kode (PHP, Node.js, Python, Golang) dan verifikasi Webhook HMAC-SHA256.

πŸ“„ Lisensi

Didistribusikan di bawah Lisensi MIT. Bebas digunakan untuk kebutuhan personal maupun komersial.

About

πŸš€ DANA & Dynamic QRIS Self-Hosted Payment Gateway (Android Termux & VPS)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages