Cara Membuat Integrasi Pembayaran untuk Pemula (Biar Gak Pusing)
Pernah mikir gimana caranya aplikasi atau website bisa menerima pembayaran dari pengguna? Nah, itu yang namanya integrasi pembayaran. Mungkin kedengerannya rumit, apalagi kalau kamu bukan background programmer. Tapi tenang, sebenarnya konsepnya sederhana kok. Yuk, kita bahas step by step dengan bahasa yang santai.
Kenalan Dulu Sama Gateway Pembayaran
Sebelum kita ngoding, kamu perlu tahu bahwa untuk menerima uang dari pelanggan, kamu nggak bisa langsung nyambungin aplikasi ke rekening bank. Diperlukan perantara yang namanya payment gateway. Ini kayak petugas kasir digital yang ngurusin verifikasi, keamanan, dan transfer dana.
Beberapa gateway yang populer di Indonesia:
– Midtrans (dulu Veritrans) – paling banyak dipake startup.
– Xendit – terkenal cepat cocok untuk bisnis growing.
– iPaymu – buat UMKM.
– Stripe – luar negeri, tapi oke buat project global.
Kebanyakan gateway ini punya dokumentasi jelas, SDK, dan mode testing. Jadi kita bisa nyoba-nyoba dulu tanpa takut kehilangan uang beneran.
Persiapan Awal: API Key & Mode Sandbox
Langkah pertama setelah daftar akun gateway adalah dapat API Key (biasanya ada server key dan client key). Simpan baik-baik, jangan sampai bocor ke publik, ya.
Setiap gateway juga punya mode sandbox. Ini lingkungan uji coba. Di sini kita bisa transaksi pake kartu kredit palsu (biasanya dikasih nomor uji). Jadi aman buat testing.
Alur Integrasi Pembayaran yang Umum
Biar nggak bingung, ini alur standar yang terjadi:
1. User klik “Bayar” di aplikasi kamu.
2. Aplikasi kamu ngirim data pesanan (total harga, item, dll) ke server gateway.
3. Gateway mengembalikan URL pembayaran atau token.
4. User diarahkan ke halaman checkout gateway (atau modal/in-app).
5. User bayar pilih metode: transfer, kartu kredit, QRIS, dll.
6. Gateway kirim notifikasi (webhook) ke server kamu setelah pembayaran sukses.
7. Server kamu update status pesanan jadi “lunas”.
Langkah Praktis: Integrasi Pake Midtrans
Ambil contoh gateway Midtrans yang populer di kalangan developer Indonesia. Kita pake Snap Midtrans (metode pop-up) yang gampang diintegrasi.
Step 1: Install library
Kalau kamu pake Node.js, tinggal jalankan:
“`
npm install midtrans-client
“`
Untuk PHP ada composer, Python ada pip, dan seterusnya.
Step 2: Buat endpoint untuk generate token
Di backend kamu, buat route yang nerima data pesanan, lalu panggil Midtrans API untuk dapetin token. Contoh kode sederhana (Node.js):
“`javascript
const midtransClient = require(‘midtrans-client’);
// Buat instance Snap
let snap = new midtransClient.Snap({
isProduction: false, // ganti true kalau live
serverKey: ‘SB-Mid-server-xxxxxxxxx’,
clientKey: ‘SB-Mid-client-xxxxxxxxx’
});
let parameter = {
transaction_details: {
order_id: ‘ORDER-12345’,
gross_amount: 100000
},
credit_card: {
secure: true
}
};
snap.createTransaction(parameter).then((transaction) => {
// transaction.token -> ini yang kita kirim ke frontend
// transaction.redirect_url -> halaman pembayaran
res.json({ token: transaction.token });
});
“`
Step 3: Tampilkan Snap di frontend
Di halaman HTML/React/Vue kamu, embed script Midtrans dan panggil fungsi `snap.pay(token)`. Contoh HTML:
“`html
function pay() {
snap.pay(‘TOKEN_DARI_BACKEND’);
}
“`
Saat tombol diklik, muncul pop-up pembayaran. User bisa pilih metode, bayar, dan setelah sukses pop-up otomatis nutup.
Webhook: Biar Server Kamu Tahu Pembayaran Berhasil
Ini penting banget. Gateway akan kirim notifikasi ke server kamu lewat Webhook. Kamu harus punya endpoint publik (bisa pake ngrok saat development) yang nerima POST data dari gateway. Contoh sederhana di Express:
“`javascript
app.post(‘/payment-notification’, (req, res) => {
const notification = req.body;
const orderId = notification.order_id;
const status = notification.transaction_status;
if (status === ‘settlement’ || status === ‘capture’) {
// Update database: status order jadi paid
console.log(`Pesanan ${orderId} berhasil dibayar`);
}
res.send(‘OK’);
});
“`
Jangan lupa daftarin URL endpoint ini di dashboard gateway pada menu “Payment Notification”.
Tips Keamanan Sederhana
– Jangan simpan API key di frontend – harus di server.
– Validasi signature dari webhook agar tidak ada pihak palsu.
– Gunakan HTTPS di semua endpoint.
– Simpan log transaksi untuk audit.
Testing Itu Penting
Sebelum go-live, cobain semua skenario: bayar pakai kartu kredit, transfer, bayar gopay, coba gagal bayar, expired, refund. Gateway biasanya sediakan kartu uji dengan nomor spesifik yang bisa bikin transaksi berhasil atau gagal.
Kesimpulan
Integrasi pembayaran sebenarnya hanya butuh tiga langkah besar: generate token, tampilkan pop-up pembayaran, dan tangani notifikasi webhook. Pilih gateway yang dokumentasinya rapi (Midtrans, Xendit, Stripe), ikuti tutorial resmi, dan jangan malas testing.
Setelah berhasil, kamu tinggal terima uang dari pelanggan. Lumayan kan, coding dikit bisa bikin aplikasi jualan online. Selamat mencoba! 💸