LOSLES - Sistem pembayaran otomatis yang menggunakan nominal itu sendiri sebagai pengenal pembayaran
(github.com/ai1023dev)Saya membuat dan merilis sebuah sistem pemrosesan pembayaran open source bernama LOSLES sebagai proyek pribadi.
Ide inti proyek ini adalah "mendeteksi transfer rekening + menggunakan nominal itu sendiri seperti ID pesanan".
Pembayaran transfer rekening pada umumnya biasanya melalui proses berikut.
- Mendaftar ke perusahaan PG
- Registrasi usaha
- Peninjauan
- Integrasi API
- Timbul biaya komisi pembayaran
- Menunggu settlement
Bagi pengembang individu atau proyek kecil, ini sering kali cukup membebani.
Karena itu saya membuatnya dengan gagasan, "apakah pesanan bisa diidentifikasi hanya dari nominalnya?"
Misalnya jika harga produk adalah 10.000 won,
Pesanan pertama:
10.000 won
Pesanan kedua untuk produk yang sama dalam 30 menit:
9.999 won
Pesanan ketiga:
9.998 won
Pesanan keempat:
9.997 won
...
Dengan cara ini, setiap pesanan diberi nominal yang unik.
(Pada implementasi sebenarnya, dimulai dari 99 won lalu mengurangi nominal diskon menjadi 98 won, 97 won, 96 won...)
Karena itu server dapat mengidentifikasi pesanan hanya dengan melihat nominalnya, tanpa input nomor pesanan terpisah.
Aplikasi Android LOSLES bertugas mendeteksi notifikasi isi ulang KakaoPay dan mengirimkannya secara otomatis ke server eksternal.
Dengan memanfaatkan izin akses notifikasi Android (Notification Listener), aplikasi ini memantau notifikasi dari aplikasi KakaoTalk dan KakaoPay secara real-time,
dan ketika notifikasi yang berisi nominal isi ulang diterima, aplikasi akan mengekstrak nominal tersebut lalu mengirim permintaan POST ke URL server yang telah dikonfigurasi.
Jika digunakan bersama LOSLES WEB Server, proses dari setoran pengguna hingga penandaan pembayaran selesai dapat diotomatisasi.
Alur keseluruhan
- Pengguna membuat pesanan
- Server menetapkan nominal unik
- Pengguna melakukan transfer rekening dengan nominal tersebut (saat ini hanya mendukung KakaoPay)
- Aplikasi Android mendeteksi notifikasi isi ulang
- Mengirim nominal ke server
- Server mencocokkan nominal dengan pesanan
- Menandai pembayaran selesai secara otomatis
Artinya,
Bukan "siapa yang mengirim",
melainkan pembayaran diidentifikasi berdasarkan "berapa nominal yang dikirim".
Hal yang perlu diperhatikan
Hal pentingnya, LOSLES bukan proyek yang bertujuan menggantikan PG resmi.
Untuk layanan berskala besar, fungsi refund, settlement, kuitansi, penanganan sengketa, dan keamanan yang disediakan perusahaan PG tetap penting.
Namun untuk proyek pribadi atau penjualan konten digital skala kecil,
"situasi di mana harus mulai dari registrasi usaha lalu sampai menjalani peninjauan PG hanya untuk menerima pembayaran"
terasa berlebihan,
dan ini adalah proyek yang menguji metode untuk mengimplementasikan pembayaran otomatis tanpa melalui proses tersebut.
Saat ini masih versi beta dan sedang menerima masukan.
Secara khusus saya ingin mendengar pendapat tentang bagian-bagian berikut.
- Kelemahan metode identifikasi berbasis nominal
- Cara menangani pesanan duplikat
- Ide peningkatan keamanan
- Pendapat dari mereka yang punya pengalaman operasional nyata
Terima kasih.
6 komentar
Misalnya, jika di sebuah restoran sup kimchi harganya 10.000 won dan sup doenjang juga 10.000 won, lalu masuk pesanan sebesar 10.000 won, apakah berarti tidak bisa dibedakan itu memesan menu yang mana?
Untuk produk berbeda dengan harga yang sama, diskonnya juga harus dibedakan sebesar 1 won per item. Saat benar-benar digunakan, Anda tidak mendaftarkan produk ke server LosLes; sistem akan melihat harga normal barang lalu secara otomatis memberikan diskon yang berbeda.
Jadi, apakah produk yang sama harus terus dijual dengan harga yang berbeda?
Setengah benar dan setengah salah: harga normalnya sama-sama 10.000 won,
namun untuk permintaan pembayaran pertama dalam 30 menit mendapat diskon 99 won,
permintaan pembayaran kedua dalam 30 menit mendapat diskon 98 won, seperti itu. Sepertinya hal itu tidak tersampaikan dengan tepat di artikel.
Kalau pelanggan salah kirim nominal secara tidak sengaja, pencocokannya bakal gagal ya.
Itu memang kelemahan terbesarnya.
Untuk proyek skala kecil yang bahkan memungkinkan pertanyaan lewat DM secara manual masih oke,
tapi untuk perusahaan besar sepertinya lebih baik digunakan setelah menandatangani kontrak dengan perusahaan PG.