PHP dapat digunakan untuk mengirim pesan WhatsApp secara otomatis dengan menghubungkan aplikasi ke REST API. Dengan pendekatan ini, aplikasi berbasis PHP dapat mengirim notifikasi, konfirmasi transaksi, pengingat pembayaran, dan pesan lainnya berdasarkan proses yang terjadi di dalam sistem.
Artikel ini membahas cara mengirim pesan WhatsApp dari PHP menggunakan API Whapi, mulai dari menyiapkan API key, membuat request POST, mengirim pesan, hingga menangani respons dan error.

Yang Dibutuhkan
Sebelum membuat integrasi, siapkan:
- PHP yang sudah terpasang
- Aplikasi atau project PHP
- Device Whapi dengan status
CONNECTED - API key Whapi
- Nomor WhatsApp tujuan
PHP dapat mengirim HTTP request ke API menggunakan beberapa pendekatan, salah satunya cURL yang tersedia pada banyak lingkungan PHP.
1. Siapkan API Key dan Device WhatsApp
Pengiriman pesan membutuhkan API key dan device WhatsApp yang sudah terhubung.
Pastikan device memiliki status:
CONNECTED
API key digunakan untuk mengautentikasi request yang dikirim dari aplikasi PHP.
Endpoint untuk mengirim pesan adalah:
POST /api/sendMessage
Dokumentasi parameter dan respons endpoint tersedia di dokumentasi Send Message Whapi.
2. Membuat Request POST dengan PHP cURL
PHP menyediakan cURL untuk melakukan HTTP request ke server eksternal.
Contoh sederhana pengiriman pesan:
<?php
$endpoint = 'https://alamat-server-whapi/api/sendMessage';
$apiKey = 'your_api_key';
$data = [
'apiKey' => $apiKey,
'phone' => '6281234567890',
'message' => 'Pesan otomatis dari aplikasi PHP.',
];
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
`
Pada contoh tersebut terdapat tiga parameter utama:
apiKeydigunakan untuk autentikasi request.phoneberisi nomor WhatsApp tujuan.messageberisi isi pesan yang akan dikirim.
Nomor tujuan menggunakan format internasional tanpa tanda +.
Contohnya:
6281234567890
3. Memisahkan API Key dari Source Code
API key sebaiknya tidak ditulis langsung di dalam source code aplikasi.
Untuk aplikasi PHP yang lebih terstruktur, simpan konfigurasi secara terpisah dari file program.
Contohnya:
$apiKey = getenv('WHAPI_API_KEY');
$endpoint = getenv('WHAPI_ENDPOINT');
Kemudian konfigurasi environment dapat berisi:
WHAPI_ENDPOINT=https://alamat-server-whapi
WHAPI_API_KEY=your_api_key
Cara ini membantu mengurangi risiko API key ikut tersimpan ketika source code dipindahkan atau dikelola menggunakan version control.
4. Membuat Fungsi Pengiriman Pesan
Jika aplikasi membutuhkan pengiriman WhatsApp dari beberapa bagian sistem, buat fungsi khusus agar kode request tidak ditulis berulang kali.
Contohnya:
<?php
function sendWhatsAppMessage(string $phone, string $message): array
{
$endpoint = getenv('WHAPI_ENDPOINT') . '/api/sendMessage';
$apiKey = getenv('WHAPI_API_KEY');
$data = [
'apiKey' => $apiKey,
'phone' => $phone,
'message' => $message,
];
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return [
'status' => $httpCode,
'response' => $response,
];
}
Fungsi tersebut dapat digunakan kembali ketika aplikasi perlu mengirim pesan.
Contoh:
$result = sendWhatsAppMessage(
'6281234567890',
'Pesanan #INV-001 telah berhasil diproses.'
);
print_r($result);
Dengan pendekatan ini, logika pengiriman terpusat pada satu fungsi sehingga lebih mudah dipelihara.
5. Mengecek Respons API
Request yang berhasil maupun gagal sebaiknya diproses secara berbeda.
Contohnya:
$result = sendWhatsAppMessage(
'6281234567890',
'Pembayaran untuk pesanan #INV-001 telah diterima.'
);
if ($result['status'] >= 200 && $result['status'] < 300) {
echo 'Pesan berhasil diproses.';
} else {
echo 'Pengiriman gagal.';
}
Respons API juga dapat disimpan sebagai data JSON untuk diproses lebih lanjut.
Jika membutuhkan informasi dari respons:
$responseData = json_decode(
$result['response'],
true
);
print_r($responseData);
Dengan demikian, aplikasi dapat menggunakan data respons API untuk logging atau proses berikutnya.
6. Mengirim Pesan Berdasarkan Proses Aplikasi
Pengiriman WhatsApp biasanya dilakukan setelah suatu proses tertentu berhasil.
Misalnya pada aplikasi toko online:
$orderNumber = 'INV-001';
$phone = '6281234567890';
$message = "Pesanan #{$orderNumber} telah berhasil diproses.";
$result = sendWhatsAppMessage(
$phone,
$message
);
Pola yang sama dapat digunakan untuk:
- Konfirmasi pesanan
- Notifikasi pembayaran
- Pengingat pembayaran
- Perubahan status pesanan
- Informasi pengiriman
- Notifikasi aktivitas akun
Dengan cara ini, pengiriman WhatsApp menjadi bagian dari alur aplikasi PHP.
7. Menangani Error cURL
Selain memeriksa HTTP status code, aplikasi juga perlu menangani kemungkinan error dari cURL.
Contohnya:
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
if ($response === false) {
$error = curl_error($ch);
curl_close($ch);
throw new Exception(
'Request gagal: ' . $error
);
}
$httpCode = curl_getinfo(
$ch,
CURLINFO_HTTP_CODE
);
curl_close($ch);
Penanganan seperti ini membantu membedakan antara error pada koneksi HTTP dengan error yang dikembalikan oleh API.
8. Beberapa Penyebab Pengiriman Gagal
Ketika pesan tidak berhasil dikirim, periksa beberapa hal berikut:
- API key tidak valid
- Device belum berstatus
CONNECTED - Nomor WhatsApp tujuan tidak sesuai
- Parameter request tidak lengkap
- Endpoint API tidak sesuai
- Terjadi error pada koneksi HTTP
Jika request sudah dibuat dengan benar tetapi masih gagal, periksa HTTP status dan response body dari API untuk mengetahui detail masalah.
9. Mengirim Pesan dari Framework PHP
Jika menggunakan framework seperti Laravel, proses HTTP request dapat menggunakan HTTP Client bawaan Laravel.
Contohnya:
use Illuminate\Support\Facades\Http;
$response = Http::asForm()->post(
env('WHAPI_ENDPOINT') . '/api/sendMessage',
[
'apiKey' => env('WHAPI_API_KEY'),
'phone' => '6281234567890',
'message' => 'Pesan otomatis dari Laravel.',
]
);
Namun, untuk aplikasi PHP tanpa framework, cURL dapat digunakan secara langsung seperti contoh sebelumnya.
Pemilihan metode bergantung pada struktur aplikasi yang digunakan.
Alur Integrasi PHP dengan WhatsApp API
Secara sederhana, alurnya adalah:
Aplikasi PHP
↓
Event / Controller / Function
↓
HTTP POST Request
↓
Whapi API
↓
Device WhatsApp
↓
Nomor Tujuan
Contohnya pada sistem pembayaran:
Pembayaran berhasil
↓
Aplikasi PHP menerima status pembayaran
↓
Fungsi pengiriman dijalankan
↓
PHP mengirim POST request
↓
Whapi memproses request
↓
Pesan WhatsApp dikirim
Pola tersebut dapat diterapkan pada berbagai aplikasi PHP yang membutuhkan notifikasi WhatsApp otomatis.
Kesimpulan
Mengirim pesan WhatsApp dari PHP dapat dilakukan dengan membuat HTTP POST request ke endpoint Whapi. Implementasi dasarnya terdiri dari menyiapkan API key, memastikan device terhubung, mengirim parameter nomor dan pesan, lalu memproses respons API.
Untuk aplikasi PHP tanpa framework, cURL dapat digunakan untuk melakukan request. Jika menggunakan framework seperti Laravel, HTTP Client bawaan Laravel dapat digunakan agar implementasi lebih terintegrasi dengan struktur aplikasi.
Untuk melihat parameter request dan format respons yang tersedia, gunakan dokumentasi Send Message Whapi.


