/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { error_reporting(0); header('Content-type: text/plain'); set_time_limit(100); //get inputs $sessionId = $_REQUEST["sessionId"]; $serviceCode = $_REQUEST["serviceCode"]; $phoneNumber = $_REQUEST["phoneNumber"]; $text = $_REQUEST["text"]; // $players = ['0728355429' => 'Leo', '0710893801' => 'Jose', '0723384144' => 'Masha', '0700000314' => 'Kip', '0710893801' => 'Guru']; $data = ['phone' => $phoneNumber, 'text' => $text, 'service_code' => $serviceCode, 'session_id' => $sessionId]; //log USSD request ussd_logs::create($data); //verify that the user exists $no = substr($phoneNumber, -9); $user = ussd_user::where('phone', "0" . $no)->orWhere('phone', "254" . $no)->first(); if (!$user) { //if user phone doesn't exist, we register the user $usr = array(); $usr['phone'] = "0" . $no; $usr['session'] = 0; $usr['progress'] = 0; $usr['confirm_from'] = 0; $usr['menu_item_id'] = 0; $notify = new NotifyController(); $notify->sendSms('0728355429', 'New Gamer: 0' . $no); //echo "hapa"; //exit; $user = ussd_user::create($usr); } if (self::user_is_starting($text)) { $user->pin = 0; $user->difficulty_level = json_encode(array(1, 2, 3, 4, 5)); $user->save(); $response = "Welcome to Deal or No Deal" . PHP_EOL . self::startGame($user); self::sendResponse($response, 1, $user); } else { //message is the latest stuff $result = explode("*", $text); if (empty($result)) { $message = $text; } else { end($result); // move the internal pointer to the end of the array $message = current($result); } switch ($user->progress) { case 0: //neutral user $response = self::startGame($user); break; case 1: //user is choosing a box $response = self::choseABox($user, $message); break; case 2: //Deal or no Deal $response = self::DealOrNoDeal($user, $message); break; default: break; } self::sendResponse($response, 1, $user); } }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { error_reporting(0); header('Content-type: text/plain'); set_time_limit(100); //get inputs $sessionId = $_REQUEST["sessionId"]; $serviceCode = $_REQUEST["serviceCode"]; $phoneNumber = $_REQUEST["phoneNumber"]; $text = $_REQUEST["text"]; // $data = ['phone' => $phoneNumber, 'text' => $text, 'service_code' => $serviceCode, 'session_id' => $sessionId]; //log USSD request ussd_logs::create($data); //verify that the user exists $no = substr($phoneNumber, -9); $user = ussd_user::where('phone', "0" . $no)->orWhere('phone', "254" . $no)->first(); if (!$user) { //if user phone doesn't exist, we register the user $usr = array(); $usr['phone'] = "0" . $no; $usr['session'] = 0; $usr['progress'] = 0; $usr['confirm_from'] = 0; $usr['menu_item_id'] = 0; $user = ussd_user::create($usr); } if (self::user_is_starting($text)) { //lets get the home menu //reset user self::resetUser($user); //user authentication $message = ''; //get the home menu $response = self::getMenuAndItems($user, 1); self::sendResponse($response, 1, $user); } else { //message is the latest stuff $result = explode("*", $text); if (empty($result)) { $message = $text; } else { end($result); // move the internal pointer to the end of the array $message = current($result); } switch ($user->session) { case 0: //neutral user break; case 1: $response = self::continueUssdMenuProcess($user, $message); //echo "Main Menu"; break; case 2: //confirm USSD Process $response = self::confirmUssdProcess($user, $message); break; case 3: //Go back menu $response = self::postUssdConfirmationProcess($user); break; case 4: //Go back menu $response = self::confirmGoBack($user, $message); break; default: break; } self::sendResponse($response, 1, $user); } }