Thread

Syahrul Fauzi #laravel

· 3 menit baca · 1784x dibaca

Tutorial Integrasi Payment Midtrans Pada Projek Laravel 11

Panduan praktis untuk menambahkan fitur payment gateway Midtrans ke dalam projek Laravel 11 dengan mudah dan cepat.

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:

  1. 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! 🚀

    1314
    1.8K

    0/1000

    Komentar

    Belum ada komentar. Jadilah yang pertama!

    Syahrul Fauzi

    This is about me, as for her.. she's already with someone else.

    Ikuti