Service class
Satukan endpoint, kredensial, timeout, dan parsing response pada satu komponen.
Bungkus integrasi Kirimore dalam service class Laravel dan kirim notifikasi melalui queue agar request pengguna tidak menunggu proses WhatsApp.
Laravel menyediakan HTTP Client, service container, queue, events, dan notifications yang cocok untuk membangun integrasi WhatsApp yang rapi. Simpan API key dan sender di `.env`, lalu gunakan service class agar endpoint tidak tersebar di controller.
Untuk event seperti pembayaran sukses atau order diproses, dispatch Job setelah transaksi database selesai. Queue dapat menangani retry tanpa membuat pengguna menunggu request WhatsApp.
Satukan endpoint, kredensial, timeout, dan parsing response pada satu komponen.
Pengiriman berjalan di background dan tidak memperlambat halaman pengguna.
Trigger pesan dari event domain seperti OrderPaid atau TicketCreated.
Atur backoff dan jumlah percobaan sesuai jenis error.
API key dan sender disimpan di `.env`/config, bukan controller.
Service dapat dimock pada automated test tanpa benar-benar mengirim WhatsApp.
Tambahkan API key dan sender pada `.env`.
Gunakan Laravel HTTP Client untuk POST JSON.
Panggil service dari Job/Listener setelah event bisnis berhasil.
Pantau failed jobs dan log response untuk retry atau investigasi.
// config/services.php
'kirimore' => [
'url' => env('KIRIMORE_URL', 'https://kirimore.com'),
'key' => env('KIRIMORE_API_KEY'),
'sender' => env('KIRIMORE_SENDER'),
];
// contoh service
$response = Http::timeout(30)->post(
config('services.kirimore.url').'/apiv2/send-message.php',
[
'api_key' => config('services.kirimore.key'),
'sender' => config('services.kirimore.sender'),
'number' => $phone,
'message' => $message,
]
);
$response->throw();Tidak wajib, tetapi queue direkomendasikan untuk notifikasi agar request utama tidak menunggu proses eksternal.
Bisa. Anda dapat membuat custom channel atau membungkus service Kirimore dari notification class.
Gunakan `.env` lalu mapping melalui file config; jangan hardcode API key di source repository.
Gunakan timeout, logging aman, retry terbatas, failed jobs, dan idempotensi pada event yang berpotensi diulang.
Gunakan panduan dan landing page berikut untuk mendalami implementasi yang terkait.
Buat akun, hubungkan device, lalu uji satu alur terlebih dahulu sebelum memperluas ke automation atau integrasi lainnya.