Пример #1
0
 public function scores($playerID)
 {
     //we should have a get payload.
     $level = $_GET['level'];
     $ids = explode(',', $_GET['ids']);
     $scores = array();
     if ($level === 0) {
         return array();
     }
     $playerModel = new PlayerModel();
     if (count($ids)) {
         foreach ($ids as $key => $val) {
             $friendPlayerID = $playerModel->getPlayerIDFromUID($val, null, false);
             if ($friendPlayerID != "") {
                 $data = $playerModel->getPlayerLevelScore($friendPlayerID[0], $level);
                 if ($data) {
                     if ($data->score != "") {
                         $scores[$key] = array('uid' => $val, 'score' => (int) $data->score, 'name' => $data->first_name);
                     } else {
                         $scores[$key] = array('uid' => $val, 'score' => 0, 'name' => $data->first_name);
                     }
                 }
             }
         }
     }
     //add my own score cuz. why not.
     $mydata = $playerModel->getPlayerLevelScore($playerID, $level);
     if ($mydata) {
         $uid = $playerModel->getUidFromPlayerId($playerID);
         $scores[] = array('uid' => $uid, 'score' => $mydata->score, 'name' => $mydata->first_name);
     }
     usort($scores, $this->make_comparer(['score', SORT_DESC]));
     //$scores =array_multisort($scores, SORT_DESC, $ids);
     $this->printJson($scores);
 }
Пример #2
0
 private function processPayment($objectID)
 {
     $playerModel = new PlayerModel();
     $storeModel = new StoreModel();
     $error = false;
     $newOrder = false;
     $graphUrl = sprintf('https://graph.facebook.com/%s?access_token=%s|%s', $objectID, Config::get('facebook.appid'), Config::get('facebook.appsecret'));
     $curl = new Curl();
     $curl->get($graphUrl);
     if ($curl->error) {
         Log::add('Error in requesting object ' . $curl->error_code . ' : ' . $curl->error_message);
         throw new NinjaException("Error Processing Request");
     }
     $res = $curl->response;
     $facebookID = $res->user->id;
     $playerArray = $playerModel->getPlayerIDFromUID($facebookID, null, false);
     $playerID = $playerArray[0];
     $orderDetails = $storeModel->addOrder($playerID, $objectID, $res);
     if ($res->actions[0]->status == 'completed') {
         $status = 'ok';
         Log::add('payment ok charged status is good');
     } else {
         if ($res->actions[0]->status == 'failed') {
             $error = true;
             $status = 'error';
             $message = 'Payment Declined';
             Log::add('Payment failed ' . print_r($res, true));
         } else {
             if ($res->actions[0]->status == 'initiated') {
                 $error = false;
                 Log::add('Payment failed ' . print_r($res, true));
             } else {
                 $error = true;
                 $status = 'error';
                 $message = 'User canceled payment';
             }
         }
     }
     //ANALYTICS
     if (!$error) {
         $array['status'] = 'ok';
         $array['player'] = $playerModel->getPlayerData($playerID);
         $array['order'] = $orderDetails;
         $this->printJson($array);
     } else {
         $array['status'] = 'error';
         $array['message'] = $message;
         $this->printJson($array);
     }
 }
Пример #3
0
 public function sendrequest($playerID)
 {
     $playerModel = new PlayerModel();
     //we'll have some data!
     Log::add('Send request called with data: ' . print_r($_POST, true));
     $requestID = $_POST['request'];
     $facebookID = $_POST['ids'];
     $requestType = isset($_POST['type']) ? $_POST['type'] : 1;
     if ($requestID == '' || $facebookID == '') {
         Log::add('Error no request or facebook id to gift');
         $response['status'] = 'error';
         $response['message'] = 'No request sent';
         $this->printJson($response);
         die;
     }
     //decode request.
     $graphUrl = sprintf('https://graph.facebook.com/%s?access_token=%s|%s', $requestID, Config::get('facebook.appid'), Config::get('facebook.appsecret'));
     $curl = new Curl();
     $curl->get($graphUrl);
     if ($curl->error) {
         throw new NinjaException($curl->error_message, $curl->error_code);
     }
     //Else it's a success let's log it!
     $res = $curl->response;
     Log::add('The requestType is: ' . $requestType);
     $toFacebookID = $_POST['ids'];
     $fromFacebookID = $res->from->id;
     $fromName = $res->from->name;
     $fromID = $playerID;
     $toPlayers = explode(',', $toFacebookID);
     if ($requestType == 2) {
         //reverser this shit.
         foreach ($toPlayers as $key => $val) {
             $recipientID = $playerModel->getPlayerIDFromUID($val, null, false);
             $db['request_id'] = $res->id;
             $db['from_player'] = $playerID;
             $db['to_player'] = $recipientID;
             $db['to_uid'] = $val;
             $db['from_uid'] = $res->from->id;
             $db['type'] = 2;
             $db['from_player_name'] = $sendPlayer->first_name . ' ' . $sendPlayer->last_name;
             $db['date_added'] = time();
             //get recip playerID
             $playerModel->addRequest($db);
         }
     } else {
         foreach ($toPlayers as $key => $val) {
             $recipientID = $playerModel->getPlayerIDFromUID($val, null, false);
             $db['request_id'] = $res->id;
             $db['from_player'] = $playerID;
             $db['to_player'] = $recipientID;
             $db['to_uid'] = $toFacebookID;
             $db['from_uid'] = $res->from->id;
             $db['type'] = $purchaseType != '' ? $purchaseType : 1;
             $db['from_player_name'] = $fromName;
             $db['date_added'] = time();
             $db['type'] = 1;
             $requestIDS[] = $res->id;
             $playerModel->addRequest($db);
             $playerModel->deleteRequest($db);
         }
     }
     $response['status'] = 'ok';
     $response['uid'] = $toFacebookID;
     $this->printJson($response);
 }
Пример #4
0
 public function init($uuid)
 {
     $swfs = new SwfModel();
     $player = new PlayerModel();
     $incentiveModel = new IncentiveModel();
     if ($_GET['platform'] != '') {
         $payload['platform'] = $_GET['platform'];
     } else {
         $payload['platform'] = "mobile";
     }
     $platform = $payload['platform'];
     list($playerID, $newPlayer) = $player->getPlayerIDFromUID($uuid, $payload);
     $p = $player->loadPlayer($playerID);
     $playerSessionID = md5(uniqid(rand(), true)) . "_" . $p->visitCount;
     $lastLoginDate = strtotime($p->last_login_date) ? strtotime($p->last_login_date) : "0";
     $player->updatePlayerLoginInfo($playerID, $lastLoginDate, $playerSessionID, $platform);
     if ($_GET['id'] != '') {
         $collectedItems = $incentiveModel->collectBooty($playerID, $_GET['id']);
     }
     $params['status'] = 'ok';
     $params['appid'] = Config::get('facebook.appid');
     $params['secret'] = Config::get('facebook.appsecret');
     $params['repo'] = Config::get('storage.url');
     $params['base'] = Config::get('url');
     $params['uid'] = $p->uid;
     $params['playerID'] = $p->player_id;
     $params['music'] = $p->music ? true : false;
     $params['soundfx'] = $p->soundfx ? true : false;
     $params['locale'] = 'en_US';
     //going to be spanish or english
     $params['debug'] = false;
     $params['namespace'] = Config::get('facebook.namespace');
     $params['version'] = (int) $swfs->getBuildNumber();
     $params['playerSession'] = $playerSessionID;
     $params['newPlayer'] = $newPlayer;
     $params['platform'] = $platform;
     $params['analyticsUrl'] = Config::get('analytics.url');
     $params['analyticsKey'] = Config::Get('analytics.key');
     $params['analyticsSecret'] = Config::get('analytics.secret');
     $this->printJson($params);
 }