Pesan interactive

Mengatur Endpoint

Untuk mulai menggunakan webhook, anda perlu mengatur url webhook pada perangkat anda yang sudah terhubung di Wa Vave, Url webhook ini akan menerima data dari sistem kami setiap kali peristiwa terjadi,

Url webhook ini harus menerima permintaan POST dengan payload JSON.

Menangani Permintaan

Salin kode dibawah dan simpan di server anda dengan nama file misalnya webhook.php

         
<?php
header('Content-Type: application/json; charset=utf-8');

$data = json_decode(file_get_contents('php://input'), true);

$apiKey = 'YOUR_API_KEY'; // API Key

if ($data) {
    $device = $data['device'] ?? '';
    $from = $data['from'] ?? '';
    $profilename = $data['profilename'] ?? '';
    $messageid = $data['messageid'] ?? '';
    $type = $data['type'] ?? ''; // text, textreply, imagereply, image, video, document, audio, sticker, location, interactive, reaction
    $messagebody = $data['messagebody'] ?? '';
    $isForwarded = $data['isForwarded'] ?? '';
    $dataMedia = $data['dataMedia'] ?? '';
    $group = $data['group'] ?? '';
    $button = $data['button'] ?? '';
    $CatalogDetails = $data['CatalogDetails'] ?? '';
    $dataforwarded = $data['dataforwarded'] ?? '';
    $locationName = $data['locationName'] ?? '';
    $Latitude = $data['Latitude'] ?? '';
    $Longitude = $data['Longitude'] ?? '';
    $reactionsid = $data['reactionsid'] ?? '';
    $deviceStatus = $data['deviceStatus'] ?? '';
    $code = $data['code'] ?? '';
    $reason = $data['reason'] ?? '';
    $status = $data['status'] ?? '';
    
    $dataMedia = json_encode($dataMedia, JSON_UNESCAPED_SLASHES);
    $messagebody = json_encode($messagebody, JSON_UNESCAPED_UNICODE);
  
    function KirimPesan($to, $pesan, $device, $type, $url, $delay, $apiKey) {
        $data = json_encode([
            'from' => $device,
            'to' => $to,
            'message' => $pesan,
            'Type' => $type,
            'url' => $url,
            'delay' => $delay
        ]);

        // Endpoint API
        $endpoint = 'https://api.wavave.com/v1/send';

        $ch = curl_init($endpoint);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'Content-Length: ' . strlen($data),
            'Authorization: Bearer ' . $apiKey
        ]);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $response = curl_exec($ch);
        curl_close($ch);

        return $response;
    }

    $from = 62812345678; // Sesuaikan dengan nomor pengirim Anda
    $pesan = "Halo $profilename, ini adalah balasan otomatis!";
    $delay = 5; // 5 detik
    $jenispesan = 'text'; // text atau media
    $target = $data['from'] ?? ''; // Nomor penerima

    $response = KirimPesan($target, $pesan, $from, $jenispesan, $url, $delay, $apiKey);
    echo $response;

} else {
    echo json_encode(['error' => 'No data received']);
}
    

Tangani pesan interactive (Button CTA)

Webhook anda akan menerima data secara real time dari sistem kami ketika ada pesan interactive berisi tombol CTA yang dapat diklik dari pengguna, berikut payload yang akan diterima oleh webhook anda.


{
    "device": "628123456789",
    "messageid": "BDA15313FD6E0E5C49",
    "type": "interactive",
    "messagebody": "Halo ini adalah pesan interaktif berisi tombol klik ke website.",
    "profilename": "62811111111",
    "from": "62811111111",
    "button": [
        {
            "type": "cta"
        },
        {
            "name": "cta_url",
            "displayText": "Kunjungi Web",
            "url": "https://www.wavave.com"
        }
    ],
    "isForwarded": false
}

Penjelasan Pesan Button CTA

Properti Nilai Deskripsi
device Number Perangkat anda yang terhubung dengan Wa Vave dalam format internasional : 628123456789
from Number Nomor whatsapp pengirim dalam format internasional : 628123456789
profilename String Nama pengirim
messageid String ID pesan unik yang dapat anda simpan di aplikasi
messagebody String Isi pesan dari pengirim
type String type pesan memiliki nilai yang berbeda dan dapat digunakan untuk mengidentifikasi setiap jenis pesan yang anda terima
button Array of Object Properti button merupakan sebuah array yang berisi objek-objek yang merepresentasikan detail pesan interactive yang anda terima dari pengguna
name String Menunjukkan tipe tombol, misalnya digunakan untuk tombol CTA yang mengarahkan ke tautan web, biasanya akan bernilai "cta_url"
displayText String Teks yang ditampilkan pada tombol
url String Tautan web yang akan dibuka ketika tombol ditekan
isForwarded Boolean Bernilai "true" jika pesan hasil "Diteruskan" oleh pengguna

Tangani pesan interactive (Button Quick Reply)

Webhook anda akan menerima data secara real time dari sistem kami ketika ada pesan interactive Quick Reply atau tombol balasan cepat dari pengguna, berikut payload yang akan diterima oleh webhook anda.


{
    "device": "628123456789",
    "messageid": "D0597753A5A5BE90C0",
    "type": "interactive",
    "messagebody": "Halo ini adalah pesan interaktif berisi tombol balasan cepat Quick Reply.",
    "profilename": "62811111111",
    "from": "62811111111",
    "button": [
        {
            "type": "quickreply"
        },
        {
            "buttonId": "1",
            "displayText": "Info Paket Basic"
        },
        {
            "buttonId": "2",
            "displayText": "Info Paket Pro"
        },
        {
            "buttonId": "3",
            "displayText": "Info Paket Unlimited"
        }
    ],
    "isForwarded": false
}

Penjelasan Pesan Button Quick Reply

Properti Nilai Deskripsi
device Number Perangkat anda yang terhubung dengan Wa Vave dalam format internasional : 628123456789
from Number Nomor whatsapp pengirim dalam format internasional : 628123456789
profilename String Nama pengirim
messageid String ID pesan unik yang dapat anda simpan di aplikasi
messagebody String Isi pesan dari pengirim
type String type pesan memiliki nilai yang berbeda dan dapat digunakan untuk mengidentifikasi setiap jenis pesan yang anda terima
button String roperti button merupakan sebuah array yang berisi objek-objek yang merepresentasikan detail pesan interactive yang anda terima dari pengguna
buttonId String ID unik tombol yang digunakan untuk mengidentifikasi tombol yang dipilih
displayText String Teks yang ditampilkan pada tombol, biasanya menjelaskan pilihan atau aksi yang dapat dipilih
isForwarded Boolean Bernilai "true" jika pesan hasil "Diteruskan" oleh pengguna

Tangani pesan interactive (List Picker)

Webhook anda akan menerima data secara real time dari sistem kami ketika ada pesan interactive List Picker atau tombol menu dari pengguna,
Jika tombol tersebut di klik akan muncul pilihan menu, berikut payload yang akan diterima oleh webhook anda.


{
    "device": "628123456789",
    "messageid": "D0597753A5A5BE90C0",
    "type": "interactive",
    "messagebody": "Halo ini adalah pesan interaktif berisi tombol list picker.",
    "profilename": "62811111111",
    "from": "62811111111",
    "button": [
        {
            "type": "listpicker",
            "buttonText": "Pilih Menu"
        },
        {
            "buttonId": "1",
            "displayText": "Paket Basic",
            "description": "Paket basic adalah paket termurah"
        },
        {
            "buttonId": "2",
            "displayText": "Paket Pro",
            "description": "Paket Pro adalah paket yang kami rekomendasikan"
        },
        {
            "buttonId": "3",
            "displayText": "Paket Superpro",
            "description": "Paket Superpro adalah paket lengkap"
        }
    ],
    "isForwarded": false
}

Penjelasan Pesan List Picker

Properti Nilai Deskripsi
device Number Perangkat anda yang terhubung dengan Wa Vave dalam format internasional : 628123456789
from Number Nomor whatsapp pengirim dalam format internasional : 628123456789
profilename String Nama pengirim
messageid String ID pesan unik yang dapat anda simpan di aplikasi
messagebody String Isi pesan dari pengirim
button Array of Object Properti button merupakan sebuah array yang berisi objek-objek yang merepresentasikan detail pesan interactive yang anda terima dari pengguna
type String Menunjukan bahwa pesan ini adalah sebuah tombol listpicker yang jika tombol ditekan akan menampilkan pilihan menu
buttonText String Tombol menu yang ditampilkan dalam pesan
buttonId String ID unik tombol yang digunakan untuk mengidentifikasi tombol yang dipilih
displayText String Teks yang ditampilkan pada tombol, biasanya menjelaskan pilihan atau aksi yang dapat dipilih
description String Keterangan detail pada setiap menu yang akan anda pilih
isForwarded Boolean Bernilai "true" jika pesan hasil "Diteruskan" oleh pengguna