PHP Client
Gunakan PHP Client resmi BaBlast untuk mengirim pesan Standard WA, mengirim template Official WABA, dan memverifikasi webhook dari aplikasi PHP.
Package ini kompatibel dengan PHP >=8.1.
Instalasi Composer
hljs bash
composer require bablast/client
Raw PHP / CodeIgniter
hljs php
use Bablast\Client;
$bablast = new Client([
'apiKey' => 'YOUR_BABLAST_API_KEY',
]);
$bablast->wa->sendText('6281234567890', 'Halo dari BaBlast!');
$bablast->wa->sendMedia(
'6281234567890',
'https://example.com/invoice.pdf',
'Faktur Anda'
);
$bablast->waba->sendTemplate(
'6281234567890',
'promo_agustus',
'id',
['Budi']
);
Laravel
Environment
Tambahkan konfigurasi berikut pada file .env:
hljs env
BABLAST_API_KEY=your_api_key_here
BABLAST_BASE_URL=https://api.bablast.id/v2/openapi
BABLAST_WEBHOOK_SECRET=your_secret_token
Publish Config
Jika Anda ingin mengubah konfigurasi package secara eksplisit:
hljs bash
php artisan vendor:publish --tag=bablast-config
Facade
hljs php
use Bablast\Laravel\Facades\Bablast;
Bablast::wa()->sendText('6281234567890', 'Halo dari Laravel!');
Bablast::waba()->sendTemplate(
'6281234567890',
'promo_agustus',
'id',
['Diskon 50%']
);
Laravel Notification Channel
Gunakan notification channel ketika pesan WhatsApp menjadi bagian dari event aplikasi seperti invoice paid, order shipped, atau OTP.
hljs php
use Illuminate\Notifications\Notification;
use Bablast\Laravel\Channels\BablastChannel;
use Bablast\Laravel\Messages\BablastMessage;
class InvoicePaidNotification extends Notification
{
public function via($notifiable)
{
return [BablastChannel::class];
}
public function toBablast($notifiable)
{
return (new BablastMessage())
->content('Pembayaran invoice sudah diterima.')
->to($notifiable->phone);
}
}
Webhook Verification
hljs php
$rawPayload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';
$secretToken = getenv('BABLAST_WEBHOOK_SECRET');
$isValid = $bablast->webhooks->verifySignature(
$rawPayload,
$signature,
$secretToken
);
if (!$isValid) {
http_response_code(401);
exit('Invalid signature');
}
$event = $bablast->webhooks->parseEvent($rawPayload);