PPPPPPP пре 1 месец
родитељ
комит
937b53bd99
2 измењених фајлова са 74 додато и 36 уклоњено
  1. 21 36
      app/Http/Controllers/Game/WebRouteController.php
  2. 53 0
      app/Util.php

+ 21 - 36
app/Http/Controllers/Game/WebRouteController.php

@@ -16,6 +16,7 @@ use App\Game\Services\RouteService;
 use App\Game\Services\TelegramAppService;
 use App\Game\Style;
 use App\Game\WebChannelConfig;
+use App\Http\Controllers\Api\ApiController;
 use App\Http\Controllers\Controller;
 use App\Http\helper\NumConfig;
 use App\Models\AccountsInfo;
@@ -113,24 +114,19 @@ class WebRouteController extends Controller
         }else if($guestOpen){
             //游客模式打开,随时可以登录
             $guestUser=GlobalUserInfo::getGameUserInfo('FPID',$FPID);
-            if($guestUser)
-                $user=GlobalUserInfo::toWebData($guestUser);
 
 
-//            if(!$guestUser){
-////                $guestUser = GlobalUserInfo::getGameUserInfo('FPID', $FPID);
-////                if (!$guestUser) {
-//                    $guestUser=(new LoginController())->registerUser($request,true);
-//                    if(is_array($guestUser)){
-//                        //出现错误
-//                    }else{
-//                        $user=GlobalUserInfo::toWebData($guestUser);
-////                        $user['Registed'] = 0;
-//                    }
-////                }
-//            }else{
-//                $user=GlobalUserInfo::toWebData($guestUser);
-//            }
+            if(!$guestUser){
+                $guestUser=(new LoginController())->registerUser($request,true);
+                if(is_array($guestUser)){
+                    //出现错误
+                }else{
+                    $user=GlobalUserInfo::toWebData($guestUser);
+//                        $user['Registed'] = 0;
+                }
+            }else{
+                $user=GlobalUserInfo::toWebData($guestUser);
+            }
 
         }
         // 计算VIP等级
@@ -147,34 +143,21 @@ class WebRouteController extends Controller
 
         $origin = $request->server('HTTP_ORIGIN') ?? $request->server('HTTP_REFERER')?? '*';
         $data['origin']=$origin;
-        $BBService=new BetbyService();
-        if(RouteService::isTestSite()) {
-            $data['fpid'] = $FPID;
-            $data['request']=$request->all();
-            $data['gopen'] = $guestOpen;
-
-            Util::WriteLog('pro','');
-            $BBService=new BetbyTestService();
-        }
         $isDesktop=($request->input('_d','m')=='d');
-
-        $bb=[
-            'id'=>$BBService->brandId,
-            'theme'=>['demo-green-dark-card','bc-game-light-tile'],
-//            'theme'=>['default-table','default-table'],
-            'token'=>$user?$BBService->getDefaultJWT($user):null
-        ];
         $firstBonus=1;
         if(env('CONFIG_24680_NFTD_99',0)==0)if($config->Channel==99)$firstBonus=0;
 
         $registerBonus = SystemStatusInfo::OnlyGetCacheValue('GrantScoreCountNew') ?? 1000;
-//        $chat = SystemStatusInfo::OnlyGetCacheValue('Telegram');
-        $chat_service="https://c.24680.com/c.html?pf=winus7777.com&uid="
+
+        $telegroup = env('TELE_GROUP_URL',"");
+        $chatjs = env('CHAT_JS',"");
+
+        $servicelist=(new ApiController())->getServiceList();
 
         $recommendGame = '/game/931';
 
         $data['conf']=[
-            'bb'=>$bb,
+//            'bb'=>$bb,
             'hall'=>env("CONFIG_24680_HALL")??GameBasicConfig::$HallServer,
             'DOLLAR'=>env("CONFIG_24680_DOLLAR")??GameBasicConfig::$DOLLAR,
             'currency'=>env("CONFIG_24680_CURRENCY","USD"),
@@ -189,7 +172,9 @@ class WebRouteController extends Controller
 
             'getStateToWhereRaw' =>RouteService::getStateToWhereRaw($request),
 
-            'serviceLink' => $chat?$chat->StatusString:'',
+            'serviceLink' => $telegroup,
+            'servicejs' => $chatjs,
+            'cs' => $servicelist,
 
             'popWheel'=>0,
             'firstBonus'=>$firstBonus,

+ 53 - 0
app/Util.php

@@ -8,7 +8,60 @@ use Illuminate\Support\Facades\Validator;
 
 
 class Util {
+    public static function encodeStr($uid)
+    {
+        function fnv1a32($str)
+        {
+            $h = 0x811c9dc5;
+            for ($i = 0; $i < strlen($str); $i++) {
+                $h ^= ord($str[$i]);
+                $h = ($h + (($h << 1) + ($h << 4) + ($h << 7) + ($h << 8) + ($h << 24))) & 0xFFFFFFFF;
+            }
+            return $h & 0xFFFFFFFF;
+        }
+
+        $SECRET = "change-me"; // 前后端保持一致即可
+        if (!preg_match('/^\d+$/', strval($uid))) throw new \Exception("uid 必须为数字");
+        $key = fnv1a32($SECRET);
+        $n = intval($uid) & 0xFFFFFFFF;
+
+        // 混淆
+        $x = ($n ^ $key) & 0xFFFFFFFF;
+        $enc = strrev(base_convert($x, 10, 36));
+
+        // 签名
+        $sig = base_convert(fnv1a32($enc . "|" . $SECRET), 10, 36);
+        return "{$enc}.{$sig}";
+    }
 
+    public static function decodeStr($token)
+    {
+        $SECRET = "change-me"; // 前后端保持一致即可
+        $parts = explode(".", $token);
+        if (count($parts) != 2) return null;
+        list($enc, $sig) = $parts;
+        if (!$enc || !$sig) return null;
+
+        function fnv1a32($str)
+        {
+            $h = 0x811c9dc5;
+            for ($i = 0; $i < strlen($str); $i++) {
+                $h ^= ord($str[$i]);
+                $h = ($h + (($h << 1) + ($h << 4) + ($h << 7) + ($h << 8) + ($h << 24))) & 0xFFFFFFFF;
+            }
+            return $h & 0xFFFFFFFF;
+        }
+
+        // 验签
+        $expected = base_convert(fnv1a32($enc . "|" . $SECRET), 10, 36);
+        if ($sig !== $expected) return null;
+
+        // 还原
+        $key = fnv1a32($SECRET);
+        $x = base_convert(strrev($enc), 36, 10) & 0xFFFFFFFF;
+        $n = ($x ^ $key) & 0xFFFFFFFF;
+        return strval($n);
+    }
     /**
      * 根据南美国家(两位字母缩写)验证电话号码
      *