diff --git a/Application/Mobile/Controller/SsgController.class.php b/Application/Mobile/Controller/SsgController.class.php index dcb4958bf..e31bb7255 100644 --- a/Application/Mobile/Controller/SsgController.class.php +++ b/Application/Mobile/Controller/SsgController.class.php @@ -1,5 +1,7 @@ where(array('id' => $promoteId))->find(); if (!$exists) { - $this->error("链接失效,请重新向推广员索取链接."); + //$this->error("链接失效,请重新向推广员索取链接."); + $this->assign("error","链接失效,请重新向推广员索取链接."); + $this->display('blank'); + exit(); } } //获取客服qq @@ -72,8 +78,7 @@ class SsgController extends BaseController { $this->ajaxReturn(array("ErrorCode" => -97, "ResultMsg" => "参数非法.")); } } - - //var_dump($password); + $verify = new \Think\Verify(); if (!$verify->check(I("VerifyCode"))) { $this->ajaxReturn(array("ErrorCode" => -97, "ResultMsg" => "验证码错误")); @@ -100,7 +105,7 @@ class SsgController extends BaseController { } if($user_id>0){ $_SESSION['user_id'] = $user_id; - + $user = M('user', 'tab_')->where(array( 'id' => $user_id ))->find(); @@ -135,12 +140,12 @@ class SsgController extends BaseController { $verify = new \Think\Verify($config); $verify->codeSet = '0123456789'; $verify->entry($vid); - + } //注册 public function phoneRegister() - { + { //添加用户 C(api('Config/lists')); @@ -152,7 +157,7 @@ class SsgController extends BaseController { } #验证短信验证码 $this -> sms_verify($user['account'], $user['code']); - + $res = $this -> doRegister($user['account'],$user['password'],$user['account'],$promoteId,4,2); if(empty($res)){ $this -> set_message(1017, "fail", "添加失败"); @@ -160,13 +165,13 @@ class SsgController extends BaseController { //添加自动登录 $userApi = new MemberApi(); $user_id = $userApi->login($user['account'], $user['password'],1); - + $this -> set_message(1, "success", "添加成功"); } //忘记密码 public function forgetPassword() - { + { $user = $_POST; if (empty($user)) { $this -> set_message(1001, "fail", "基础信息不能为空"); @@ -202,7 +207,7 @@ class SsgController extends BaseController { $this -> set_message(1017, "fail", "添加失败"); } - + //添加自动登录 $userApi = new MemberApi(); $user_id = $userApi->login($account, $password,1); @@ -267,7 +272,6 @@ class SsgController extends BaseController { redirect(U("ssg/login")); //$this->error("请登入", U('ssg/login')); } - $appqq = M("config", "sys_")->field('value')->where("name='APP_QQ'")->find()['value']; $this->assign("app_qq", $appqq); $this->display(); @@ -285,7 +289,7 @@ class SsgController extends BaseController { $map["sdk_version"]=2; $map["game_status"]=1; $game_list = M("game", "tab_")->field("*, id as game_id")->where($map)->select(); - for ($i=0; $i < count($game_list); $i++) { + for ($i=0; $i < count($game_list); $i++) { $game_list[$i]["game_icon"] = get_cover($game_list[$i]["icon"], 'path'); } $res = array("list"=>$game_list); @@ -297,7 +301,7 @@ class SsgController extends BaseController { $userpay = []; }else{ $tmparr = []; - for ($i=0; $i < count($userpay); $i++) { + for ($i=0; $i < count($userpay); $i++) { # code... $tmparr[] = $userpay[$i]["game_id"]; } @@ -356,10 +360,6 @@ class SsgController extends BaseController { $this->display(); } - public function clear(){ - \Think\Log::record('缓存清理业务触发'); - session(null); - } //退出 public function logout() { session("user_auth",null); @@ -430,23 +430,385 @@ class SsgController extends BaseController { } } + + /** + *支付中心 + */ + public function pay(){ + $user = session("user_auth"); + $gameId = I("game_id", 0); + //$price = self::signprice; + if (!$user) { + redirect("/mobile.php/ssg/login"); + // $this->error("请登入", "/mobile.php/ssg/login"); + } + $userId = $user['user_id']; + $gameInfo = M('game', 'tab_')->field('game_name,supersign_token')->where(array( + 'id' => $gameId, + ))->find(); + + + $payLog = M('game_supersign', 'tab_')->where(array( + 'user_id' => $userId, + 'game_id' => $gameId + ))->find(); + + if($payLog && $payLog['pay_status']==1){ + $this->assign("error","亲~您已购买过了~请到【订单查询】查看订单信息哟~"); + $this->display('blank'); + }else{ + if (!$gameInfo['supersign_token']) { + //$this->error("超级签token未填写!"); + $this->assign("error","超级签token未配置~"); + $this->display('blank'); + exit(); + } + + $this->assign("price", self::signprice); + //$this->assign("order_id", $orderId); + $this->assign("game_id",$gameId); + $this->assign("game_name",$gameInfo['game_name']); + $this->display('pay'); + } + } + + + + /* + * 发起支付 + */ + public function dopay() { + $user = session("user_auth"); + if (!$user ) { + //redirect("/mobile.php/ssg/login"); + redirect(U("ssg/login")); + } + $gameId = I("game_id", 0); + $paytype = I("pay_type", 'ali'); + $price = self::signprice; + $userId = $user['user_id']; + if (!$userId || !$gameId) { + //$this->error("参数有误!"); + $this->assign("error","参数有误~"); + $this->display('blank'); + exit(); + } + + $payLog = M('game_supersign', 'tab_')->where(array( + 'user_id' => $userId, + 'game_id' => $gameId + ))->find(); + + $gameInfo = M('game', 'tab_')->field('game_name,supersign_token')->where(array( + 'id' => $gameId, + ))->find(); + + if ($payLog && $payLog['pay_status']==0) { + $orderId = $payLog['order_id']; + }elseif ($payLog && $payLog['pay_status']==1){ + /*$orderId = $payLog['order_id']; + if(stripos($_SERVER['HTTP_HOST'], '.wmtxkj.cn') || $_SERVER['HTTP_HOST']=='127.0.0.1' || stripos($_SERVER['HTTP_HOST'], '.free.idcfengye.com')){ + redirect("http://".$_SERVER['HTTP_HOST']."/mobile.php/Ssg/install_show/user_id/$userId/game_id/$gameId/order_id/$orderId"); + }else{ + redirect("https://".$_SERVER['HTTP_HOST']."/mobile.php/Ssg/install_show/user_id/$userId/game_id/$gameId/order_id/$orderId"); + }*/ + $this->assign("error","亲~您已购买过了~请到【订单查询】查看订单信息哟~"); + $this->display('blank'); + //$this->error("亲~您已购买过了~请到【订单查询】查看订单信息哟~"); + exit(); + } else { + $orderId = "SS_" . date('Ymd') . date('His') . sp_random_string(4); // 超级签 + if (!$gameInfo['supersign_token']) { + //$this->error("超级签token未填写!"); + $this->assign("error","超级签token未配置~"); + $this->display('blank'); + exit(); + } + + $r = M('game_supersign', 'tab_')->add(array( + 'udid' => '', + 'user_id' => $userId, + 'game_id' => $gameId, + 'order_id' => $orderId, + 'pay_price' => $price, + 'pay_status' => 0, + 'ticket' => '', // 调用安装的时候分配 + 'token' => $gameInfo['supersign_token'], + 'create_time' => time() + )); + if (!$r) return -1; + } + if($paytype=='ali'){ + $param['price'] = $price; + $param['sdk_version'] = '2'; + $param['user_id'] = $userId; + $param['game_id'] = $gameId; + $param['order_id'] = $orderId; + $param['apitype'] = "alipay"; + $param['config'] = "alipay"; + $param['signtype']= "MD5"; + $param['server'] = "alipay.wap.create.direct.pay.by.user"; + $param['payway'] = 1; + $param['title'] = $price; + $param['body'] = $price; + //$param['callback'] = "https://m.wmtxkj.com/mobile.php/Ssg/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}"; + //$param['notifyurl'] = "https://m.wmtxkj.com/callback.php/Notify/notify/apitype/alipay"; + if(stripos($_SERVER['HTTP_HOST'], '.wmtxkj.cn') || $_SERVER['HTTP_HOST']=='127.0.0.1' || stripos($_SERVER['HTTP_HOST'], '.free.idcfengye.com')){ + $param['callback'] = "http://".$_SERVER['HTTP_HOST']."/mobile.php/Ssg/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}"; + $param['notifyurl'] = "http://".$_SERVER['HTTP_HOST']."/callback.php/Notify/notify/apitype/alipay"; + }else{ + $param['callback'] = "https://".$_SERVER['HTTP_HOST']."/mobile.php/Ssg/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}"; + $param['notifyurl'] = "https://".$_SERVER['HTTP_HOST']."/callback.php/Notify/notify/apitype/alipay"; + } + + $ali_pay = $this->alipay($param); + redirect($ali_pay['url']); + }else{ + $weixn = new Weixin(); + $wx_pay = json_decode($weixn->weixin_pay('超级签消费', $orderId, $price, 'MWEB', 4), true); + if($wx_pay['status']==1){ + redirect($wx_pay['mweb_url']); + }else{ + $this->assign("error",$wx_pay['return_msg']); + $this->display('blank'); + } + } + } + + // alipay + public function alipay($param) { + $pay = new \Think\Pay($param['apitype'],C($param['config'])); + $vo = new \Think\Pay\PayVo(); + $vo->setBody("超级签消费") + ->setFee($param['price'])//支付金额 + ->setTitle($param['title']) + ->setOrderNo($param['order_id']) + ->setService($param['server']) + ->setSignType($param['signtype']) + ->setPayMethod("wap") + ->setTable("supersign") + ->setPayWay($param['payway']) + ->setCallback($param['callback']) + ->setNotifyUrl($param['notifyurl']) + ->setGameName(get_game_name($param['game_id'])) + ->setServerId(0) + ->setUserId($param['user_id']) + ->setSdkVersion($param['sdk_version']); + $pay_['url']= $pay->buildRequestForm($vo); + //$pay_['out_trade_no']= $out_trade_no; + return $pay_; + + } + + + /** + * 用户点击安装 + */ + public function install() { + $user = session("user_auth"); + if (!$user ) { + //$this->error("请登入", "/mobile.php/ssg/login"); + redirect(U("ssg/login")); + } + $userId = $user['user_id']; + $gameId = I('game_id', 0); + $orderId = I('order_id', 0); + if (!$userId || !$gameId || !$orderId) { + //$this->error("参数有误!"); + $this->assign("error","参数有误~"); + $this->display('blank'); + exit(); + } + M()->startTrans(); + // 获取支付记录 + $gamesign = M('game_supersign', 'tab_')->where(array( + 'order_id' => $orderId, + 'user_id' => $userId, + 'game_id' => $gameId, + 'pay_status' => 1, + ))->find(); + if (!$gamesign) { + //$this->error("支付记录不存在"); + $this->assign("error","支付记录不存在~"); + $this->display('blank'); + exit(); + } + if ($gamesign['url']) { + redirect($gamesign['url']); + } + + $token = $gamesign['token']; + $ipa365 = new Ipa365(); + + $i = 1; + while (1) { + // 获取授权码 + $list = $ipa365->ticketList(array( + 'token' => $token, + 'limit' => $i, + )); // @todo: 并发授权码已分配的情况 + $code = $list['data']['list'][$i-1]['code']; + $codeExists = M('game_supersign', 'tab_')->field('id')->where(array( + 'ticket' => $code, + ))->find(); + if (!$codeExists) { + break; + } + $i ++; + } + + $game = M('game', 'tab_')->where(array( + 'id' => $gameId, + ))->find(); + $url = $game['supersign_url']."?code={$code}"; + $r = M('game_supersign', 'tab_')->where(array( + 'user_id' => $userId, + 'game_id' => $gameId, + 'pay_status' => 1 + ))->save(array( + 'ticket' => $code, // 调用安装的时候分配 + 'url' => $url, + )); + if (!$r) { + pp(M('game_supersign', 'tab_')->_sql()); + M()->rollback(); + return -1; + } + M()->commit(); + redirect($url); + } + /** - * 领取激活码 - * @param $token - * @param $gift_id - * author: xmy 280564871@qq.com + * 下载页面 判断订单是否支付成功 + */ + public function install_show() { + $orderId = I('order_id', 0); + $gameId = I('game_id', 0); + + $user = session("user_auth"); + if (!$user ) { + //$this->error("请登入", "/mobile.php/ssg/login"); + redirect(U("ssg/login")); + } + + $userId = $user['user_id']; + if (!$userId ) { + //$this->error("请登入", "/mobile.php/ssg/login"); + redirect(U("ssg/login")); + } + if (!$orderId || !$gameId || !$userId) { + //$this->error("参数校验失败,请重试"); + $this->assign("error","参数校验失败,请重试~"); + $this->display('blank'); + exit(); + } + + $supersign = M('game_supersign', 'tab_')->where(array('order_id' => $orderId,"game_id"=>$gameId))->find(); + if (!$supersign) { + //$this->error("订单不存在"); + $this->assign("error","订单不存在"); + $this->display('blank'); + exit(); + } + if ($supersign['pay_status'] != 1) { + //$this->error("订单未支付"); + $this->assign("error","订单未支付"); + $this->display('blank'); + exit(); + } + $game = M('game', 'tab_')->where(array('id' => $gameId))->find(); + + $this->assign('game', $game); + $this->assign('url', U('Ssg/install', array( + 'order_id' => $orderId, + 'user_id' => $userId, + 'game_id' => $gameId + ))); + //获取礼包码 + $giftbag = M('giftbag', 'tab_')->field("*")->where(array("game_id"=>$gameId,"giftbag_version"=>3))->find(); + if(empty($giftbag)){ + $giftbag = false; + }else{ + $desribe = $giftbag['desribe']; + $mygif = $this->checkAccountGiftExist($userId,$giftbag['id']); + if(!empty($mygif)){ + //已经领取 + $giftbag =$mygif; + }else{ + if($giftbag['novice_num']>0){ + //领取 + $giftbag = $this->getNovice($userId,$user['account'],$giftbag['id']); + } + } + $giftbag['desribe'] = $desribe; + + } + //验证是否领取 + $this->assign('giftbag', $giftbag); + $this->display(); + } + + /* + * 打包列表 */ - public function get_novice($user_id,$gift_id){ - - $model = D("Giftbag"); - $exist = $model->checkAccountGiftExist($logininfo['user_id'],$gift_id); - if($exist){ - $this->error("您已经领取过该礼包!"); - } - $novice = $model->getNovice($logininfo['user_id'],$logininfo['account'],$gift_id); - if(empty($novice)){ - $this->error("暂无激活码"); - } - $this->success("领取成功",$novice); + public function pay_list() { + $user = session("user_auth"); + if (!$user ) { + //$this->error("请登入", "/mobile.php/ssg/login"); + redirect(U("ssg/login")); + } + $userId = $user['user_id']; + $list = M('game_supersion', 'tab_')->where(array( + 'user_id' => $userId, + ))->select(); + $this->assign("list", $list); + $this->display(); + } + + //领取礼包码 + public function getNovice($user_id,$account,$gift_id){ + $data =M("giftbag",'tab_')->find($gift_id); + $novice_str = $data['novice']; + $novice_arr = str2arr($novice_str,","); + if (empty($novice_arr)){ + return ""; + } + $novice_arr = array_filter($novice_arr); + $novice = array_pop($novice_arr); + $data['novice_num'] = count($novice_arr); + $data['novice'] = arr2str($novice_arr,","); + M("giftbag",'tab_')->startTrans(); + $novice_result = M("giftbag",'tab_')->save($data); + if(!empty($novice)){ + //记录领取 + $record['game_id'] = $data['game_id']; + $record['game_name'] = $data['game_name'];//get_game_name($data['game_id']); + $record['gift_id'] = $gift_id; + $record['gift_name'] = $data['giftbag_name']; + $record['status'] = 0; + $record['novice'] = $novice; + $record['user_id'] = $user_id; + $record['user_account'] = $account; + $record['create_time'] = time(); + $record['start_time'] = $data['start_time']; + $record['end_time'] = $data['end_time']; + $record_result = M("gift_record",'tab_')->add($record); + }else{ + $novice_result = false; + } + + if($novice_result === false || $record_result === false){ + M("giftbag",'tab_')->rollback(); + return ""; + }else{ + M("giftbag",'tab_')->commit(); + return $record; + } + } + + public function checkAccountGiftExist($user_id,$gift_id){ + $map['user_id'] = $user_id; + $map['gift_id'] = $gift_id; + return M("gift_record",'tab_')->field('*')->where($map)->find(); } } diff --git a/Application/Mobile/View/Ssg/blank.html b/Application/Mobile/View/Ssg/blank.html new file mode 100644 index 000000000..86f61fc06 --- /dev/null +++ b/Application/Mobile/View/Ssg/blank.html @@ -0,0 +1,34 @@ + + +
+ + +{$error}
+ +{$giftbag['desribe']}
++ + + 复制兑换码 +
+请选择支付方式。建议选择使用支付宝、微信支付、银行卡,支付请直接点击相应付款按钮。如果您使用支付宝账户支付,请点击“支付宝”按钮。
+如果您选择支付宝、微信支付、银行卡支付时,请遵守相关支付宝、微信支付、财付通的规定进行操作。您在支付宝、微信支付、财付通页面上进行的任何操作及其产生的
+任何法律后果,将按照您与支付宝、微信支付、银行卡之间签订的合同处理。本网站不承担任何责任。
+