input('gid'); $level=$request->input('level',0); $lang=$request->input('lang',env('DEFAULT_LOCALE','pu')); $userid = $request->UserID; $lang=['pu'=>'pt','en'=>'en','sp'=>'es'][$lang]??$lang; $protocol = $request->isSecure() ? 'https://' : 'http://'; $domain = $protocol . $request->getHost(); $rid=substr($gid,2); $params=[ 'norot'=>1, 'lang'=>$lang, 'level'=>$level, 'gid'=>$rid, 'UserID'=>$userid, 't'=>time() ]; $params['sign'] = ApiSign::sign($params); $url="$domain/api/pgsoft/lunchorg?".http_build_query($params); switch(substr($gid,0,2)){ case "92": $url = "$domain/api/igt/lunchorg?".http_build_query($params); break; //jili case "91": $url = "$domain/api/jiligames/lunchorg?".http_build_query($params); break; //pg case "90": $url="$domain/api/pgsoft/lunchorg?".http_build_query($params); break; default: $url="$domain/api/pp-0-/lunchorg?".http_build_query($params); break; } return redirect($url); } public function gameLunch(Request $request) { $gid = $request->input('gid'); $level = $request->input('level',0); $user = $request->user(); $userid = $user->UserID; $GlobalUID = $user->GlobalUID; GameCard::$enableStateCheck = false; $gamecard = GameCard::where('gid', $gid)->first(); $in_gameid = OuroGameService::getUserInGame($userid, $user->GlobalUID); if ($in_gameid != intval($gamecard->id)) { Util::WriteLog('24680game', compact('in_gameid', 'gamecard', 'user')); // die; } $gamecard = GameCard::where('gid', $gid)->where('brand', 'JILI')->first(); $gamecard->increment('play_num', 1); //$this->logGameClick($gamecard->id,$userid); LogGamecardClick::recordClick($gamecard->id, $userid); $lang = GlobalUserInfo::getLocale(); GameCard::$enableStateCheck = false; $supportLang = ['en' => "en-US", 'da' => "da-DK", 'es' => "es-AR", 'id' => "id-ID", 'ja' => "ja-JP", 'ko' => "ko-KR", 'pt' => "pt-BR", 'th' => "th-TH", 'vi' => "vi-VN", 'zh' => "zh-CN", 'my' => "my-MM"]; if (!in_array($lang, array_keys($supportLang))) { $lang = 'en'; } $lang=$supportLang[$lang]; $configurls=json_decode(env('CONFIG_GAMES'),true); $configurl=$configurls['jili']; $cdnserver = 'https://'.$configurl['source']; $LogonPass='123'; $sign = GlobalUserInfo::genGuuidSign((object)compact('GlobalUID','LogonPass')); $or = $this->convertString($configurl['api']); $data=['UserID'=>ServerService::GlobalToUserID($GlobalUID)]; // $gameIdToCodes=[302=>'mcp',51=>'mc',49=>'fullhouse',403=>'fullhouse3',300=>'fg3',223=>'fgp',109=>'fg',35=>'ols2',258=>'dl',47=>'bfs',421=>'lj']; $params = ['lang' => $lang, 'ssoKey' => $sign, 'apiId' => 2,'gameId'=>$gid,'gs'=>$or,'domain_platform'=>$or,'domain_gs'=>$or,'be'=>$or]; $url = $cdnserver . "/{$gid}/index.html?" . http_build_query($params).'&iu=true&legalLang=true'; // https://jj.pgn-nmu2nd.com/mcp/index.html?ssoKey=1e790573d14d23bf6c3c330e3edeef8a1d8b3cae&lang=en-US&legalLang=true&gameId=302&gs=moc.dn2umn-ngp.jj&domain_platform=moc.dn2umn-ngp.jj&domain_gs=semagilij&be=moc.dn2umn-ngp.jj&iu=true&apiId=2&demo=true echo ""; return ""; } public function leaveOrg(Request $request){ $UserID = $request->UserID; $config = ServerService::GetGlobalServerInfoByCode(ServerService::GetLocalSign()); $api = env('APP_URL'); try { file_get_contents("https://$api/game-api/000/v2/removePlayer/Get?UserID=$UserID"); }catch (\Exception $e){ } DB::connection('write')->table('QPTreasureDB.dbo.GameScoreLocker') ->where('UserID', $UserID) ->delete(); return ''; } public function gameLunchOrg(Request $request) { $gid = $request->input('gid'); $level=$request->input('level',0); $lang=$request->input('lang',env('DEFAULT_LOCALE','pu')); $lang=['pu'=>'pt','en'=>'en','sp'=>'es'][$lang]??$lang; // $lang='pt'; $userid = $request->UserID; $GlobalUID = 'a1b1c1-b53b-'.ServerService::GetLocalSign().'-' . $userid; GameCard::$enableStateCheck = false; // $gamecard = GameCard::where('gid', $gid)->first(); // $in_gameid = OuroGameService::getUserInGame($userid, $GlobalUID); // if ($in_gameid != intval($gamecard->id)) { // Util::WriteLog('24680game', compact('in_gameid', 'gamecard', 'GlobalUID')); //// die; // } // // $gamecard = GameCard::where('gid', $gid)->where('brand', 'PGSoft')->first(); // $gamecard->increment('play_num', 1); // //$this->logGameClick($gamecard->id,$userid); // // LogGamecardClick::recordClick($gamecard->id, $userid); // $lang = GlobalUserInfo::getLocale(); $supportLang = ['en' => "en-US", 'da' => "da-DK", 'es' => "es-AR", 'id' => "id-ID", 'ja' => "ja-JP", 'ko' => "ko-KR", 'pt' => "pt-BR", 'th' => "th-TH", 'vi' => "vi-VN", 'zh' => "zh-CN", 'my' => "my-MM"]; if (!in_array($lang, array_keys($supportLang))) { $lang = 'en'; } $lang=$supportLang[$lang]; $configurls=json_decode(env('CONFIG_GAMES'),true); $configurl=$configurls['jili']; $cdnserver = 'https://'.$configurl['source']; $LogonPass='123'; $sign = GlobalUserInfo::genGuuidSign((object)compact('GlobalUID','LogonPass')); $or = $this->convertString($configurl['api']); $data=['UserID'=>ServerService::GlobalToUserID($GlobalUID)]; $gameIdToCodes=[302=>'mcp',51=>'mc',49=>'fullhouse',403=>'fullhouse3',300=>'fg3',223=>'fgp',109=>'fg',35=>'ols2',258=>'dl',47=>'bfs',421=>'lj']; $params = ['lang' => $lang, 'ssoKey' => $sign, 'apiId' => 2,'gameId'=>$gid,'gs'=>$or,'domain_platform'=>$or,'domain_gs'=>$or,'be'=>$or]; $url = $cdnserver . "/{$gameIdToCodes[$gid]}/index.html?" . http_build_query($params).'&iu=true&legalLang=true'; // https://jj.pgn-nmu2nd.com/mcp/index.html?ssoKey=1e790573d14d23bf6c3c330e3edeef8a1d8b3cae&lang=en-US&legalLang=true&gameId=302&gs=moc.dn2umn-ngp.jj&domain_platform=moc.dn2umn-ngp.jj&domain_gs=semagilij&be=moc.dn2umn-ngp.jj&iu=true&apiId=2&demo=true $trans="no-rotated-iframe-container"; $posClass = "defaultPos"; $iconClass="widthIcon"; if(in_array($gid,[49,403])){ $iconClass="heightIcon"; if (strpos(strtolower($request->header('User-Agent')), 'iphone') !== false) { $posClass = "iosPos"; $iconClass="widthIcon"; $trans="rotated-iframe-container"; } } $leaveUrl=$request->getSchemeAndHttpHost().'/api/jiligames/leave?UserID='.$userid; echo ' JiliGames
'; return ""; } public function loginSession(Request $request) { $key=$request->input('key'); $lang=$request->input('lang'); if(Redis::exists($key)){ $session=json_decode(Redis::get($key),true); }else { try { $arr = explode('|', Crypt::decryptString($key)); $GlobalUID = $arr[0]; if (!ServerService::IsLocalUser($GlobalUID)) { return ServerService::RedirectToSub($GlobalUID); } $timestamp = intval($arr[1]); if (time() > $timestamp) return ['dt' => null, 'err' => ['cd' => 1302, 'msg' => 'Invalid player session', 'tid' => $request->traceId]]; // $user = GlobalUserInfo::getGameUserInfo('GlobalUID', $GlobalUID); } catch (\Exception $e) { $this->log($request, "wrong user"); } if (!isset($GlobalUID) || empty($GlobalUID)) { return ['dt' => null, 'err' => ['cd' => 1302, 'msg' => 'Invalid player session', 'tid' => $request->traceId]]; } $data = ['UserID' => ServerService::GlobalToUserID($GlobalUID)]; $Currency = env("CONFIG_24680_CURRENCY", "BRL"); $CurrencySymbol = env("CONFIG_24680_DOLLAR", "R$"); $data['currency'] = $Currency; $data['dollar'] = $CurrencySymbol; $roomlevel = $request->btt ?? 1; $data['limit_room'] = 0; if ($roomlevel > 1) { $data['limit_room'] = 1; } $account = AccountsInfo::where('UserID', $data['UserID'])->first(); if($account)$account=$account->toArray(); else{ TelegramBot::getDefault()->sendProgramNotify("jili","get account error",compact('GlobalUID','data')); return ['dt' => null, 'err' => ['cd' => 1302, 'msg' => 'Invalid player session', 'tid' => $request->traceId]]; } $data = array_merge($data, $account); $session = $data; // $add=Redis::get($newToken); } if(!isset($session)||empty($session)) return ['dt' => null, 'err' => ['cd' => 1302, 'msg' => 'Invalid player session', 'tid' => $request->traceId]]; $newToken = md5($key); Redis::setex($newToken, 7200, json_encode($session)); return response()->json([ 'homeUrl' => '', 'linecode' => 0, 'profile' => [ 'id' => '', 'aid' => $session['UserID'], 'apiId' => 2, 'transactionMode' => 0, 'subAgentCode' => 0, 'isLobbyOpen' => true, 'meta' => ['agentAccount' => ''], 'platform' => '', 'lobbyMode' => 0, 'switchOffs' => [ 2, 3, 4, 5, 25, 26, 27, 35, 41, 44, 49 ], 'wallets' => null, 'nickname' => $session['NickName'], 'newNickname' => '', 'siteId' => 0, 'account' => $session['Accounts'], 'coin' => 0, 'isJPEnabled' => 0, 'linecode' => 0, 'prefix' => '', 'clientMode' => [ ['eventId' => 1, 'value' => [50]], ['eventId' => 3, 'value' => [10, 20, 30, 40, 50]], ['eventId' => 7, 'value' => ['400']], ['eventId' => 8, 'value' => [120]] ], 'betLevel' => -1, 'license' => 0, 'isGiftCodeOpen' => false, 'freeSpinBetValue' => 0, 'apiType' => 0, 'walletType' => 1 ], 'token' => $newToken, 'response' => ['error' => 0, 'message' => '', 'time' => time()], 'platformVersion' => 'uat.2.0.96', 'lobbyMode' => 0, 'disableFullScreen' => 0, 'country' => env('VALID_COUNTRY'), 'certId' => 0, 'certArea' => 0, 'clientApiParam' => [], 'itaAuthId' => '', 'thousandthMode' => '', // 'add'=>$add ]); } private function convertString($input) { return strrev($input); } private function log(Request $request, $addLog = "") { $post = $request->all(); Util::WriteLog('jilisim', $post); if (!empty($addLog)) Util::WriteLog('jilisim', $addLog); } }