超级签充值业务迁移mobile目录下

master
zhengchanglong 5 years ago
parent cdc7e284da
commit 8de8da4f38

@ -1,5 +1,7 @@
<?php
namespace Mobile\Controller;
use Org\Ipa365SDK\Ipa365;
use Org\WeixinSDK\Weixin;
use User\Api\MemberApi;
class SsgController extends BaseController {
@ -17,6 +19,7 @@ class SsgController extends BaseController {
const CODE_ERROR = -97; //验证码错误
const RETURN_SUCCESS = 1;
const RETURN_FALSE = 2;
const signprice = 10;
public function login()
@ -35,7 +38,10 @@ class SsgController extends BaseController {
if ($promoteId) {
$exists = M("promote", "tab_")->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();
}
}

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1, maximum-scale=1, user-scalable=no">
<title>错误信息</title>
<link href="__CSS__/ssg/common.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="blank-box">
<div class="title">
<img class="gologin" src="__IMG__/ssg/alipay/back.png" onclick="javascript:history.go(-1)">
<div class="content">错误信息</div>
<div class="titleright"></div>
</div>
<div class="cell-box">
<img src="__IMG__/ssg/error.png">
</div>
<p>{$error}</p>
<!--<div class="resbtn">
<a href="#">
刷新页面
</a>
</div>-->
</div>
</body>
<script src="__JS__/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="__JS__/ssg/common.js" type="text/javascript"></script>
<script>
</script>
</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) {

@ -0,0 +1,75 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>订单详情</title>
<link href="__CSS__/ssg/common.css" rel="stylesheet" type="text/css">
<script src="/Public/Mobile/js/ssg/flexible.min.js" type="text/javascript"></script>
</head>
<body class="install-box">
<div class="title" >
<img class="gologin" src="__IMG__/ssg/alipay/back.png" style="margin-left:.24rem;" onclick="javascript:history.go(-1)">
<div style="font-size: .32rem;color: #fff;">{$game['game_name']}</div>
<div class="titleright" style="margin-right:.24rem;"></div>
</div>
<div class="page-container ">
<div class="vip-download">
<div class="game-info" style="padding: .3rem;width: 6.9rem;height: 3.4rem;font-size: .28rem;margin: auto;">
<img src="__IMG__/ssg/detail/download-bg.png">
<div class="game-icon" style="top:.5rem;"><img src="{$game['icon']|get_cover='path'}"></div>
<div class="game-title">{$game['game_name']}-超级签</div>
<div class="game-rule">不同设备需要分别付费安装哦,请使用常用设备下载</div>
<div class="download-button"><a href="{$url}">下载安装</a></div>
</div>
<if condition="$giftbag">
<div style="padding:0 .3rem;">
<div class="game-gift shaddowbox">
<div class="title-3">
<h2>特权礼包</h2>
</div>
<div class="gift-list">
<ul>
<li >
<div class="gift-title">
<h2>{$giftbag['gift_name']}</h2>
</div>
<p class="gift-info">{$giftbag['desribe']}</p>
<p class="gift-code">
<label for="giftCode">兑换码:</label>
<input id="giftCode1455" type="text" value="{$giftbag['novice']}" readonly="">
<a href="javascript:;" class="code-btn1455" data-clipboard-target="#giftCode1455">复制兑换码</a>
</p>
</li>
</ul>
</div>
</div>
</div>
</if>
</div>
</div>
<script src="__JS__/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="__JS__/ssg/clipboard.min.js" type="text/javascript"></script>
</body>
<script>
var clipboard = new ClipboardJS(".code-btn1455");
clipboard.on('success', function (e) {
alert("复制成功");
});
clipboard.on('error', function (e) {
var ua = navigator.userAgent;
var isIOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
if (isIOS && ua.match(/os\s+(\d+)/i)[1] - 0 < 10) {
alert("您的系统版本过低,请手动复制下方地址");
}
});
</script>
</html>

@ -28,7 +28,7 @@
</div>
<if condition="$data['pay_status'] eq '1'">
<a href="/sdk.php/Ipa365/install_show.html?order_id={$data.order_id}&game_id={$data['game_id']}">
<a href="/mobile.php/Ssg/install_show.html?order_id={$data.order_id}&game_id={$data['game_id']}">
<div class="flexitem gamebox">
<img src="{$data['icon']|get_cover='path'}">
<div class="gameboxname">{$data['game_name']}-超级签</div>
@ -44,7 +44,7 @@
</div>
<else />
<if condition="$data['pay_status'] eq '0' and $data['invalid'] eq 0">
<a href="/sdk.php/Ipa365/pay/game_id/{$data['game_id']}">
<a href="/mobile.php/Ssg/pay/game_id/{$data['game_id']}">
<div class="flexitem gamebox">
<img src="{$data['icon']|get_cover='path'}">
<div class="gameboxname">{$data['game_name']}-超级签</div>

@ -0,0 +1,179 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="initial-scale=1, width=device-width, maximum-scale=1, minimum-scale=1, user-scalable=no">
<title>支付中心-网上支付 安全快速!</title>
<link href="__IMG__/ssg/favicon.ico" type="image/x-icon" rel="shortcut icon">
<link href="__CSS__/ssg/pay-center.css" rel="stylesheet" type="text/css">
<link href="__CSS__/ssg/common.css" rel="stylesheet" type="text/css">
<script src="/Public/Mobile/js/ssg/flexible.min.js" type="text/javascript"></script>
<script src="__JS__/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="__JS__/jquery.base64.js" type="text/javascript"></script>
</head>
<style>
body{
min-height: 100vh;
background-color: #F5F5F5;
}
.m-order{
background-color: #F5F5F5;
}
.title{
display: flex;
height: .9rem;
width: 100%;
justify-content: space-between;
align-items: center;
background-color: #21B1EB;
}
.title img,
.titleright {
width: .3rem;
height: .3rem;
}
.order-payinfo-item{
border-top: 1px solid #f5f5f5;
}
</style>
<body>
<!-- <div class="topbar">
<div class="topcon auto">
<h1 class="pay-logo">
<img src="__IMG__/ssg/alipay/pay-logo.png" alt="Logo"></h1>
</div>
</div> -->
<div class="title" >
<img class="gologin" src="__IMG__/ssg/alipay/back.png" style="margin-left:.24rem;" onclick="javascript:history.go(-1)">
<div style="font-size: .32rem;color: #fff;">{$game_name}</div>
<div class="titleright" style="margin-right:.24rem;"></div>
</div>
<!-- 其他通道 -->
<div class="container-pay">
<div class="auto">
<div class="orders-summary">
<div class="orders-name">超级签购买</div>
<div class="orders-desc">订单描述:<span>{$order_id}</span></div>
<div class="total-money">应付金额:<strong>{$price}</strong></div>
</div>
<div class="order-checkbank">
<div class="order-checkbank-con">
<div class="order-checkbank-tit">请选择付款方式:</div>
<ul class="order-checkbank-list">
<li>
<a href="/sdk.php/Ipa365/dopay/game_id/{$game_id}/pay_type/ali"
title="支付宝">
<img src="__IMG__/ssg/alipay/zfb-icon.png" alt="支付宝">
</a>
</li>
</ul>
</div>
<div class="order-checkbank-mid">
<p class="odd">请选择支付方式。建议选择使用支付宝、微信支付、银行卡,支付请直接点击相应付款按钮。如果您使用支付宝账户支付,请点击“支付宝”按钮。</p>
<p class="odd">如果您选择支付宝、微信支付、银行卡支付时,请遵守相关支付宝、微信支付、财付通的规定进行操作。您在支付宝、微信支付、财付通页面上进行的任何操作及其产生的</p>
<p>任何法律后果,将按照您与支付宝、微信支付、银行卡之间签订的合同处理。本网站不承担任何责任。</p>
</div>
</div>
</div>
</div>
<!-- 微信回调弹框 -->
<div id="alert_box" style="height: 100vh;background:rgba(41,41,41,.8);position:fixed;z-index:9999;top: 0px;width: 100%;" hidden>
<div style="top:50%;margin-top: -1.5rem;position: fixed;width: 6.3rem;left: 50%;margin-left: -3.2rem;background-color: #fff;border-radius:.3rem;">
<img onclick="closeAlert()" src="__IMG__/ssg/alipay/close.png" style="width: .3rem;height: .3rem;position: absolute;left: .3rem;top: .3rem;">
<div style="line-height:1.4rem;font-size:.32rem;text-align: center;">
请确认微信支付是否已完成
</div>
<a href="{$callback}" style="line-height:1rem;font-size:.28rem;text-align: center;color: red;width: 100%;display: block;border-top: 1px solid #f5f5f5;border-bottom: 1px solid #f5f5f5;">
已完成支付
</a>
<a href="javascript:location.reload();" style="height:1rem;line-height:1rem;font-size:.28rem;text-align: center;color: #A9A9A9;width: 100%;display: block;">
支付遇到问题,重新支付
</a>
</div>
</div>
<!-- 触屏订单通道 -->
<div class="m-order">
<div style="padding: .3rem;">
<div style="width: 6.9rem;height: 1.7rem;background-color: #fff;border-radius:10px;margin: auto;font-size: .28rem;color:#292929;">
<div style="display: flex;height: .8rem; justify-content: space-between;align-items:center;padding: 0 .3rem;">
<div>订单名称:</div>
<div>超级签购买</div>
</div>
<div style="display: flex;height: .8rem; justify-content: space-between;align-items:center;padding: 0 .3rem;">
<div>订单金额:</div>
<div>{$price}元</div>
</div>
</div>
</div>
<div class="m-order-payinfo" style="width: 6.9rem;margin:auto;border-radius:10px;border: 0px;">
<div class="payinfo-tit" style="display: flex;justify-content: space-between;">
<label style="font-weight: normal;color:#292929;">还需支付: </label>
<span>{$price}</span>
</div>
<a class="order-payinfo-item"
href="#;" onclick="jump('/mobile.php/Ssg/dopay/game_id/{$game_id}/pay_type/ali')"
title="支付宝" style="padding: .3rem 0;width: 6.3rem;margin-left: .3rem;">
<div class="order-payinfo-icon" style="width: .7rem;height: .7rem;">
<img src="__IMG__/ssg/alipay/zfb-pic.jpg" style="width: 100%;height: 100%;border: 0px;" alt="支付宝">
</div>
<div class="order-payinfo-con" style="margin-left: .21rem;">
<div class="pay-title">支付宝支付</div>
<div class="pay-meta">推荐支付宝用户使用</div>
</div>
</a>
<a class="order-payinfo-item"
href="#;" onclick="jump('/mobile.php/Ssg/dopay/game_id/{$game_id}/pay_type/wx')"
title="微信支付" style="padding: .3rem 0;width: 6.3rem;margin-left: .3rem;">
<div class="order-payinfo-icon" style="width: .7rem;height: .7rem;">
<img src="__IMG__/ssg/alipay/wxpay.png" style="width: 100%;height: 100%;border: 0px;" alt="微信支付">
</div>
<div class="order-payinfo-con" style="margin-left: .21rem;">
<div class="pay-title">微信支付</div>
<div class="pay-meta">推荐微信用户使用</div>
</div>
</a>
</div>
</div>
<!--<div class="footer-pay">
<p>海南万盟天下科技有限公司 版权所有 ©2019 支付中心</p>
</div>-->
</body>
<script>
function jump(pay_url) {
window.location.href = pay_url;
/*if(paytype=='alipay'){
window.location.href = pay_url;
}else{
showAlert();
window.location.href = pay_url;
//window.open(pay_url,"_blank");
}*/
/*if(isWeiXin()){
window.location.href = "/sdk.php/Ipa365/paytip/order_id/"+order_id;
}else{
window.location.href=pay_url;
}*/
}
//判断是否是微信浏览器的函数
function isWeiXin(){
//window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息这个属性可以用来判断浏览器类型
var ua = window.navigator.userAgent.toLowerCase();
//通过正则表达式匹配ua中是否含有MicroMessenger字符串
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
}
function closeAlert(){
$("#alert_box").hide();
}
function showAlert(){
$("#alert_box").show();
}
</script>
</html>

@ -788,4 +788,149 @@ font-size: .16rem;color: #fff;
flex-grow: 1;
font-size: .28rem;
color: #292929;
}
}
/*# 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;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

@ -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));
Loading…
Cancel
Save