cara menggunakan xendit di laravel

Cara Menggunakan Xendit di Laravel

Dalam artikel ini, kita akan membahas cara menggunakan Xendit di Laravel, salah satu framework PHP paling populer, untuk mengelola pembayaran dan penagihan secara efisien.

Xendit sendiri merupakan salah satu perusahaan fintech terkemuka yang menyediakan layanan pembayaran dan penagihan online yang dapat diintegrasikan dengan mudah ke dalam aplikasi web dan mobile.

Persiapan Proyek Laravel

Langkah pertama dalam menggunakan Xendit di Laravel adalah memastikan bahwa Anda memiliki proyek Laravel yang sudah ada atau membuat proyek baru. Anda dapat membuat proyek Laravel baru dengan perintah berikut:

composer create-project --prefer-dist laravel/laravel laravel-xendit

Pastikan juga Anda telah mengatur database proyek Anda melalui file .env dan menginstal Composer agar proyek Anda siap untuk pengembangan.

Install Package Xendit

Setelah proyek Laravel Anda siap, langkah selanjutnya adalah menginstal package Xendit. Anda dapat melakukannya dengan menggunakan Composer:

composer require xendit/xendit-php

Setelah Anda berhasil menginstal package Xendit, pastikan Anda memasukkan API key Xendit Anda dalam file .env. Anda dapat menemukan API key Anda di dashboard Xendit.

Tambahkan credensial Xendit dalam file .env Anda seperti ini:

XENDIT_SECRET_KEY=your-secret-key
XENDIT_PUBLIC_KEY=your-public-key

Membuat Pembayaran

Untuk membuat pembayaran dengan Xendit, Anda dapat membuat route di dalam file routes/web.php yang akan mengarah ke kontroler yang akan mengelola pembayaran. Sebagai contoh, kita akan membuat route untuk menampilkan halaman pembayaran:

Route::get('/checkout', 'PaymentController@checkout');

Selanjutnya, buat controler PaymentController dengan perintah:

php artisan make:controller PaymentController

Kemudian, Anda dapat mengimplementasikan metode checkout dalam PaymentController:

use Xendit\Xendit;

class PaymentController extends Controller
{
    public function checkout()
    {
        // Inisialisasi Xendit dengan API key
        Xendit::setApiKey(config('xendit.secret_key'));

        // Buat pembayaran dengan Xendit
        $invoice = \Xendit\Invoice::create([
            'external_id' => 'invoice-123',
            'amount' => 10000,
            'payer_email' => '[email protected]',
        ]);

        return view('checkout', ['invoice' => $invoice]);
    }
}

Menampilkan Halaman Pembayaran

Selanjutnya, buat halaman pembayaran yang akan menampilkan detail pembayaran dan tombol untuk melakukan pembayaran. Anda dapat membuat file checkout.blade.php di dalam folder resources/views dan menambahkan kode HTML yang sesuai.

Contoh code HTML untuk checkout.blade.php:

<!DOCTYPE html>
<html>
<head>
    <title>Checkout Page</title>
</head>
<body>
    <h1>Detail Pembayaran</h1>
    <p>Invoice ID: {{ $invoice->id }}</p>
    <p>Total Pembayaran: {{ $invoice->amount }}</p>
    <a href="{{ $invoice->invoice_url }}" class="btn btn-primary">Bayar Sekarang</a>
</body>
</html>

Menerima Notifikasi Pembayaran

Setelah pembayaran berhasil diselesaikan, Xendit akan mengirimkan notifikasi ke endpoint yang telah Anda tentukan sebelumnya. Anda dapat membuat route untuk menangani notifikasi pembayaran di dalam file routes/web.php:

Route::post('/webhook/xendit', 'PaymentController@webhook');

Selanjutnya, dalam PaymentController, implementasikan metode webhook untuk menangani notifikasi pembayaran:

public function webhook(Request $request)
{
    // Verifikasi tanda tangan notifikasi
    $signature = $request->header('x-xendit-signature');
    $isValid = Xendit::validSignature($request->getContent(), $signature);

    if ($isValid) {
        // Proses notifikasi pembayaran di sini
        // Misalnya, tandai pembayaran sebagai selesai
        // atau mengirim email konfirmasi kepada pelanggan
    } else {
        // Tanda tangan tidak valid, abaikan notifikasi
    }
}

Kesimpulan

Dengan mengikuti langkah-langkah di atas, Anda dapat dengan mudah mengintegrasikan Xendit di Laravel untuk mengelola pembayaran dan penagihan dalam aplikasi web Anda. Xendit menyediakan berbagai fitur dan dukungan yang dapat membantu Anda menyederhanakan proses pembayaran dan meningkatkan pengalaman pelanggan Anda.

Jangan lupa untuk selalu menjaga keamanan dan keandalan sistem pembayaran Anda. Pastikan Anda mengikuti panduan keamanan Xendit.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top