
Bayangin Pembeli Bayar QRIS di Aplikasi Bank, Bukan di Website Kita...
Bayangin ada pembeli yang checkout template premium di TampilKit, lalu memilih metode QRIS. Ia membuka aplikasi mobile banking-nya sendiri, memindai kode QR, dan menekan "Bayar". Proses pembayaran ini terjadi seluruhnya di aplikasi bank miliknya, sama sekali tidak menyentuh website TampilKit.
Anehnya, tepat beberapa detik setelah ia membayar — tanpa ia perlu kembali membuka tab website atau menekan tombol apapun — status pesanannya di database TampilKit sudah berubah otomatis dari PENDING menjadi PAID, dan email struk pun langsung terkirim. Bagaimana caranya server TampilKit bisa "tahu" pembayaran sudah berhasil, padahal tidak ada satu klik pun yang terjadi di website-nya?
Masalahnya: Server Kita Tidak Bisa 'Menunggu' Selamanya
Server backend tidak mungkin terus-menerus bertanya ke Duitku setiap detik "udah dibayar belum? udah dibayar belum?" (teknik ini disebut polling) — selain boros sumber daya, cara ini juga lambat dan tidak efisien untuk ribuan transaksi sekaligus.
Nah, Di Sinilah 'Webhook' Masuk!
Webhook membalik arah komunikasinya: alih-alih server kita yang terus bertanya, Duitku sendiri yang akan "menelepon balik" server kita lewat sebuah URL khusus begitu status pembayaran berubah.
- Saat membuat transaksi, server TampilKit mendaftarkan sebuah URL rahasia ke Duitku, misalnya
https://api.tampilkit.com/api/payment/duitku/callback. - Begitu bank pembeli mengonfirmasi dana sudah masuk, sistem Duitku otomatis mengirim sebuah request HTTP POST ke URL tersebut, berisi detail transaksi dan sebuah tanda tangan digital (signature) hasil enkripsi HMAC memakai API Key rahasia.
- Server TampilKit yang menerima request ini wajib menghitung ulang tanda tangan tersebut dengan rumus dan kunci yang sama, lalu membandingkannya. Jika cocok, artinya notifikasi ini benar-benar asli dari Duitku (bukan orang iseng yang menembak URL callback secara acak untuk mengelabui sistem menjadi "lunas palsu").
- Setelah tanda tangan terverifikasi sah, barulah server mengubah status pesanan menjadi
PAIDdi dalam database.
Intinya: Webhook adalah cara sistem-sistem modern saling "mengabari" secara real-time tanpa perlu terus bertanya. Tapi karena URL webhook bisa ditembak siapa saja di internet, verifikasi tanda tangan digital adalah langkah yang wajib hukumnya, atau siapa pun bisa berpura-pura mengaku sudah membayar.
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates