public static function buyProduct($user, $product, $requestId, $paymentId, $signedReq, $status, $currency, $amount, $quantity, $type, $time) { if (empty($time)) { $time = time(); } $result = new FunctionResult(); $result->success = false; if (!empty($user)) { if (!empty($product)) { if ($status == "completed") { Queue::addUserCoinLog($user->userId, $product->coinCount, $product->coinCount, $time, GameUserXpLog::$CONSTANT_LOG_TYPE_BUY_PRODUCT, 1, null, $requestId . "_" . $product->id . "_" . $product->fbId . "_" . $product->coinCount . "_" . $product->coinCount, null); Queue::addUserLeaderBoard($user->userId, $product->coinCount, $time); $coin = $user->coins + $product->coinCount * $quantity; $user->setCoins($coin); $user->updateToDatabase(DBUtils::getConnection()); } //if product campaign if ($product->type == GameFbProducts::$TYPE_CAMPAIGN && !empty($product->products)) { try { $products = json_decode($product->products); if (!empty($products)) { foreach ($products as $pro) { if (!empty($pro) && !empty($pro->itemId)) { ItemUtils::buyCampaignItem($user, $pro->itemId, $pro->count, $time); } } } } catch (Exception $exc) { error_log($exc->getMessage()); error_log($exc->getTraceAsString()); } } //if product campaign $userProductLog = new GameUserFbProductLog(); $userProductLog->setAmount($amount); $userProductLog->setCoinCount($product->coinCount); $userProductLog->setCurrency($currency); $userProductLog->setPaymentId($paymentId); $userProductLog->setProdudctId($product->id); $userProductLog->setQuantity($quantity); $userProductLog->setRequestId($requestId); $userProductLog->setSignedReq($signedReq); $userProductLog->setStatus($status); $userProductLog->setTime($time); $userProductLog->setType($type); $userProductLog->setUserId($user->userId); $userProductLog->setUserLevel($user->userLevelNumber); $userProductLog->setUserCoin($user->coins); try { $userProductLog->insertIntoDatabase(DBUtils::getConnection()); } catch (Exception $exc) { error_log($exc->getMessage()); error_log($exc->getTraceAsString()); } $result->success = true; $result->data = new stdClass(); $result->data->user = $user; return $result; } else { $result->result = LanguageUtils::getText("LANG_API_TO_ITEM_EMPTY"); return $result; } } else { $result->result = LanguageUtils::getText("LANG_API_USER_EMPTY"); return $result; } }