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);