3.1 KiB
3.1 KiB
Device Flows - QRIS Soundbox Platform v1
1. Soundbox Static Flow
Karakteristik
- QR merchant bersifat statis
- customer input nominal di aplikasi bank/e-wallet
- device menerima notifikasi hasil transaksi
Sequence
- customer scan QR statis merchant
- customer input nominal dan submit pembayaran
- partner/bank memproses pembayaran
- callback payment masuk ke backend
- backend verifikasi signature dan status
- transaction state diupdate
- ledger internal diupdate
- backend lookup binding merchant -> outlet -> terminal -> device
- notification event dibuat
- MQTT push ke device
- device memainkan audio dan/atau menampilkan nominal
Catatan
- challenge utama adalah mapping transaksi ke device yang tepat
- perlu binding yang presisi dan fallback jika device offline
2. Soundbox Dynamic MQTT-only Flow
Karakteristik
- device tidak bisa hit API langsung
- request create QR lewat MQTT
- response dan success notification lewat MQTT
Sequence
- merchant input nominal di device
- device publish request create QR ke topic uplink
- backend MQTT adapter menerima request
- device auth dan capability check dilakukan
- backend validasi nominal, merchant binding, idempotency key
- backend request QR dynamic ke partner QRIS
- transaction dibuat dengan status pending/awaiting_payment
- response QR payload dipublish ke topic device
- device render QR di layar
- customer scan dan bayar
- callback payment masuk ke backend
- backend verifikasi dan update transaction
- ledger internal diupdate
- notification success dipublish ke device
- device memainkan audio sukses
Catatan
- wajib ada request_id / correlation_id
- retry device tidak boleh menimbulkan double create
- MQTT handler jangan jadi pusat logic, hanya ingress adapter
3. Soundbox Dynamic API-direct Flow
Karakteristik
- device dapat call API backend langsung
- create QR dilakukan secara sinkron via API
- success notification tetap realtime via MQTT
Sequence
- merchant input nominal di device
- device call API create dynamic QR
- backend auth device dan validasi payload
- backend check capability dan idempotency
- backend request QR dynamic ke partner QRIS
- transaction dibuat dengan status pending
- response API berisi QR payload + expiry + transaction reference
- device render QR
- customer scan dan bayar
- callback payment masuk ke backend
- backend verifikasi dan update transaction
- ledger internal diupdate
- success notification dikirim via MQTT
- device memainkan audio sukses
Catatan
- ini flow paling bersih untuk engineering
- request-response lebih natural, observability lebih baik
4. Heartbeat Flow
- device kirim heartbeat secara periodik
- backend update last_seen_at
- backend simpan health metrics yang tersedia
- status device diturunkan menjadi online/stale/offline/degraded
- ops dashboard menampilkan alert bila perlu
5. Provisioning Flow
- device didaftarkan di TMS
- credential/token/certificate dibuat
- device dibinding ke merchant/outlet/terminal
- config profile ditetapkan
- device mengambil config awal atau dikirimkan via channel yang tersedia
- device aktif dan mulai heartbeat