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}

+ +
+ + + + + + + \ No newline at end of file diff --git a/Application/Mobile/View/Ssg/index.html b/Application/Mobile/View/Ssg/index.html index 323382d96..8bf3503cc 100644 --- a/Application/Mobile/View/Ssg/index.html +++ b/Application/Mobile/View/Ssg/index.html @@ -134,7 +134,7 @@ var index = { getgamelist(){ $.ajax({ type: 'POST', - url: 'mobile.php?s=/Ssg/getGamaList.html', + url: 'mobile.php/Ssg/getGamaList.html', dataType: 'JSON', data:index.select, success: function (result) { @@ -181,11 +181,12 @@ $(".pay-button").on("click",function(){ if(inres > -1){ alert("亲~您已购买过了~请到【订单查询】查看订单信息哟~"); }else{ - location.href = "/sdk.php/Ipa365/pay/game_id/"+index.choose.game_id; + alert("mobile.php/Ssg/pay/game_id/"+index.choose.game_id); + location.href = "mobile.php/Ssg/pay/game_id/"+index.choose.game_id; } }) $("#logout").on("click",function(){ - location.href = "mobile.php?s=/Ssg/logout.html"; + location.href = "mobile.php/Ssg/logout.html"; }) function throttle(fun, delay) { diff --git a/Application/Mobile/View/Ssg/install_show.html b/Application/Mobile/View/Ssg/install_show.html new file mode 100644 index 000000000..563332679 --- /dev/null +++ b/Application/Mobile/View/Ssg/install_show.html @@ -0,0 +1,75 @@ + + + + + + + + 订单详情 + + + + + +
+ +
{$game['game_name']}
+
+
+
+
+
+ +
+
{$game['game_name']}-超级签
+
不同设备需要分别付费安装哦,请使用常用设备下载
+ +
+ + +
+
+
+

特权礼包

+
+
+
    +
  • +
    +

    {$giftbag['gift_name']}

    +
    +

    {$giftbag['desribe']}

    +

    + + + 复制兑换码 +

    +
  • + +
+
+
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/Application/Mobile/View/Ssg/order.html b/Application/Mobile/View/Ssg/order.html index 524751f17..e8507881c 100644 --- a/Application/Mobile/View/Ssg/order.html +++ b/Application/Mobile/View/Ssg/order.html @@ -28,7 +28,7 @@ - +
{$data['game_name']}-超级签
@@ -44,7 +44,7 @@
-
+
{$data['game_name']}-超级签
diff --git a/Application/Mobile/View/Ssg/pay.html b/Application/Mobile/View/Ssg/pay.html new file mode 100644 index 000000000..c700b5223 --- /dev/null +++ b/Application/Mobile/View/Ssg/pay.html @@ -0,0 +1,179 @@ + + + + + + + 支付中心-网上支付 安全快速! + + + + + + + + + + + +
+ +
{$game_name}
+
+
+ +
+
+
+
超级签购买
+
订单描述:{$order_id}
+
应付金额:{$price}
+
+
+ +
+

请选择支付方式。建议选择使用支付宝、微信支付、银行卡,支付请直接点击相应付款按钮。如果您使用支付宝账户支付,请点击“支付宝”按钮。

+

如果您选择支付宝、微信支付、银行卡支付时,请遵守相关支付宝、微信支付、财付通的规定进行操作。您在支付宝、微信支付、财付通页面上进行的任何操作及其产生的

+

任何法律后果,将按照您与支付宝、微信支付、银行卡之间签订的合同处理。本网站不承担任何责任。

+
+
+
+
+ + + +
+
+
+
+
订单名称:
+
超级签购买
+
+
+
订单金额:
+
{$price}元
+
+
+
+ +
+ + + + \ No newline at end of file diff --git a/Public/Mobile/css/ssg/common.css b/Public/Mobile/css/ssg/common.css index 79a9f399c..8164cc6f8 100644 --- a/Public/Mobile/css/ssg/common.css +++ b/Public/Mobile/css/ssg/common.css @@ -788,4 +788,149 @@ font-size: .16rem;color: #fff; flex-grow: 1; font-size: .28rem; color: #292929; -} \ No newline at end of file +} + +/*# sourceMappingURL=common.css.map */ +/* install-box */ +.install-box .title{ + display: flex; + height: .9rem; + width: 100%; + justify-content: space-between; + align-items: center; + background-color: #21B1EB; +} +.install-box .title img, +.install-box .titleright { + width: .3rem; + height: .3rem; +} +.install-box .vip-download .game-info .game-icon img{ + width: 1.1rem; + height: 1.1rem; +} +.install-box .vip-download .game-info .game-title{ + top: 1.8rem; +} +.install-box .vip-download .game-info .game-rule{ + top: 2.24rem; +} +.install-box .vip-download .game-info .download-button{ + bottom:.5rem +} +.install-box .vip-download .game-info .download-button a{ + margin: 0 auto; + display: block; + width: 2.4rem; + height: 0.6rem; + text-align: center; + line-height: 0.6rem; + background-color: #f7ca02; + border-radius: 0.3rem; + font-size: 0.28rem; +} +.install-box .shaddowbox { + background-color: #fff; + border-radius: .16rem; + box-shadow: 0px 0px 6px 0px rgba(89, 40, 8, 0.15); +} +.install-box .vip-download .game-gift{ + padding: 0 .3rem; +} +.install-box .title-3{ + height: 0.89rem; + line-height: 0.89rem; + border-bottom-color: #f0f0f0; + border-bottom-width: 1px; + border-bottom-style: solid; +} +.install-box .title-3 h2{ + font-size: .28rem; +} +.install-box .vip-download .game-gift .gift-list li{ + padding-bottom: 0.3rem; +} +.install-box .vip-download .game-gift .gift-list li .gift-title{ + height: .84rem; + line-height:.84rem; + text-align: left; +} +.install-box .vip-download .game-gift .gift-list li .gift-title h2{ + padding-left: 0.36rem; + background-size: 0.25rem 0.25rem; + font-size: 0.28rem; +} +.install-box p,input{ + font-size: .24rem; +} +.install-box .vip-download .game-gift .gift-list li .gift-code{ + margin: 0.16rem 0.1rem 0; + padding-left: 1.3rem; + padding-right: 1rem; + height: 0.6rem; + line-height: 0.6rem; + background-color: #f5f5f5; + border-radius: 0.30rem; +} +.install-box .vip-download .game-gift .gift-list li .gift-code a{ + width: 1.78rem; + height: 0.6rem; + line-height: 0.6rem; + text-align: center; + background-color: #21B1EB; + border-radius: 0.3rem; + color: #fff; +} +.install-box .gift-info{ + font-size: .20rem; +} +.install-box .vip-download .game-gift .gift-list li .gift-code label{ + left: .28rem; +} + + +/* blank-page */ +.blank-box{ + font-size: .16rem; + color: #292929; + background-color: #fff; + min-height: 100vh; +} +.blank-box .title { + display: flex; + height: .45rem; + width: 100%; + justify-content: space-between; + align-items: center; + background-color: #21B1EB; +} + +.blank-box .title img, +.blank-box .titleright { + width: .15rem; + height: .15rem; +} +.blank-box .title img{ + margin-left:.12rem; +} +.blank-box .titleright { + margin-right:.12rem; +} +.blank-box .title .content{ + font-size: .16rem;color: #fff; +} +.blank-box .cell-box{ + width: 100%;padding:.9rem 0 0;display: flex;justify-content: center +} +.blank-box .cell-box img{ + width: 2rem;height: 1.2rem; +} +.blank-box p{ + width: 100%;font-size: .16rem;text-align: center;line-height: 1.5;margin-top: .3rem; +} +.blank-box .resbtn{ + width: 100%;padding:.35rem 0 0;display: flex;justify-content: center; +} +.blank-box .resbtn a{ + width: 1.1rem;height: .35rem;border-radius: 35px;text-align: center;color: #fff;background-color:#21B1EB;line-height: .35rem; +} diff --git a/Public/Mobile/images/ssg/alipay/back.png b/Public/Mobile/images/ssg/alipay/back.png new file mode 100644 index 000000000..899b8eae8 Binary files /dev/null and b/Public/Mobile/images/ssg/alipay/back.png differ diff --git a/Public/Mobile/images/ssg/alipay/close.png b/Public/Mobile/images/ssg/alipay/close.png new file mode 100644 index 000000000..99bfcc833 Binary files /dev/null and b/Public/Mobile/images/ssg/alipay/close.png differ diff --git a/Public/Mobile/images/ssg/alipay/wxpay.png b/Public/Mobile/images/ssg/alipay/wxpay.png new file mode 100644 index 000000000..93dc6bc76 Binary files /dev/null and b/Public/Mobile/images/ssg/alipay/wxpay.png differ diff --git a/Public/Mobile/images/ssg/error.png b/Public/Mobile/images/ssg/error.png new file mode 100644 index 000000000..14e2b543c Binary files /dev/null and b/Public/Mobile/images/ssg/error.png differ diff --git a/Public/Mobile/js/jquery.base64.js b/Public/Mobile/js/jquery.base64.js new file mode 100644 index 000000000..96b36f0d8 --- /dev/null +++ b/Public/Mobile/js/jquery.base64.js @@ -0,0 +1,122 @@ +/*! + * jquery.base64.js 0.1 - https://github.com/yckart/jquery.base64.js + * Makes Base64 en & -decoding simpler as it is. + * + * Based upon: https://gist.github.com/Yaffle/1284012 + * + * Copyright (c) 2012 Yannick Albert (http://yckart.com) + * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php). + * 2013/02/10 + **/ +;(function($) { + + var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + a256 = '', + r64 = [256], + r256 = [256], + i = 0; + + var UTF8 = { + + /** + * Encode multi-byte Unicode string into utf-8 multiple single-byte characters + * (BMP / basic multilingual plane only) + * + * Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars + * + * @param {String} strUni Unicode string to be encoded as UTF-8 + * @returns {String} encoded string + */ + encode: function(strUni) { + // use regular expressions & String.replace callback function for better efficiency + // than procedural approaches + var strUtf = strUni.replace(/[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz + function(c) { + var cc = c.charCodeAt(0); + return String.fromCharCode(0xc0 | cc >> 6, 0x80 | cc & 0x3f); + }) + .replace(/[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz + function(c) { + var cc = c.charCodeAt(0); + return String.fromCharCode(0xe0 | cc >> 12, 0x80 | cc >> 6 & 0x3F, 0x80 | cc & 0x3f); + }); + return strUtf; + }, + + /** + * Decode utf-8 encoded string back into multi-byte Unicode characters + * + * @param {String} strUtf UTF-8 string to be decoded back to Unicode + * @returns {String} decoded string + */ + decode: function(strUtf) { + // note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char! + var strUni = strUtf.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars + function(c) { // (note parentheses for precence) + var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f); + return String.fromCharCode(cc); + }) + .replace(/[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars + function(c) { // (note parentheses for precence) + var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f; + return String.fromCharCode(cc); + }); + return strUni; + } + }; + + while(i < 256) { + var c = String.fromCharCode(i); + a256 += c; + r256[i] = i; + r64[i] = b64.indexOf(c); + ++i; + } + + function code(s, discard, alpha, beta, w1, w2) { + s = String(s); + var buffer = 0, + i = 0, + length = s.length, + result = '', + bitsInBuffer = 0; + + while(i < length) { + var c = s.charCodeAt(i); + c = c < 256 ? alpha[c] : -1; + + buffer = (buffer << w1) + c; + bitsInBuffer += w1; + + while(bitsInBuffer >= w2) { + bitsInBuffer -= w2; + var tmp = buffer >> bitsInBuffer; + result += beta.charAt(tmp); + buffer ^= tmp << bitsInBuffer; + } + ++i; + } + if(!discard && bitsInBuffer > 0) result += beta.charAt(buffer << (w2 - bitsInBuffer)); + return result; + } + + var Plugin = $.base64 = function(dir, input, encode) { + return input ? Plugin[dir](input, encode) : dir ? null : this; + }; + + Plugin.btoa = Plugin.encode = function(plain, utf8encode) { + plain = Plugin.raw === false || Plugin.utf8encode || utf8encode ? UTF8.encode(plain) : plain; + plain = code(plain, false, r256, b64, 8, 6); + return plain + '===='.slice((plain.length % 4) || 4); + }; + + Plugin.atob = Plugin.decode = function(coded, utf8decode) { + coded = String(coded).split('='); + var i = coded.length; + do {--i; + coded[i] = code(coded[i], true, r64, a256, 6, 8); + } while (i > 0); + coded = coded.join(''); + return Plugin.raw === false || Plugin.utf8decode || utf8decode ? UTF8.decode(coded) : coded; + }; +}(jQuery)); \ No newline at end of file