Browse Source

'代理登陆'

Ethan 6 năm trước cách đây
mục cha
commit
44c7599682

+ 86 - 14
app/Http/Controllers/Api/AgentController.php

@@ -26,28 +26,100 @@ class AgentController extends Controller
         $code = -2;
         $msg = '操作失败';
         /*try {*/
-        // 获取游戏url及参数.
-        $gmenuModel = new Models\Agent;
+        // 获取Token url及参数.
+        $agentModel = new Models\Agent;
         $gmenuId = $req->input('id');
-        $getGameUrl = $gmenuModel->getGameUrl($gmenuId);
+        $getGameUrlWhere = [
+            'gmenu_id' => $gmenuId,
+            'gameUrl_type' => 'getToken',
+        ];
+        $getGameUrl = $agentModel->getGameUrl($getGameUrlWhere);
 
-        // 获取传参.
+        // 获取Token传参.
         $data = json_decode($getGameUrl->gameUrl_data);
-        // 获取url
-        $url = json_decode($getGameUrl->gameUrl_url);
+        // 获取Token url.
+        $url = $getGameUrl->gameUrl_url;
         $dataString = '';
-        foreach ($data[0] as $key => $value) {
+        foreach ($data as $key => $value) {
             $dataString .= '&' . $key . '=' . urlencode($value);
         }
         $commonModel = new Models\Common;
-        $res = $commonModel->make_request($url[0], $dataString);echo print_r(json_decode($res)->data->token);die;
-        foreach ($data[0] as $key => $value) {
-            $dataString .= '&' . $key . '=' . urlencode($value);
-        }
-        $res = $this->make_request($getGameUrl, $dataString);print_r($res);die;
+        // 获取token.
+        $getToken = $commonModel->make_request($url, $dataString);
+        if ($getToken && json_decode($getToken)->status !== 1) {
+            $msg = '链接失败';
+            return toJson($code, $msg, []);
+        }//end if
+        // 存儲token
+        S('sportsToken', json_decode($getToken)->data->token);
+
+        // 获取用户信息.
+        $getMemberInfo = $agentModel->getMember();
+        // 获取登陆 url及参数.
+        $getGameUrlWhere = [
+            'gmenu_id' => $gmenuId,
+            'gameUrl_type' => 'login',
+        ];
+        $getGameUrl = $agentModel->getGameUrl($getGameUrlWhere);
+
+        // 获取登陆传参.
+        $data = json_decode($getGameUrl->gameUrl_data);
+        // 获取登陆url.
+        $url = json_decode($getGameUrl->gameUrl_url);
+        // 登陆.
+        $paramsData = [
+            'agent' => $data->agent,
+            'username' => $getMemberInfo['name'],
+            'method' => $data->method,
+            'password' => $getMemberInfo['password'],
+        ];
+        $loginUrl = $commonModel->sportsAgentParams($paramsData, $url[1]);
+        $loginData = $commonModel->make_request($loginUrl, '');
+        if ($loginData && json_decode($loginData)->status !== 1) {
+            $msg = '远程登陆失败';
+            return toJson($code, $msg, []);
+        }//end if
+
+        // 獲取余额.
+        $getMembersDetailed = $agentModel->getMembersDetailed();
+        // 扣去用户余额.
+        $updateMembersDetailed = $agentModel->updateMembersDetailed();
+
+        // 获取转账 url及参数.
+        $getGameUrlWhere = [
+            'gmenu_id' => $gmenuId,
+            'gameUrl_type' => 'transfer',
+        ];
+        $getGameUrl = $agentModel->getGameUrl($getGameUrlWhere);
+
+        // 获取转账传参.
+        $data = json_decode($getGameUrl->gameUrl_data);
+        // 获取转账url.
+        $url = json_decode($getGameUrl->gameUrl_url);
+        // 转账.
+        $newUuid = getUUID();
+        $transferParams = [
+            'agent' => $data->agent,
+            'username' => $getMemberInfo['name'],
+            'method' => $data->method,
+            'password' => $getMemberInfo['password'],
+            'billno' => $newUuid,
+            'credit' => $getMembersDetailed->membersDetailed_cash,
+            'type' => $data->type,
+        ];
+        $transferUrl = $commonModel->sportsAgentParams($transferParams, $url[2]);
+        $transferData = $commonModel->make_request($transferUrl, '');
+        if ($transferData && json_decode($transferData)->status !== 1) {
+            $msg = '链接失败';
+            return toJson($code, $msg, []);
+        }//end if
+
+        // 转账成功,添加转账记录.
+
+
+        print_r($loginDa);die;
+
 
-        $str = base64_encode($dataString);
-        $key = md5($dataString);
 
         $msg = '成功';
         $msg = $getGameUrl;

+ 89 - 7
app/Http/Models/Agent.php

@@ -17,21 +17,20 @@ class Agent extends Model
      * 获取游戏url及参数
      *
      * @access public
-     * @param mixed $gmenuId 游戏Id
+     * @param mixed $getGameUrlWhere 查询条件
      * @return String
      */
-    public function getGameUrl($gmenuId)
+    public function getGameUrl($getGameUrlWhere)
     {
         // 获取游戏地址数据.
         $gameUrlModel = new Models\GameUrl;
-        $getGameUrlSelect = ['gameUrl_url', 'gameUrl_data'];
-        $getameUrlWhere = [
-            'gmenu_id' => $gmenuId,
-            'gameUrl_type' => 'login',
+        $getGameUrlSelect = [
+            'gameUrl_url',
+            'gameUrl_data',
         ];
         $getGameUrl = $gameUrlModel
             ->select($getGameUrlSelect)
-            ->where($getameUrlWhere)
+            ->where($getGameUrlWhere)
             ->first();
 
         return $getGameUrl;
@@ -39,4 +38,87 @@ class Agent extends Model
     }//end getGameUrl()
 
 
+    /**
+     * 获取用户信息
+     *
+     * @access public
+     * @return array
+     */
+    public function getMember()
+    {
+        // 获取游戏地址数据.
+        $memberModel = new Models\Member;
+        $getMemberSelect = [
+            'name',
+            'members_agentPassword',
+            'uuid',
+        ];
+        $getMemberWhere['id'] = S('token_user_id');
+        $getMember = $memberModel
+            ->select($getMemberSelect)
+            ->where($getMemberWhere)
+            ->first();
+        $result['name'] = $getMember->name;
+        // 接口密码.
+        if (empty($getMember->members_agentPassword) === true) {
+            $newUuid = getUUID();
+            $newUuid = substr($getMember->uuid, 3,12) . md5(uniqid(mt_rand(), true));
+            $newAgentPassword = createPasswd(trim($newUuid), $newUuid);
+            $result['password'] = $newAgentPassword;
+            $getMember = $memberModel
+                ->where($getMemberWhere)
+                ->update(['members_agentPassword' => $newAgentPassword]);
+        } else {
+            $result['password'] = $getMember->members_agentPassword;
+        }
+
+        return $result;
+
+    }//end getMember()
+
+
+    /**
+     * 获取用户余额
+     *
+     * @access public
+     * @return array
+     */
+    public function getMembersDetailed()
+    {
+        // 获取用户资金.
+        $membersDetailedModel = new Models\MembersDetailed;
+        $getMembersDetailedSelect = [
+            'membersDetailed_cash',
+        ];
+        $getMembersDetailedWhere['members_id'] = S('token_user_id');
+        $getMembersDetailed = $membersDetailedModel
+            ->select($getMembersDetailedSelect)
+            ->where($getMembersDetailedWhere)
+            ->first();
+
+        return $getMembersDetailed;
+
+    }//end getMembersDetailed()
+
+
+    /**
+     * 修改用户余额
+     *
+     * @access public
+     * @return array
+     */
+    public function updateMembersDetailed()
+    {
+        // 获取用户资金.
+        $membersDetailedModel = new Models\MembersDetailed;
+        $updateMbrDtlWhr['members_id'] = S('token_user_id');
+        $updateMbrDtl = $membersDetailedModel
+            ->where($updateMbrDtlWhr)
+            ->update(['membersDetailed_cash' => 0]);
+
+        return $updateMbrDtl;
+
+    }//end getMembersDetailed()
+
+
 }

+ 37 - 9
app/Http/Models/Common.php

@@ -12,20 +12,18 @@ class Common extends Model
 
 
     /**
-     * 通用批量查询
+     * 接口调用
      *
      * @access public
-     * @param mixed $database 数据库
-     * @param mixed $where 查询条件
-     * @param mixed $orWhere 或查询      [[['batch_id', '191'], ['batch_id', '186']],[['id', '55'], ['id', '59']]];
-     * @param mixed $orderBy 排序字段   ['sort' => 'asc']
+     * @param mixed $url 接口地址
+     * @param mixed $where $params参数
+     * @param mixed $timeout 请求时效
      * @return String
      */
-    public function make_request($url, $params, $timeout = 30)
+    public function make_request($url, $params, $timeout=30)
     {
         set_time_limit(0);
-        if (function_exists('curl_init')) {
-            // Use CURL if installed...
+        if (function_exists('curl_init') === true) {
             $ch = curl_init();
             $header = array(
                 'Accept-Language: zh-cn',
@@ -63,7 +61,37 @@ class Common extends Model
             }
         }
         return $result;
-    }//end commonSelect()
+
+    }//end make_request()
+
+
+    /**
+     * 接口调用
+     *
+     * @access public
+     * @param mixed $paramsData 接口必要參數
+     * @param mixed $url 接口地址
+     * @return String
+     */
+    public function sportsAgentParams($paramsData, $url)
+    {
+        $paramsSting = '';
+        $a = 0;
+        foreach ($paramsData as $key => $value) {
+            if ($a === 0) {
+                $paramsSting .= $key . '=' . $value;
+            } else {
+                $paramsSting .= '&' . $key . '=' . $value;
+            }
+            $a++;
+        }
+        $params = base64_encode($paramsSting);
+        $key = md5($params . S('sportsToken'));
+        $loginUrl = $url . '?params=' . $params . '&Key=' . $key;
+
+        return $loginUrl;
+
+    }//end make_request()
 
 
 }

+ 16 - 0
app/Models/MembersDetailed.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 数据库gameUrl模型类
+ */
+class MembersDetailed extends Model
+{
+
+    protected $table = 'membersDetailed';
+
+
+}