· 5 years ago · Mar 03, 2021, 06:28 AM
1<?php
2 // botLog("position", "Pelayanan Nasabah".getUserMessage().getUserVar("STATE"));
3
4 $msg = strtolower(getUserMessage());
5
6 if($msg == ""){
7 $msg = getUserVar("MSGFROMNLP");
8 setUserVar("MSGFROMNLP", "");
9 }
10
11 $intent = ""; $probability = "";
12 foreach($bot->nlp as $val){
13 $intent = NLPGetIntent();
14 $probability = $val->probability;
15 break;
16 }
17
18 $check = false;
19 $txt = array(
20 "info", "produk", "manfaat", "cabang", "lokasi", "atm", "agen", "cs", "customer service",
21 "buka rekening", "pindah buku", "antri", "layanan", "nasabah", "simpanan", "jasa", "kredit", "tabungan", "valas", "syariah",
22 "admin", "setor tunai", "tarik tunai", "reset", "investasi", "tabungan", "giro", "pensiun", "dokumen"
23 );
24 foreach($txt as $key => $value){
25 if($msg == strtolower($value) || strstr($msg, " ".strtolower($value)) || strstr($msg, strtolower($value)." ")){
26 $check = true;
27 break;
28 }
29 }
30
31 if(getUserVar("LAT")&&getUserVar("LNG")){
32 setUserVar("LAT", getUserVar("LAT"));
33 setUserVar("LNG", getUserVar("LNG"));
34 }
35
36 if($msg != ""){
37 if(
38 strstr($msg, "batal") ||
39 $intent=="sys.info_confirm_cancel" || strstr($msg, "keluar")
40 ){
41 botSendMessage(
42 array(
43 "text" => "Baik, permintaan telah dibatalkan"
44 )
45 );
46 setUserVar("LASTSTATE","");
47 setUserVar("IDAREA","");
48 setUserVar("LAT", "");
49 setUserVar("LNG", "");
50 raiseEvent("onEnd");
51 } elseif ( strstr($msg, "menu") ||
52 ($intent=="sys.ask_menu" && $probability>=0.98)
53 ){
54 setUserVar("LASTSTATE","");
55 setUserVar("IDAREA","");
56 setUserVar("LAT", "");
57 setUserVar("LNG", "");
58 setUserVar("MSGFORNLP","menu");
59 raiseEvent("onNLP");
60 }
61 elseif ($check){
62 setUserVar("LASTSTATE","");
63 setUserVar("IDAREA","");
64 setUserVar("LAT", "");
65 setUserVar("LNG", "");
66 setUserVar("ASK","");
67 setUserVar("MSGFORNLP", strtolower(getUserMessage()));
68 raiseEvent("onNLP");
69 } elseif ( $msg=="ya" || $msg=="y" || $msg=="yes"
70 // ($intent=="sys.info_confirm_yes" && $probability>=0.98)
71 ){
72 setUserVar("LASTSTATE","");
73 setUserVar("IDAREA","");
74 setUserVar("LAT", "");
75 setUserVar("LNG", "");
76 setUserVar("MSGFORNLP","menu");
77 raiseEvent("onNLP");
78 } elseif ($msg=="tidak" || $msg=="t" ||
79 ($intent=="sys.info_confirm_no" && $probability>=0.98) ||
80 ($intent=="sys.ask_done" && $probability>=0.98)){
81 setUserVar("LASTSTATE","");
82 setUserVar("IDAREA","");
83 setUserVar("LAT", "");
84 setUserVar("LNG", "");
85 setUserVar("msg","tidak");
86 raiseEvent("onEnd");
87 }
88 //fitur previous n next
89 elseif(
90 $msg == "selanjutnya" || $msg == "sebelumnya" || $msg == "l" || $msg == "s" || $msg == "lanjut")
91 {
92 // botLog("lanjut", "y".getUserVar("STATE"));
93 if($msg == "selanjutnya" || $msg == "l" || $msg == "lanjut"){
94 setUserVar("LASTSTATE","");
95 $queue = getUserVar("QUEUE")+1;
96 $list = getUserVar("LIST".$queue);
97 $maxqueue = getUserVar("MAXQUEUE");
98
99 botSendMessage(["text"=>$list]);
100 setUserVar("QUEUE",$queue);
101
102 if(getUserVar("QUEUE")=="0" && getUserVar("AREAMAX") > 10){
103 $maxx = 10;
104 setUserVar("MAXX", $maxx);
105 }elseif(getUserVar("QUEUE") < getUserVar("MAXQUEUE")){
106 $maxx = getUserVar("MAXX")+10;
107 setUserVar("MAXX", $maxx);
108 }elseif(getUserVar("QUEUE")== getUserVar("MAXQUEUE")){
109 $maxx = getUserVar("AREAMAX");
110 setUserVar("MAXX", $maxx);
111 }
112
113 if($queue == $maxqueue){
114 if (getUserVar("MESSENGERTYPE") == "OAWAPPIN" ){
115 botSendMessage(["text"=>"Ketik *Batal* untuk membatalkan permintaan"]);
116 } elseif(getUserVar("MESSENGERTYPE") == "TELEGRAM"){
117 botSendMessage(["text"=>"Ketik Batal untuk membatalkan permintaan"]);
118 } else {
119 botSendMessage(["text"=>"Klik tombol <b>Lanjut</b> untuk melihat kota lainnya atau <b>Batal</b> untuk membatalkan permintaan",
120 "button"=>[["text"=>"Lanjut"],["text"=>"Batal"]]
121 ]);
122 }
123 }else{
124 if (getUserVar("MESSENGERTYPE") == "OAWAPPIN" ){
125 botSendMessage(["text"=>"Ketik *L* untuk melihat kota lainnya atau *Batal* untuk membatalkan permintaan"]);
126 } elseif(getUserVar("MESSENGERTYPE") == "TELEGRAM"){
127 botSendMessage(["text"=>"Ketik L untuk melihat kota lainnya atau Batal untuk membatalkan permintaan"]);
128 } else {
129 botSendMessage(["text"=>"Klik tombol <b>Lanjut</b> untuk melihat kota lainnya atau <b>Batal</b> untuk membatalkan permintaan",
130 "button"=>[["text"=>"Lanjut"],["text"=>"Batal"]]
131 ]);
132 }
133 }
134 if($queue > $maxqueue){
135 botSendMessage(["text"=>"Maaf, tidak ada daftar"]);
136 }
137 }else{
138 $queue = getUserVar("QUEUE")-1;
139 $list = getUserVar("LIST".$queue);
140
141 botSendMessage(["text"=>$list]);
142 setUserVar("QUEUE",$queue);
143 if($queue == 0){
144 if (getUserVar("MESSENGERTYPE") == "OAWAPPIN" ){
145 botSendMessage(["text"=>"Ketik *L* untuk melihat kota lainnya atau *Batal* untuk membatalkan permintaan"]);
146 } elseif(getUserVar("MESSENGERTYPE") == "TELEGRAM"){
147 botSendMessage(["text"=>"Ketik L untuk melihat kota lainnya atau Batal untuk membatalkan permintaan"]);
148 } else {
149 botSendMessage(["text"=>"Klik tombol <b>Lanjut</b> untuk melihat kota lainnya atau <b>Batal</b> untuk membatalkan permintaan",
150 "button"=>[["text"=>"Lanjut"],["text"=>"Batal"]]
151 ]);
152 }
153 }else{
154 if (getUserVar("MESSENGERTYPE") == "OAWAPPIN" ){
155 botSendMessage(["text"=>"Ketik *L* untuk melihat kota lainnya atau *Batal* untuk membatalkan permintaan"]);
156 } elseif(getUserVar("MESSENGERTYPE") == "TELEGRAM"){
157 botSendMessage(["text"=>"Ketik L untuk melihat kota lainnya atau Batal untuk membatalkan permintaan"]);
158 } else {
159 botSendMessage(["text"=>"Klik tombol <b>Lanjut</b> untuk melihat kota lainnya atau <b>Batal</b> untuk membatalkan permintaan",
160 "button"=>[["text"=>"Lanjut"],["text"=>"Batal"]]
161 ]);
162 }
163 }
164 if($queue < 0){
165 botSendMessage(["text"=>"Maaf, tidak ada daftar"]);
166 }
167 }
168 } elseif(is_numeric($msg) && getUserVar("LASTSTATE") == "LAYANAN"){
169 setUserVar("LASTSTATE","");
170 if($msg=="1"){
171 setUserVar("KOTA","");
172 setUserVar("LAT", "");
173 setUserVar("LNG", "");
174 setUserVar("STATE","");
175 setUserVar("IDAREA","");
176 setUserVar("MSGFORNLP", "info lokasi");
177 raiseEvent("onNLP");
178 }
179 elseif($msg=="2"){
180 setUserVar("KOTA","");
181 setUserVar("LAT", "");
182 setUserVar("LNG", "");
183 setUserVar("STATE","");
184 setUserVar("IDAREA","");
185 setUserVar("MSGFORNLP", "layanan nasabah");
186 raiseEvent("onNLP");
187 }
188 elseif($msg=="3"){
189 setUserVar("KOTA","");
190 setUserVar("LAT", "");
191 setUserVar("LNG", "");
192 setUserVar("STATE","");
193 setUserVar("IDAREA","");
194 setUserVar("MSGFORNLP", "produk");
195 // botLog("produk","y");
196 raiseEvent("onNLP");
197 }
198 elseif($msg=="4"){
199 setUserVar("KOTA","");
200 setUserVar("LAT", "");
201 setUserVar("LNG", "");
202 setUserVar("STATE","");
203 setUserVar("IDAREA","");
204 setUserVar("MSGFORNLP", "cs");
205 raiseEvent("onNLP");
206 }else{
207 setUserVar("KOTA","");
208 setUserVar("LAT", "");
209 setUserVar("LNG", "");
210 setUserVar("STATE","");
211 setUserVar("IDAREA","");
212 setUserVar("MSGFORNLP", $msg);
213 raiseEvent("onNLP");
214 }
215 }
216 // pilih cabang
217 elseif (getUserVar("STATE")=="1"){
218 setUserVar("LASTSTATE","");
219
220 if(is_numeric($msg)){
221 $max = getUserVar("MAXX");
222 if ($msg > $max || $msg == 0){
223 if (getUserVar("AREAMAX") == 1){
224 botSendMessage(["text"=>"Silahkan masukkan angka 1"]);
225 } else {
226 botSendMessage(["text"=>"Silakan masukkan nomor (1-".$max.")"]);
227 }
228 } else {
229 $kota = getUserVar("KOTABYID".$msg);
230 setUserVar("IDAREA",$kota);
231 raiseEvent("onChooseCabang");
232 setUserVar("KOTA",ucwords(getUserVar("KOTANM".$kota)));
233 }
234 } else {
235 $allData = getUSerVar("LISTKOTABRANCH");
236 $allData = json_decode($allData, true);
237
238 foreach ($allData as $key => $value){
239 $kota = $value["name"];
240 $id = $value["id"];
241 // botLog("test", $msg." ".$kota);
242 if ($msg == strtolower($kota)){
243 setUserVar("IDAREA",$id);
244 setUserVar("KOTA",$kota);
245 raiseEvent("onChooseCabang");
246 break;
247 } elseif (strstr($msg, strtolower($kota))){
248 setUserVar("IDAREA",$id);
249 setUserVar("KOTA",$kota);
250 raiseEvent("onChooseCabang");
251 break;
252 }
253 }
254 if (getUserVar("IDAREA")==""){
255 $col = 0;
256 $n= 1;
257 foreach ($allData as $key => $value) {
258 $kota = $value["name"];
259 $id = $value["id"];
260 $list[$col] .= $n.". ".$kota."<BR>";
261 if($n % 10 == 0){
262 $col++;
263 }
264 setUserVar("KOTANM".$id,strtolower($kota));
265 setUserVar("KOTABYID".$n,$id);
266 $n++;
267
268 }
269 setUserVar("AREAMAX", $n-1);
270 botSendMessage(["text"=>"Mohon maaf SUSAN tidak bisa menemukan cabang Bank Sulselbar di kota tersebut."]);
271 $maxqueue = sizeof($list)-1;
272 setUserVar("MAXQUEUE",$maxqueue);
273 setUserVar("MAXX", "10");
274 foreach($list as $key => $li){
275 setUserVar("LIST".$key, $li);
276 if($key == 0){
277 botSendMessage(["text"=>"Silahkan pilih kota cabang Bank Sulselbar di bawah ini<BR>".$li]);
278 setUserVar("QUEUE",0);
279 }
280 }
281 if ($n > 10){
282 if (getUserVar("MESSENGERTYPE") == "OAWAPPIN" ){
283 botSendMessage(["text"=>"Ketik *L* untuk melihat kota lainnya atau *Batal* untuk membatalkan permintaan"]);
284 } elseif(getUserVar("MESSENGERTYPE") == "TELEGRAM"){
285 botSendMessage(["text"=>"Ketik L untuk melihat kota lainnya atau Batal untuk membatalkan permintaan"]);
286 }else {
287 botSendMessage(["text"=>"Klik tombol <b>Lanjut</b> untuk melihat kota lainnya atau <b>Batal</b> untuk membatalkan permintaan",
288 "button"=>[["text"=>"Lanjut"],["text"=>"Batal"]]
289 ]);
290 }
291 }
292 setUserVar("STATE","1");
293 } elseif (getUserVar("IDAREA") !=""){
294 raiseEvent("onChooseCabang");
295 }
296 }
297 }
298 else{
299 setUserVar("LASTSTATE","");
300 setUserVar("IDAREA","");
301 setUserVar("LAT", "");
302 setUserVar("LNG", "");
303 setUserVar("ASK","");
304 setUserVar("STATE","");
305 setUserVar("MSGFORNLP", $msg);
306 raiseEvent("onNLP");
307 }
308 }else{
309 botTrackAnalytic("Menu","Pelayanan Nasabah");
310 if (getUserVar("LAT")!="" && getUserVar("LNG")!=""){
311 raiseEvent("onChooseCabang");
312 } elseif (getUserVar("IDAREA") !=""){
313 raiseEvent("onChooseCabang");
314 } elseif (getUserVar("UNKNOWN-CITY")=="TRUE"){
315 setUserVar("STATE","1");
316 setUserVar("UNKNOWN-CITY","");
317 botLog("unknowncity", "yes");
318 botLog("list kota", getUSerVar("LISTKOTABRANCH"));
319 $allData = getUSerVar("LISTKOTABRANCH");
320 $allData = json_decode($allData, true);
321
322 $col = 0;
323 $n= 1;
324 foreach ($allData as $key => $value) {
325 $kota = $value["name"];
326 $id = $value["id"];
327 $list[$col] .= $n.". ".$kota."<BR>";
328 if($n % 10 == 0){
329 $col++;
330 }
331 setUserVar("KOTANM".$id,strtolower($kota));
332 setUserVar("KOTABYID".$n,$id);
333 $n++;
334
335 }
336 setUserVar("AREAMAX", $n-1);
337 botSendMessage(["text"=>"Mohon maaf SUSAN tidak bisa menemukan cabang Bank Sulselbar di kota tersebut."]);
338 botLog("list", print_r($list, true));
339 $maxqueue = sizeof($list)-1;
340 setUserVar("MAXQUEUE",$maxqueue);
341 setUserVar("MAXX", "10");
342 foreach($list as $key => $li){
343 setUserVar("LIST".$key, $li);
344 if($key == 0){
345 botSendMessage(["text"=>"Silahkan pilih kota cabang Bank Sulselbar di bawah ini<BR>".$li]);
346 setUserVar("QUEUE",0);
347 }
348 }
349 if ($n > 10){
350 if (getUserVar("MESSENGERTYPE")=="OAWAPPIN"){
351 botSendMessage(["text"=>"Ketik *L* untuk melihat kota lainnya atau *Menu* untuk kembali ke Menu Utama"]);
352 }elseif(getUserVar("MESSENGERTYPE")=="TELEGRAM"){
353 botSendMessage(["text"=>"Ketik L untuk melihat kota lainnya atau Menu untuk kembali ke Menu Utama"]);
354 }else{
355 botSendMessage(["text"=>"Ketik <b>L</b> untuk melihat kota lainnya atau <b>Menu</b> untuk kembali ke Menu Utama"]);
356 }
357 }
358 } else {
359 //get List Kota
360 $url = "https://client.botika.online/sulselbar/api/sulselbar/branch";
361 $ch = curl_init();
362 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
363 curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
364 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
365 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
366 curl_setopt($ch, CURLOPT_URL, $url);
367
368 $result = curl_exec($ch);
369 // botLog("Hasil API list kota cabang",$result);
370 if(curl_error($ch)){
371 botLog("error", curl_error($ch));
372 }
373 curl_close($ch);
374 $result = json_decode($result, true);
375 $allData = $result["data"];
376 $allData = json_encode($allData);
377 setUserVar("LISTKOTABRANCH",$allData);
378 foreach ($result as $key => $value){
379 $id = $value["id"];
380 $kota = $value["name"];
381
382 setUserVar("KOTANM".$id,strtolower($kota));
383 setUserVar("KOTAID".strtolower($kota),$id);
384 }
385 if (getUserVar("MESSENGERTYPE")=="OAWAPPIN" || getUserVar("MESSENGERTYPE")=="OAWHATSAPPJATIS"){
386 $text = "Selamat datang di Pelayanan Nasabah (Antrian Online) Bank Sulselbar. Booking antrian online dilakukan H-3 kedatangan<BR>".
387 "Anda ingin melakukan transaksi di cabang mana? <BR><BR>".
388 "SUSAN bisa bantu cek cabang Bank Sulselbar terdekat dari lokasi Anda saat ini.<BR>".
389 "Silahkan masukkan *Nama Kota* atau *Share Lokasi* Anda";
390 botSendMessage(["text"=>$text]);
391 } elseif (getUserVar("MESSENGERTYPE")=="TELEGRAM"){
392 $text = "Selamat datang di Pelayanan Nasabah (Antrian Online) Bank Sulselbar. Booking antrian online dilakukan H-3 kedatangan<BR>".
393 "Anda ingin melakukan transaksi di cabang mana? <BR><BR>".
394 "SUSAN bisa bantu cek cabang Bank Sulselbar terdekat dari lokasi Anda saat ini.<BR>".
395 "Silahkan masukkan Nama Kota atau Share Lokasi Anda";
396 botSendMessage(["text"=>$text]);
397 } else {
398
399 $text = "Selamat datang di Pelayanan Nasabah (Antrian Online) Bank Sulselbar. Booking antrian online dilakukan H-3 kedatangan<BR>".
400 "Anda ingin melakukan transaksi di cabang mana? SUSAN bisa bantu cek cabang Bank Sulselbar terdekat dari lokasi Anda saat ini. <BR><BR>".
401 "Silahkan masukkan <b>Nama Kota</b> atau <b>Share Lokasi</b> Anda dengan tekan tombol di bawah ini";
402 botSendMessage(["text"=>$text,
403 "button"=>[
404 [
405 "text" => "Share Lokasi",
406 "type" => "location",
407 "payload" => "Location"
408 ]
409 ]
410 ]);
411 }
412 setUserVar("LASTSTATE","LAYANAN");
413 setUserVar("STATE","1");
414 }
415 }
416
417?>