Mengapa Pembayaran Stablecoin Memerlukan Konfirmasi dan Masa Berlaku
Munculnya transaksi stablecoin di blockchain tidak selalu berarti pesanan bisnis harus langsung dianggap final. Payment gateway masih harus menangani konfirmasi blok, masa berlaku, notifikasi berulang, dan transfer yang dikirim setelah checkout berakhir.
Konfirmasi mengelola kepastian on-chain
Saat node pertama kali melihat transaksi, statusnya biasanya masih menunggu konfirmasi. Menunggu kedalaman blok yang sesuai mengurangi risiko fork sementara, perbedaan data antar-node, atau perubahan status. Jumlah konfirmasi harus mempertimbangkan jaringan, nilai pesanan, dan kecepatan layanan.
Masa berlaku mengelola konsistensi bisnis
Batas waktu menentukan jendela penawaran, reservasi, atau permintaan isi ulang, tetapi tidak dapat menghentikan transfer blockchain. Jika pelanggan membayar terlambat, sistem tetap harus mendeteksi transfer dan mengarahkannya ke alur pembayaran terlambat atau pengecualian.
Pisahkan setiap tahap pembayaran
- `pending`: pesanan dibuat tanpa transfer valid
- `confirming`: transfer terdeteksi dan menunggu konfirmasi
- `paid`: jumlah dan syarat konfirmasi terpenuhi
- `expired`: waktu berakhir sebelum pembayaran terdeteksi
- `exception`: jumlah, token, jaringan, atau waktu perlu ditinjau
Callback harus idempoten
Percobaan ulang dapat mengirim acara yang sama lebih dari sekali. Sistem merchant harus melakukan deduplikasi berdasarkan pesanan dan ID acara. Gateway juga perlu menyimpan hasil callback, jumlah percobaan, dan respons terakhir agar saldo tidak dikreditkan dua kali.
Pola implementasi yang lebih aman
Tetapkan token, jaringan, jumlah, dan masa berlaku saat membuat pesanan. Simpan hash segera setelah transfer terdeteksi dan tandai lunas hanya setelah konfirmasi terpenuhi. Pembayaran kurang, lebih, salah token, atau terlambat harus memiliki jalur tinjauan tersendiri.