| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- <?php
- /**
- *------Create thems Controller------
- *------SCWPHP Version 1.0.0------
- *------Dev Model Jions------
- *------Create Time 2017-06-23 15:06:45------
- */
- namespace App\InApi\Controller;
- use BaseController\Controller;
- use Biz\Game\GameLogic;
- use App\Commons\Model\Wagent;
- class Index extends Controller
- {
- //用户上传参数数组;
- private $paras = [];
- private $parasString = '';
- private $userKey = '';
- private $model = null;
- private $logic = null;
- //默认返回数据格式
- private $defformat = 'json';
- //所有请求入口
- public function dobusiness()
- {
- $this->doLogic();
- }
- public function getdata()
- {
- $this->doLogic();
- }
- private function doLogic()
- {
- $this->ParasCheck();
- $this->AgentKeyCheck();
- $method = $this->ActionMap()[$this->paras['method']];
- $this->logic = new GameLogic($this->paras, $this->userKey, $this->model);
- if ((new \ReflectionClass($this->logic))->hasMethod($method)) {
- $ret = $this->logic->$method();
- Render($ret['datas'], $ret['status'], $ret['msg']);
- }
- Render('', 10009, lang('Errors', 'Sports')->get('error-10009'));
- }
- private function ActionMap()
- {
- $maps = [
- 'caie' => 'CheckAccountIsExist',
- 'caca' => 'CheckAndCreateAccount',
- 'gb' => 'GetBalance',
- 'ptc' => 'TransferCredit',
- 'ctc' => 'ConfirmTransferCredit',
- 'tg' => 'TransferGame',
- 'gr' => 'GetReport',
- 'gct' => 'GetCashTrade',
- 'gbrbv' => 'GetBettingRecordByVendor',
- 'gsbrbv' => 'GetSportsBettingRecordByVendor',
- 'gebrbv' => 'GetEleBettingRecord',
- 'gfbrbv' => 'GetFishBettingRecord',
- 'glbrbv' => 'GetLotteryBettingRecord',
- 'ggr' => 'GetGameResult',
- 'ua' => 'UpdateAccount',
- 'gvvi' => 'GetVideoVendorId',
- 'gsvi' => 'GetSportVendorId',
- 'atin' => 'AutoLogin',
- 'todaycr' => 'ConsumptionRanking',
- ];
- return $maps;
- }
- //输入参数校验
- private function ParasCheck()
- {
- $this->parasString = $params = $_REQUEST['params'];
- $this->userKey = $_REQUEST['Key'];
- $arr = explode('&', base64_decode($params));
- if (is_array($arr)) {
- foreach ($arr as $substring) {
- $tmp = explode("=", $substring);
- if (isset($tmp['0'])) {
- $tmpkey = strtolower(trim($tmp['0']));
- $val = isset($tmp['1']) ? trim($tmp['1']) : '';
- $this->paras[$tmpkey] = $val;
- }
- }
- } else {
- Render('', 10010, lang('Errors', 'Sports')->get('error-10009'));
- }
- $allmap = $this->ActionMap();
- $method = isset($this->paras['method']) ? $this->paras['method'] : '';
- if (!isset($allmap[$method])) {
- Render('', 10011, lang('Errors', 'Sports')->get('error-10009'));
- }
- $format = isset($this->paras['format']) ? strtolower(trim($this->paras['format'])) : '';
- if ($format == '' || !in_array($format, ['json', 'xml'])) {
- $format = $this->defformat;
- }
- S('CUR_RETURN_FORMAT', $format);
- }
- //Key验证
- private function AgentKeyCheck()
- {
- $agent = isset($this->paras['agent']) ? trim($this->paras['agent']) : '';
- if (empty($agent)) {
- Render('key_error', 0, 'key_error');
- }
- $model = (new Wagent)->getByName($agent);
- if (empty($model)) {
- Render('10', 0, 'The agent not exist');
- }
- $ret = $model->CheckKey($model, $this->parasString, $this->userKey);
- if ($ret != 1) {
- if ($ret == -1) {
- Render('10', 2, 'Token overTime,please Refresh!');
- }
- Render('10', 0, 'key check error!-' . $ret);
- }
- $this->model = $model;
- return true;
- }
- //调试地址生成用
- public function makeurl()
- {
- $remotip = $_SERVER['REMOTE_ADDR'];
- if (!($remotip == '127.0.0.1' || substr($remotip, 0, 7) == '192.168')) {
- //只能在内网调试使用
- exit;
- }
- $paras = $_REQUEST;
- unset($paras['_url']);
- if (empty($paras)) {
- exit;
- }
- $strArr = array();
- foreach ($paras as $key => $val) {
- //if ($key=='agent'){ $val = 'test1agent' ; }
- array_push($strArr, $key . '=' . $val);
- }
- $string = implode('&', $strArr);
- $key = md5(base64_encode($string) . '58f306c11e6a9d4cc74723bb76b17500');
- if (isset($_REQUEST['debug'])) {
- $host = $_SERVER['HTTP_HOST'];
- $url = 'http://' . $host . '/InApi-index/dobusiness?params=' . base64_encode($string) . '&Key=' . $key;
- } else {
- $url = 'http://sports.5gogo.com/InApi-index/dobusiness?params=' . base64_encode($string) . '&Key=' . $key;
- }
- Render(['url' => $url], 1, 'success');
- }
- //客户获取token用于 Key 的生成使用
- public function getToken()
- {
- $agengname = $_POST['wagent_name'];
- $key = $_POST['wagent_key'];
- $secret = $_POST['wagent_secret'];
- $model = (new Wagent)->TokenGetAndUpdate($agengname, $key, $secret);
- if (!$model) {
- Render('', 3, 'get Token false!');
- }
- Render(['token' => $model->auth_token], 1, 'success');
- }
- }
|