KRISPAY
Pembayaran cashless untuk mesin laundry self-service
Fullstack Engineer | 2022 sampai sekarang | Laravel, PHP, integrasi IoT, MySQL
Sistem pembayaran cashless untuk mesin laundry self-service yang sudah jalan di 80+ cabang.
Cabang laundry self-service jalan pakai koin dan kartu prabayar yang harus diisi ulang dulu. Pemilik baru tahu pendapatannya setelah ada orang datang mengambil uangnya, dan koin yang hilang ya sudah, hilang begitu saja tanpa jejak.
Mesinnya ada di cabang dengan internet rumahan. Pembayaran yang gagal di tengah jalan lebih buruk daripada tidak jadi bayar sama sekali: uang pelanggan sudah terpotong, mesin tetap diam, dan tidak ada staf di lokasi yang bisa membereskan.
Bikin firmware dan sistem kontrol mesin sendiri untuk 80 lebih cabang, dengan tim sekecil kami waktu itu, jelas tidak realistis dari sisi waktu. Saya akhirnya pakai platform smart switch yang sudah ada di pasaran untuk ngendaliin mesinnya, lalu API-nya saya bungkus lewat layanan sendiri, ditambah mekanisme coba ulang kalau platform itu lagi tidak merespons. Jadi kalau ada gangguan di pihak mereka, yang kelihatan di aplikasi bukan error. Risikonya, saya jadi ikut terikat sama batas pemakaian dan waktu gangguan milik penyedia itu, dua hal yang di luar kendali saya.
Pembayaran QRIS kadang sudah sukses di sisi penyedia, tapi konfirmasinya tidak pernah sampai ke server kami gara-gara koneksi cabang putus atau lemot. Solusinya, tiap transaksi saya kasih kode unik yang tetap dikenali server walau dikirim berulang, dan server akan tanya langsung ke penyedia kalau konfirmasi tidak kunjung datang, bukannya cuma mengandalkan satu pesan yang bisa saja hilang. Konsekuensinya transaksi yang belum tuntas jadi disimpan lebih lama dan dicocokkan berkala. Menagih pelanggan padahal mesinnya mati itu kesalahan paling mahal yang bisa terjadi, jadi risiko itu saya rasa sepadan.
Dulu pemilik cabang baru tahu mesin mana yang kosong, rusak, atau lagi dipakai kalau ada yang lapor manual. Sekarang tiap mesin kirim status sendiri, entah lagi nganggur, jalan, atau bermasalah, ke satu dashboard yang bisa dipantau bareng-bareng. Ada tambahan sedikit lalu lintas data karena tiap mesin harus lapor berkala, tapi bisa lihat kondisi mesin secara langsung, bukan cuma uang yang masuk, itu yang bikin bisnis laundry ini terasa seperti usaha beneran, bukan sekadar kumpulan alat.
- -Memproses sekitar 2.000 transaksi per hari di 80+ cabang, lewat pembayaran QRIS yang tersambung langsung ke kontrol mesin
- -Memangkas perjalanan ambil uang tunai jadi nol: pemilik membaca pendapatan tiap mesin secara langsung di satu dashboard
- -Membawa perusahaan dari satu cabang pertama ke 80+ cabang dalam tiga tahun, sebagai lapisan pembayaran yang menopang model kemitraannya
- -Tiga tahun berjalan di produksi tanpa ditulis ulang, dengan cabang baru bertambah tiap bulan
Waktu itu memilih platform IoT orang lain memang tepat demi kecepatan, tapi sekarang itu yang jadi batasan sistemnya. KRISPAY masih jalan di Laravel dan jujur saja sudah kode lama. Sekarang saya sedang membangun penggantinya, Smartkris, di NestJS dengan firmware perangkat sendiri, supaya server dan mesinnya tidak lagi bergantung pada kebijakan perusahaan lain.