Kirim Pesan WhatsApp dari PHP
Contoh siap pakai untuk PHP murni dan Laravel.
PHP murni (cURL)
<?php
function synerwa_send(string $target, string $message, ?string $url = null): array {
$data = ['target' => $target, 'message' => $message];
if ($url) $data['url'] = $url;
$ch = curl_init('https://synerwa.net/send');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 20,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SYNERWA_TOKEN')],
CURLOPT_POSTFIELDS => $data,
]);
$body = curl_exec($ch);
if ($body === false) throw new RuntimeException(curl_error($ch));
return json_decode($body, true);
}
$r = synerwa_send('081234567890', 'Halo dari PHP!');
if (!$r['status']) error_log('Synerwa: ' . $r['reason']);
Laravel (HTTP Client)
use Illuminate\Support\Facades\Http;
$r = Http::withHeaders(['Authorization' => config('services.synerwa.token')])
->asForm()
->post('https://synerwa.net/send', [
'target' => $order->phone,
'message' => "Pesanan #{$order->number} sudah kami terima.",
])->json();
Kirim file dari server
$ch = curl_init('https://synerwa.net/send');
curl_setopt_array($ch, [
CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SYNERWA_TOKEN')],
CURLOPT_POSTFIELDS => [
'target' => '081234567890',
'message' => 'Invoice terlampir',
'file' => new CURLFile('/path/invoice.pdf', 'application/pdf', 'invoice.pdf'),
],
]);
Respons
Sukses: {"status":true,"id":["128"],"process":"pending"}. Gagal: {"status":false,"reason":"..."}. Lihat dokumentasi API untuk semua parameter.