コード例 #1
1
ファイル: GamingController.php プロジェクト: le-yo/mshwari
 /**
  * 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);
     }
 }
コード例 #2
0
ファイル: UssdController.php プロジェクト: le-yo/mshwari
 /**
  * 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);
     }
 }