'Method Not Allowed']); exit; } // Baca dan parse body request $raw = file_get_contents('php://input'); $data = json_decode($raw, true); if (!is_array($data)) { http_response_code(400); echo json_encode(['error' => 'Invalid JSON']); exit; } $deviceId = $data['device_id'] ?? ''; $from = $data['from'] ?? ''; $pushName = $data['push_name'] ?? 'Kak'; $message = trim(strtolower($data['message'] ?? '')); if ($message === '') { // Tidak ada teks β†’ tidak perlu dibalas echo json_encode([]); exit; } $reply = getAutoReply($pushName, $message); if ($reply === null) { // Tidak ada kata kunci yang cocok β†’ WAGW tidak mengirim balasan echo json_encode([]); exit; } echo json_encode(['reply' => $reply]); // --------------------------------------------------------------------------- /** * Tentukan balasan berdasarkan kata kunci dalam pesan. * Kembalikan null jika tidak ada kata kunci yang cocok. */ function getAutoReply(string $name, string $message): ?string { if (containsAny($message, ['halo', 'hai', 'hi', 'helo', 'hello'])) { return "Halo $name! πŸ‘‹ Ada yang bisa kami bantu?"; } if (containsAny($message, ['jam buka', 'buka jam', 'jam operasional', 'jam kerja'])) { return "Kami buka Senin–Sabtu pukul 08.00–17.00 WIB. πŸ•"; } if (containsAny($message, ['harga', 'price', 'tarif', 'biaya', 'cost'])) { return "Untuk informasi harga, silakan kunjungi website kami atau hubungi CS di jam kerja. 😊"; } if (containsAny($message, ['lokasi', 'alamat', 'dimana', 'di mana', 'location', 'address'])) { return "Kantor kami beralamat di Jl. Contoh No. 123, Jakarta. πŸ“\nGoogle Maps: https://maps.app.goo.gl/contoh"; } if (containsAny($message, ['terima kasih', 'makasih', 'thanks', 'thank you'])) { return "Sama-sama $name! Jangan sungkan untuk menghubungi kami kembali. πŸ™"; } if (containsAny($message, ['bantuan', 'help', 'menu', 'info'])) { return implode("\n", [ "Halo $name! Berikut menu bantuan kami: πŸ“‹", "", "1️⃣ Ketik *jam buka* β€” Info jam operasional", "2️⃣ Ketik *harga* β€” Info harga & tarif", "3️⃣ Ketik *lokasi* β€” Alamat kantor", "", "Atau hubungi CS kami langsung untuk pertanyaan lainnya.", ]); } // Tidak ada kata kunci yang cocok return null; } /** * Cek apakah $haystack mengandung salah satu kata kunci dari $needles. */ function containsAny(string $haystack, array $needles): bool { foreach ($needles as $needle) { if (str_contains($haystack, $needle)) { return true; } } return false; }