Search by

waply / waply-php

arydianprtma

Official PHP & Laravel SDK for Waply WhatsApp Gateway & Messaging API Indonesia

v1.0.0 2026-10-18 08:51 UTC

This package is auto-updated.

Last update: 2026-10-18 09:04:36 UTC


README

Latest Stable Version PHP Version License: MIT Website

Official PHP & Laravel client library untuk Waply WhatsApp Gateway. Kirim pesan teks otomatis, notifikasi OTP, broadcast pesan massal anti-banned, dan integrasi WhatsApp REST API di aplikasi PHP atau Laravel dalam hitungan menit.

📌 Daftar Isi

🌟 Fitur Utama

  • Multi-Device Auto-Rotate: Beban pengiriman otomatis dirotasi merata ke semua nomor WhatsApp yang terhubung.
  • Proteksi Anti-Banned & Spintax: Dukungan sintaks Spintax {Halo|Hai|Selamat Pagi} untuk memastikan hash pesan selalu unik.
  • Pengiriman Lengkap: Teks, media gambar (JPG/PNG), dokumen (PDF/DOCX), video, audio, dan template shortcode.
  • Broadcast Massal Aman: Dilengkapi jeda acak (delay), batching otomatis, dan human typing delay.
  • Free Trial 500 Pesan: Coba langsung tanpa perlu kartu kredit di waply.web.id.

💻 Persyaratan Sistem

  • PHP >= 7.4, 8.0, 8.1, 8.2, atau 8.3
  • Ekstensi PHP curl dan json aktif
  • Akun dan API Key aktif dari Dashboard Waply

📦 Instalasi

Instal paket menggunakan Composer:

composer require waply/waply-php

⚙️ Konfigurasi di Laravel

1. Tambahkan ke file .env

Buka file .env proyek Laravel Anda, lalu tambahkan API Key Waply:

WAPLY_API_KEY=snd_live_YOUR_API_KEY_HERE
WAPLY_BASE_URL=https://waply.web.id
WAPLY_DEVICE_ID=auto_rotate

(Opsional) Publish file konfigurasi jika ingin kustomisasi:

php artisan vendor:publish --tag=waply-config

⚡ Contoh Penggunaan di Laravel

1. Kirim Pesan Teks (dengan Spintax)

use Waply\Facades\Waply;

// Kirim notifikasi dengan variasi kata pembuka otomatis
$response = Waply::sendText(
    '081234567890',
    '{Halo|Hai|Selamat Siang} Kak Budi, tagihan Anda sebesar Rp 150.000 telah terbit.'
);

if ($response['success']) {
    echo "Pesan berhasil dikirim dengan ID: " . $response['data']['messageId'];
}

2. Kirim Notifikasi Template

use Waply\Facades\Waply;

$response = Waply::sendTemplate('081234567890', 'tpl_order_notif', [
    'name'     => 'Budi Santoso',
    'order_id' => 'INV-2026-9812',
    'total'    => 'Rp 350.000',
]);

3. Kirim File PDF / Invoice

use Waply\Facades\Waply;

$response = Waply::sendMedia(
    '081234567890',
    'Berikut adalah invoice pesanan Anda:',
    'https://example.com/invoices/INV-9812.pdf',
    'document',
    'Invoice-INV-9812.pdf'
);

4. Kirim Broadcast Massal

use Waply\Facades\Waply;

$recipients = [
    ['phoneNumber' => '6281234567890', 'name' => 'Budi Santoso'],
    ['phoneNumber' => '6289876543210', 'name' => 'Siti Aminah'],
];

$response = Waply::createBroadcast(
    'Promo Spesial Akhir Pekan',
    '{Halo|Hai} {{name}}, dapatkan diskon 30% khusus hari ini!',
    $recipients,
    batchSize: 10,
    batchDelaySec: 45
);

🐘 Contoh Penggunaan di PHP Native

Jika Anda tidak menggunakan Laravel, Anda dapat menggunakan WaplyClient secara langsung:

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Waply\WaplyClient;

$waply = new WaplyClient('snd_live_YOUR_API_KEY');

// Kirim pesan WhatsApp
try {
    $result = $waply->sendText(
        '081234567890',
        'Halo! Ini pesan tes dari Waply PHP SDK.'
    );
    print_r($result);
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}

🔔 Menangani Inbound Webhook

Waply dapat mengirimkan HTTP POST secara real-time ke aplikasi Anda saat ada pesan masuk atau status pengiriman terupdate:

// Contoh controller endpoint webhook di Laravel (routes/api.php)
Route::post('/waply/webhook', function (\Illuminate\Http\Request $request) {
    $event = $request->input('event');
    $data  = $request->input('data');

    if ($event === 'message.received') {
        $sender = $data['from'];
        $text   = $data['text'];
        
        // Logika bot atau simpan pesan masuk ke database
        Log::info("Pesan masuk dari $sender: $text");
    }

    return response()->json(['status' => 'ok']);
});

🔗 Tautan Resmi

📄 Lisensi

Paket ini dirilis di bawah lisensi terbuka MIT License. Bebas digunakan untuk keperluan komersial maupun personal.