fadhila36/laravel-multipayment
最新稳定版本:v1.0.2
Composer 安装命令:
composer require fadhila36/laravel-multipayment
包简介
Multi-payment gateway integration for Laravel (Midtrans, Xendit, Duitku, AyoConnect, Doku) with Fonnte WhatsApp integration.
README 文档
README
Dokumentasi Bahasa Indonesia | English Documentation 🇺🇸
Dokumentasi Bahasa Indonesia 🇮🇩
Package Laravel yang lengkap dan siap produksi untuk integrasi multi-payment gateway (Midtrans, Xendit, Duitku, AyoConnect, Doku) serta notifikasi Fonnte (WhatsApp).
Kompatibilitas: Mendukung penuh Laravel 10, 11, dan 12.x. Optimasi AI: Struktur kode bersih dan modular, sangat mudah dipahami oleh AI Agent seperti Antigravity. Pemula? Baca Panduan Langkah-demi-Langkah (Tutorial) untuk integrasi dalam 5 menit.
Fitur Utama
- Multi-Gateway: Satu API standar untuk berbagai gateway populer di Indonesia.
- Kepatuhan Ketat: Signature, Header, dan Parameter 100% mengikuti dokumentasi resmi.
- Notifikasi Otomatis:
- WhatsApp: Menggunakan API Fonnte (via Queue).
- Email: Menggunakan Laravel Mailable (via Queue).
- Event Driven: Sistem Event
PaymentPaidyang fleksibel.
Instalasi
- Install via composer:
composer require fadhila36/laravel-multipayment
- Publish konfigurasi:
php artisan vendor:publish --tag=multipayment-config
Konfigurasi & Environment
Atur file .env Anda.
# Channel Notifikasi (Set false jika ingin mematikan) MULTIPAYMENT_NOTIFY_WHATSAPP=true MULTIPAYMENT_NOTIFY_EMAIL=true # Midtrans MIDTRANS_SERVER_KEY=kunci-server-anda MIDTRANS_IS_PRODUCTION=false # Xendit XENDIT_API_KEY=api-key-anda XENDIT_CALLBACK_TOKEN=token-verifikasi-callback # Fonnte (Untuk WA) FONNTE_TOKEN=token-fonnte-anda
Panduan Development vs Production
| Fitur | Development (Lokal) | Production (Live) |
|---|---|---|
| Mode Gateway | Set IS_PRODUCTION=false di .env untuk menggunakan Sandbox/Testing environment. |
Set IS_PRODUCTION=true. Pastikan menggunakan Production Key dari dashboard gateway. |
| Queue (Antrian) | Gunakan QUEUE_CONNECTION=sync agar notifikasi langsung terkirim saat dev. |
Gunakan redis atau database. Wajib jalankan worker (lihat bawah). |
| Worker | Tidak wajib. | Wajib jalankan php artisan queue:work agar email & WA terkirim di background. |
| Keamanan | - | Pastikan XENDIT_CALLBACK_TOKEN dan Signature Key dirahasiakan. |
Cara Penggunaan
1. Membuat Pembayaran
Gunakan Facade di Controller Anda. Syntax sama untuk semua gateway.
use Fadhila36\Multipayment\Facades\Multipayment; public function bayar() { // Driver bisa diganti: 'midtrans', 'xendit', 'duitku', 'doku', 'ayoconnect' $payment = Multipayment::driver('midtrans')->createPayment([ 'order_id' => 'INV-' . time(), 'amount' => 100000, 'customer' => [ 'name' => 'Budi Santoso', 'email' => 'budi@example.com', 'phone' => '08123456789', // Wajib untuk notifikasi WA ], ]); // Redirect user ke halaman pembayaran return redirect($payment['payment_url']); }
2. Menangani Webhook (Update Database)
Package ini sudah menangani validasi keamanan signature secara otomatis. Anda cukup membuat Listener untuk mengupdate database aplikasi Anda.
Langkah 1: Buat Listener
php artisan make:listener UpdateStatusPesanan
Langkah 2: Isi Logic Update
use Fadhila36\Multipayment\Events\PaymentPaid; public function handle(PaymentPaid $event) { // $event->status berisi data standar: orderId, amount, paymentType $idOrder = $event->status->orderId; // Cari di database dan update $pesanan = Pesanan::find($idOrder); $pesanan->update(['status' => 'lunas']); }
Langkah 3: Daftarkan Event
Buka app/Providers/EventServiceProvider.php:
protected $listen = [ \Fadhila36\Multipayment\Events\PaymentPaid::class => [ \App\Listeners\UpdateStatusPesanan::class, ], ];
Pengujian (Testing)
Jalankan perintah ini untuk memastikan semua integrasi berjalan lancar:
vendor/bin/phpunit
Referensi Resmi
License: MIT
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 5
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-23