SUPONO.
ISP-Billing โ€ข Kursus PraktisiPanduan Praktik Hands-On

Modul Bab 3: Integrasi Payment Gateway QRIS & Otomasi Billing

Arsitektur transaksi QRIS non-tunai, alur webhook callback, verifikasi signature SHA512, dan auto-activation.

Format: Markdown (.MD)โ€ขFile: bab_3_integrasi_payment_gateway_qris.mdโ€ขSasaran: Praktisi & DevOps
Filter Versi CLI:

Model penjualan voucher manual menggunakan kartu cetak kertas mulai ditinggalkan karena biaya cetak tinggi dan keterbatasan operasional kasir. Dengan integrasi QRIS Dinamis (Quick Response Code Indonesian Standard) dari payment gateway seperti Midtrans, Xendit, atau Tripay, pelanggan hotspot dapat memilih paket langsung di layar HP mereka, memindai QRIS dengan e-wallet (GoPay, OVO, Dana, ShopeePay, BCA/Mandiri Mobile), dan router akan mengaktifkan akses internet secara otomatis dalam hitungan detik.

sequenceDiagram autonumber actor User as Pembeli Hotspot (HP) participant CP as Captive Portal (Landing Page) participant PG as Payment Gateway (Midtrans/Tripay) participant WH as Webhook Worker Node/Python participant ROS as MikroTik CHR User Manager User->>CP: Pilih Paket Harian (Rp 10.000) & Masukkan Nomor WA CP->>PG: Request QRIS Dinamis (Rp 10.000) PG-->>CP: Tampilkan Gambar QRIS CP-->>User: Tampilkan Layar Pembayaran QRIS User->>PG: Bayar via BCA/GoPay/Dana PG->>WH: Notifikasi HTTP Webhook "SETTLED" Note over WH: Validasi Signature Key WH->>ROS: REST API PUT /user-manager/user (Buat Voucher) WH->>User: Kirim Kode Voucher via WhatsApp Bot WH-->>CP: Sinyal Sukses -> Auto Login Hotspot!

3.1 Alur Kerja Webhook Payment Gateway #

  1. Invoice Request: Frontend meminta pembuatan order dengan parameter ID unik transaksi, nominal harga, dan expired time (misal 15 menit).
  2. Dynamic QRIS Generation: Payment gateway menghasilkan QRIS payload string 00020101021226....
  3. Webhook Callback: Saat pembayaran lunas, gateway melakukan HTTP POST callback ke server backend Anda.
  4. Security Verification: Backend memvalidasi signature_hash (kombinasi order_id + status + server_key) untuk memastikan request tidak dipalsukan.
  5. Fulfillment: Backend memanggil API MikroTik untuk meng-generate user atau langsung me-login-kan MAC address pelanggan ke /ip/hotspot/active.