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.