Tutorial Integrasi Payment Midtrans Pada Projek Laravel 11

Midtrans adalah salah satu penyedia layanan payment gateway terpopuler di Indonesia yang mendukung berbagai metode pembayaran, seperti kartu kredit, transfer bank, e-wallet, dan lainnya. Pada tutorial ini, kita akan membahas bagaimana cara mengintegrasikan Midtrans ke dalam proyek Laravel 11 secara lengkap.
1. Persiapan Awal
Sebelum memulai integrasi, pastikan Anda memiliki akun Midtrans. Jika belum, silakan daftar di Midtrans.
Langkah-langkah awal:
- Buat akun Midtrans dan login ke dashboard.
- Buat proyek baru di dashboard Midtrans.
- Dapatkan API Key, baik untuk environment sandbox maupun production.
- Siapkan Laravel 11, jika belum, instal dengan perintah:
composer create-project laravel/laravel midtrans-laravel11
2. Instalasi Midtrans SDK di Laravel
Midtrans menyediakan SDK PHP untuk mempermudah integrasi. Instal paket ini melalui Composer:
composer require midtrans/midtrans-php
Setelah berhasil diinstal, buat konfigurasi Midtrans dalam file .env:
MIDTRANS_SERVER_KEY=your_server_key MIDTRANS_CLIENT_KEY=your_client_key MIDTRANS_IS_PRODUCTION=false
Tambahkan konfigurasi ini ke dalam config/services.php:
return [ 'midtrans' => [ 'server_key' => env('MIDTRANS_SERVER_KEY'), 'client_key' => env('MIDTRANS_CLIENT_KEY'), 'is_production' => env('MIDTRANS_IS_PRODUCTION', false), ], ];
3. Membuat Controller untuk Midtrans
Buat controller baru untuk menangani transaksi pembayaran:
php artisan make:controller MidtransController
Lalu tambahkan kode berikut ke dalam MidtransController.php:
namespace App\Http\Controllers; use Illuminate\Http\Request; use Midtrans\Snap; use Midtrans\Config; class MidtransController extends Controller { public function __construct() { Config::$serverKey = config('services.midtrans.server_key'); Config::$isProduction = config('services.midtrans.is_production'); Config::$isSanitized = true; Config::$is3ds = true; } public function createTransaction(Request $request) { $params = [ 'transaction_details' => [ 'order_id' => uniqid(), 'gross_amount' => 150000, ], 'customer_details' => [ 'first_name' => 'John', 'last_name' => 'Doe', 'email' => 'johndoe@example.com', 'phone' => '08123456789', ], ]; $snapToken = Snap::getSnapToken($params); return response()->json(['snap_token' => $snapToken]); } }
4. Membuat Route untuk Payment
Tambahkan route berikut di routes/web.php:
use App\Http\Controllers\MidtransController; Route::get('/payment', [MidtransController::class, 'createTransaction']);
5. Membuat Halaman Checkout
Buat file resources/views/payment.blade.php dan tambahkan kode berikut:
<!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Checkout</title> <script src="https://app.sandbox.midtrans.com/snap/snap.js" data-client-key="{{ config('services.midtrans.client_key') }}"></script> </head> <body> <button id="pay-button">Bayar Sekarang</button> <script> document.getElementById('pay-button').addEventListener('click', function () { fetch('/payment') .then(response => response.json()) .then(data => { snap.pay(data.snap_token); }); }); </script> </body> </html>
6. Menjalankan dan Menguji Payment Gateway
Jalankan server Laravel:
php artisan serve
Kemudian buka browser dan akses http://127.0.0.1:8000/payment. Coba lakukan pembayaran menggunakan akun sandbox Midtrans.
7. Kesimpulan
Integrasi Midtrans pada Laravel 11 cukup mudah dengan bantuan SDK resmi. Dengan langkah-langkah di atas, Anda bisa menambahkan fitur pembayaran ke dalam aplikasi Laravel secara cepat dan aman.
Semoga tutorial ini bermanfaat! 🚀
Learn More

Belajar Mengenal Penggunaan Webhook Pada Projek Laravel 11
Webhook adalah mekanisme yang memungkinkan aplikasi untuk secara otomatis mengirimkan data ke sistem lain saat suatu peristiwa terjadi. Dalam pengemba...

Belajar Mengenal Class Request Pada Framework Laravel 11
Dalam framework Laravel, Illuminate\Http\Request adalah kelas yang digunakan untuk menangani HTTP request yang masuk ke aplikasi. Class ini memungkink...

Belajar Mengenal Middleware Pada Framework Laravel 11
Middleware adalah salah satu komponen penting dalam Laravel yang berfungsi sebagai filter untuk HTTP request yang masuk ke dalam aplikasi. Dengan midd...
Content Editor
S Fauzi
Writes for SpeechlessMind with a focus on UI/UX and web technologies. Enjoys exploring design trends and sharing insights about web development.