BisnisKlinik.id
  • Katalog
  • Blog
  • Tentang
BisnisKlinik.id

Klinik untung, jalan sendiri.

Hubungi Kami

Belajar

  • Katalog Produk
  • Ebook
  • Course

Platform

  • Blog
  • Tentang
  • Kontak

Legal

  • Syarat & Ketentuan
  • Kebijakan Privasi

© BisnisKlinik.id — Platform edukasi bisnis klinik Indonesia

← Kembali ke Blog

Integrasi Midtrans dengan Next.js

TI
Tim BisnisKlinik.id · 10 Maret 2026 · 1 menit baca
midtrans
payment
nextjs
tutorial

Mengapa Midtrans?

Midtrans adalah payment gateway yang paling banyak digunakan di Indonesia. Mendukung transfer bank, e-wallet (GoPay, OVO, Dana), kartu kredit, dan QRIS dalam satu integrasi.

Alur Kerja Snap

User klik bayar
     ↓
POST /api/payments  →  Buat Snap token  →  Simpan pending payment
     ↓
Snap popup terbuka di browser
     ↓
User bayar
     ↓
Midtrans kirim notifikasi ke webhook
     ↓
POST /api/webhooks/midtrans  →  Verifikasi  →  Update status

Membuat Snap Token

Di app/api/payments/route.ts, endpoint POST menerima userId, plan, dan amount, lalu memanggil Midtrans:

const snapToken = await createSnapTransaction({
  orderId: `order-${Date.now()}`,
  amount: 199000,
  customerName: profile.name,
  customerEmail: user.email,
});

Memproses Webhook

Midtrans mengirim notifikasi ke endpoint yang kamu daftarkan. Verifikasi signature sebelum update status:

const isValid = verifyMidtransSignature(
  notification.order_id,
  notification.status_code,
  notification.gross_amount,
  notification.signature_key
);

Mode Sandbox vs Produksi

Platform menggunakan sandbox otomatis saat NODE_ENV !== "production". Tidak perlu ganti kode — cukup set environment variable yang sesuai.

# Sandbox
MIDTRANS_SERVER_KEY=SB-Mid-server-xxxx
NEXT_PUBLIC_MIDTRANS_CLIENT_KEY=SB-Mid-client-xxxx

# Production
MIDTRANS_SERVER_KEY=Mid-server-xxxx
NEXT_PUBLIC_MIDTRANS_CLIENT_KEY=Mid-client-xxxx
MasukDaftar