master
ELF 5 years ago
parent 2c4bfa283a
commit ba7511897a

@ -6,6 +6,7 @@ use Org\UcenterSDK\Ucservice;
use Org\SwiftpassSDK\Swiftpass;
use Think\Log;
use Qiniu\json_decode;
use Sdk\Controller\Ipa365Controller;
/**
@ -455,6 +456,12 @@ class NotifyController extends BaseController
case 'AG':
$result = $this->set_agent($order_info);
break;
case 'SS': // 超级签
$ipa365 = new Ipa365Controller();
$result = $ipa365->pay_notify(array(
'trade_id' => $orderNo,
'order_id' => $billNo
));
default:
exit('accident order data');
break;

@ -96,7 +96,8 @@ class HomeController extends Controller
public function promitionofregestion()
{
$map['tab_game.relation_game_id'] = $_GET['gid'];
$RelationGameId = M('Game', 'tab_')->where(array('id' => $_GET['gid']))->getField('relation_game_id');
$map['tab_game.relation_game_id'] = $RelationGameId;
$map['ta.promote_id'] = $_GET['pid'];
$data = M('game', 'tab_')->field('tab_game.id,tab_game.sdk_version,tab_game.icon,tab_game.screenshot,tab_game.relation_game_id,tab_game.relation_game_name,ta.enable_status,tab_game.dow_status,tab_game.features,tab_game.flooring_page_imgs')->where($map)->join('tab_apply ta ON ta.game_id = tab_game.id and ta.promote_id=' . $_GET['pid'])->select();

@ -243,7 +243,7 @@
</if>
<?php $downloadUrl = get_apply_dow_url($vo['id'],$vo['promote_id']);?>
<span class="game-link" data-qrcode="{:U('Apply/qrcode',['url'=>base64_encode(base64_encode($downloadUrl)),'logo'=>$qrcode])}" data-url="{$downloadUrl}" style="cursor: pointer;margin-right: 10px;"><u>复制下载链接</u></span>
<?php $flooringPageUrl = 'http://'.C('APPLY_DOWN_DOMAIN').U('Home/promitionofregestion',array('gid'=>$vo['relation_game_id'],'pid'=>$vo['promote_id']));?>
<?php $flooringPageUrl = 'http://'.C('APPLY_DOWN_DOMAIN').U('Home/promitionofregestion',array('gid'=>$vo['id'],'pid'=>$vo['promote_id']));?>
<span class="game-link" data-qrcode="{:U('Apply/qrcode',['url'=>base64_encode(base64_encode($flooringPageUrl)),'logo'=>$qrcode])}" data-url="{$flooringPageUrl}" style="cursor: pointer;margin-right: 10px;"><u>落地页链接</u></span>
<span class="down-game-btn" data-id="{$vo.id}" style="cursor: pointer;margin-right: 10px;color: #999"><u>下架</u></span>
</div>

@ -20,6 +20,10 @@ class SsgController extends BaseController {
public function login(){
$user = session("user_auth");
if ($user) {
redirect(U("ssg/index"));
}
$this->display();
}
@ -56,6 +60,7 @@ class SsgController extends BaseController {
$res_msg = "未知错误";
}
}
$_SESSION['user_id'] = $user_id;
$this->ajaxReturn(array("ErrorCode"=>$res_code,"ResultMsg"=>$res_msg),'JSON');
}
@ -80,16 +85,32 @@ class SsgController extends BaseController {
//首页
public function index(){
$map['user_id']= 24;
$map['sdk_version'] = 2;
$game_list = M("user_play","tab_")->where($map)->select();
$user = session("user_auth");
if (!$user) {
redirect(U("ssg/login"));
//$this->error("请登入", U('ssg/login'));
}
$map['a.user_id']= $user['user_id'];
$map['a.sdk_version'] = 2;
$game_list = M("user_play a","tab_")->field("b.*,b.id as game_id")->join("tab_game b on a.game_id=b.id")->where($map)->select();
$this->assign("data_list",$game_list);
$this->display();
}
public function order(){
$order_list = M("game_supersign","tab_")->where('user_id=24')->order("id")->select();
$this->assign("data_list",$order_list);
//.echo md5(sha1('123456') . 'UmtW6-Z(S^8xvwDn;B:J{X7FG9z2+Np.|C#~QRY"');exit();
$user = session("user_auth");
if (!$user) {
redirect(U("ssg/login"));
//$this->error("请登入", U('ssg/login'));
}
$order_list = M("game_supersign a","tab_")->field("a.order_id, b.game_name, b.icon, b.id as game_id, a.pay_status, a.user_id")->join("tab_game b on a.game_id=b.id")->where(array(
'a.user_id' => $user['user_id'],
))->order("a.id")->select();
// pp($order_list);
$this->assign("data_list", $order_list);
$this->display();
}
@ -112,4 +133,12 @@ class SsgController extends BaseController {
public function rule(){
$this->display();
}
// 支付页面
public function alipay($data) {
$this->assign("url", $data['url']);
$this->assign("price", $data['price']);
$this->display();
}
}

@ -30,14 +30,14 @@
<div class="orders-summary">
<div class="orders-name">超级签购买</div>
<div class="orders-desc">订单描述:<span></span></div>
<div class="total-money">应付金额:<strong>10.00</strong></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="http://apipay.37376.com/PayInfo?TradeNo=201909231287508698196873231&amp;ChannelID=11&amp;SignatureStamp=1569241194&amp;SignatureMD5=371FB54D6D7B5860EFAF570F26435053"
<a href="{$url}"
title="支付宝">
<img src="./img/alipay/zfb-icon.png" alt="支付宝">
</a>
@ -60,16 +60,16 @@
<label>订单名称:</label><span>超级签购买</span>
</div>
<div class="m-order-item">
<label>订单金额:</label><span>10.00</span>
<label>订单金额:</label><span>{$price}</span>
</div>
</div>
<div class="m-order-payinfo">
<div class="payinfo-tit">
<label>还需支付: </label>
<span>10.00</span>
<span>{$price}</span>
</div>
<a class="order-payinfo-item"
href="http://apipay.37376.com/PayInfo?TradeNo=201909231287508698196873231&amp;ChannelID=11&amp;SignatureStamp=1569241194&amp;SignatureMD5=371FB54D6D7B5860EFAF570F26435053"
href="{$url}"
title="支付宝">
<div class="order-payinfo-icon">
<img src="./img/alipay/zfb-pic.jpg" alt="支付宝">
@ -82,7 +82,7 @@
</div>
</div>
<div class="footer-pay">
<p>福建云峰网络科技有限公司 版权所有 ©2016 支付中心</p>
<p>版权所有 ©2016 支付中心</p>
</div>
</body>

@ -12,7 +12,7 @@
<body>
<div class="page-container ">
<div class="top">
<a href="game.html"></a>充值帮助
<a href="javascript:history.go(-1);"></a>充值帮助
</div>
<div class="recharge-help">
<ul>

@ -11,7 +11,6 @@
<body>
<div class="page-container ">
<div class="top">
<a href="https://ssg.37376.com/Session/Login"></a>至尊版购买
<a href="{:U('order')}" class="link">订单查询</a>
</div>
<style>
@ -46,7 +45,7 @@
<volist name="data_list" id="data">
<li onclick="handleGameID('{$data.game_id}','{$data.game_name}')">
<dl>
<dt><img src="__IMG__/ssg/game/1.png"></dt>
<dt><img src="{$data['icon']|get_cover='path'}"></dt>
<dd class="product-title">{$data.game_name}-超级签&nbsp;<i></i></dd>
<dd class="product-word">至尊特权礼包(限量)</dd>
<dd class="select-btn">
@ -55,28 +54,12 @@
</dl>
</li>
</volist>
<!--<li onclick="handleGameID(603,'逐鹿大秦')" style="display: list-item;">
<dl>
<dt><img src="__IMG__/ssg/game/2.png"></dt>
<dd class="product-title">逐鹿大秦-超级签&nbsp;<i></i></dd>
<dd class="product-word">至尊特权礼包(限量)</dd>
<dd class="select-btn">
<a href="javascript:;" item-val="" class=""></a>
</dd>
</dl>
</li>
<li onclick="handleGameID(708,'天宫计')" style="display: list-item;">
<dl>
<dt><img src="__IMG__/ssg/game/3.png"></dt>
<dd class="product-title">天宫计-超级签&nbsp;<i></i></dd>
<dd class="product-word">至尊特权礼包(限量)</dd>
<dd class="select-btn">
<a href="javascript:;" item-val="" class=""></a>
</dd>
</dl>
</li>-->
</ul>
<input type="hidden" id="hdGameID" value="593">
<input type="hidden" id="hdGameID" value="{$data_list[0]['game_id']}">
<script>
</script>
</div>
</div>
<div class="interval"></div>
@ -113,7 +96,7 @@
if (!hdGameID || hdGameID == 0) {
alert("请选择游戏");
} else {
//code
location.href = "/sdk.php/Ipa365/pay/game_id/"+hdGameID;
}
}
</script>

@ -10,7 +10,7 @@
<body>
<div class="page-container container-white">
<div class="top">
<a href="https://ssg.37376.com/"></a>登录
<a href="javascript:history.go(-1);"></a>登录
</div>
<div class="login">
<div class="login-title">
@ -71,7 +71,7 @@
url:'mobile.php?s=/Ssg/do_login.html',
data: {
'Account':loginName,
'Password':$.md5(loginPass),
'Password':(loginPass),
'VerifyCode':userCode
},
dataType: 'JSON',

@ -16,31 +16,35 @@
<body>
<div class="page-container ">
<div class="top">
<a href="game.html"></a>订单查询
<a href="javascript:history.go(-1);"></a>订单查询
</div>
<div class="order-search">
<ul>
<volist name="data_list" id="data">
<li onclick="handleOrderDetail('{$data[\'trade_id\']}','{$data[\'pay_status\']}')">
<p>订单编号:{$data.trade_id}</p>
<li onclick="handleOrderDetail('{$data[\'order_id\']}','{$data[\'pay_status\']}','{$data[\'game_id\']}')">
<p>订单编号:{$data.order_id}</p>
<dl>
<dt><img src="__IMG__/ssg/order/190507-128fb062a9694a38a457fff6fe4a4dc3.png"></dt>
<dd class="order-title">天宫计-超级签</dd>
<if condition="$data['pay_status'] eq 1">
<dt><img src="{$data['icon']|get_cover='path'}"></dt>
<dd class="order-title">{$data['game_name']}</dd>
<if condition="$data['pay_status'] eq '1'">
<dd class="order-status"></dd>
<else />
<dd class="order-pay" style="color:gray">已失效</dd>
</if>
<if condition="$data['pay_status'] eq '0'">
<a href="/sdk.php/Ipa365/pay/game_id/{$data['game_id']}"><dd class="order-pay">立即支付</dd></a>
</if>
<!--
<dd class="order-pay" style="color:gray">已失效</dd>
-->
</dl>
</li>
</volist>
</ul>
</div>
<script>
function handleOrderDetail(orderID, state) {
function handleOrderDetail(orderID, state, game_id) {
if (state == 1) {
//前往详情
window.location.href = "detail.html";
window.location.href = "/sdk.php/Ipa365/install_show/order_id/"+orderID+"/game_id/"+game_id;
}
}
</script>

@ -12,7 +12,7 @@
<body>
<div class="page-container ">
<div class="top">
<a href="order.html"></a>天宫计
<a href="javascript:history.go(-1);"></a>天宫计
</div>
<div class="vip-download">
<div class="game-info">

@ -10,7 +10,7 @@
<body>
<div class="page-container ">
<div class="top">
<a href="index.html"></a>购买流程
<a href="javascript:history.go(-1);"></a>购买流程
</div>
<div class="pay-tutorial">
<div class="tutorial-content">

@ -12,7 +12,7 @@
<body>
<div class="page-container ">
<div class="top">
<a href="game.html"></a>至尊版说明
<a href="javascript:history.go(-1);"></a>至尊版说明
</div>
<div class="vip-rule">
<ul>

@ -10,7 +10,7 @@
<body>
<div class="page-container ">
<div class="top">
<a href="index.html"></a>安装教程
<a href="javascript:history.go(-1);"></a>安装教程
</div>
<div class="install-tutorial">
<div class="tutorial-content">

@ -18,6 +18,8 @@ class BaseController extends RestController{
&&!preg_match("/wap_shortcut_pay/",GetCurUrl())
&&!preg_match("/shortcut_pay/",GetCurUrl())
&&!preg_match("/android_shortcut_pay/",GetCurUrl())
&&!preg_match("/alipay_pay/",GetCurUrl())
&&!preg_match("/Ipa365/",GetCurUrl())
){
$data = json_decode(base64_decode(file_get_contents("php://input")),true);

@ -0,0 +1,330 @@
<?php
namespace Sdk\Controller;
use Think\Controller;
use Org\Ipa365SDK\Ipa365;
use Mobile\Controller\SsgController;
// a8eeac3335cef5ee117d357738598f691932513b
class Ipa365Controller extends BaseController{
const signprice = 0.01; // 超级签价格
public function test(){
$ipa365 = new Ipa365Controller();
$result = $ipa365->pay_notify(array(
'trade_id' => "2222",
'order_id' => "SS_20190924170241aEYL"
));
pp($result);
die();
$userId = 1;
$gameId = 1;
$param['price'] = 0.01;
$param['spend_ip'] = get_client_ip();
$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'] = "http://www.baidu.com";
$param['notifyurl'] = "https://api.wmtxkj.com/callback.php/Notify/sq_callback";
$ret = $this->alipay($param);
redirect($ret['url']);
die;
/* $ipa365 = new Ipa365();
$list = $ipa365->ticketList(array(
'token' => 'Ido9idMgbZlJHMQxjSgTHWZMB00PFEus',
'limit' => 1,
));
pp($list['data']['list'][0]); */
// 授予udid下载权限并获取下载地址
$ret = $ipa365->udidRequest(array(
'token' => 'Ido9idMgbZlJHMQxjSgTHWZMB00PFEus',
'udid' => 'a8eeac3335cef5ee117d357738598f691932513b',
));
pp($ret);
$ret = $ipa365->getinfo(array(
'token' => 'Ido9idMgbZlJHMQxjSgTHWZMB00PFEus',
'udid' => 'a8eeac3335cef5ee117d357738598f691932513b',
));
pp($ret);
}
public function pay_notify_test() {
$this->pay_notify(array(
'order_id' => 'SS_20190924102317T2jO',
'game_id' => 1,
));
}
/*
* 支付成功通知验证后调用
* return 1订单不存在 2已支付 0成功 -1数据错误
*/
public function pay_notify($data) {
$order = M('game_supersign', 'tab_')->where(array(
'order_id' => $data['order_id']
))->find();
if (!$order) return 1;
if ($order['pay_status'] == 1) return 2;
$r = M('game_supersign', 'tab_')->where(array(
'order_id' => $data['order_id'],
'pay_status' => 0,
))->save(array(
'trade_id' => $data['trade_id'],
'pay_status' => 1,
'pay_time' => time()
));
if (!$r) return -1;
return 0;
}
/*
* 发起支付
*/
public function pay() {
$userId = $_SESSION['user_id'];
if (!$userId ) {
$this->error("请登入", "/mobile.php/ssg/login");
}
$gameId = I("game_id", 0);
$price = self::signprice;
if (!$userId || !$gameId) {
$this->error("参数有误!");
}
$payLog = M('game_supersign', 'tab_')->where(array(
'user_id' => $userId,
'game_id' => $gameId,
'pay_status' => 0
))->find();
if ($payLog) {
$orderId = $payLog['order_id'];
} else {
$orderId = "SS_" . date('Ymd') . date('His') . sp_random_string(4); // 超级签
$gameInfo = M('game', 'tab_')->field('supersign_token')->where(array(
'id' => $gameId,
))->find();
if (!$gameInfo['supersign_token']) {
return "超级签token未填写";
}
$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;
}
$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'] = "http://192.168.11.14:8088/sdk.php/Ipa365/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}";
$param['notifyurl'] = "https://api.wmtxkj.com/callback.php/Notify/sq_callback";
$this->alipay($param);
$ret = $this->alipay($param);
$this->assign("price", self::signprice);
$this->assign("url", $ret['url']);
$this->assign("order_id", $orderId);
// pp($orderId);
// redirect($ret['url']);
$this->display();
}
/**
* 下载页面 判断订单是否支付成功
*/
public function install_show() {
$orderId = I('order_id', 0);
$gameId = I('game_id', 0);
$userId = $_SESSION['user_id'];
if (!$userId ) {
$this->error("请登入", "/mobile.php/ssg/login");
}
if (!$orderId || !$gameId || !userId) {
$this->error("参数校验失败,请重试");
}
$supersign = M('game_supersign', 'tab_')->where(array('order_id' => $orderId))->find();
if (!$supersign) {
$this->error("订单不存在");
}
if ($supersign['pay_status'] != 1) {
$this->error("订单未支付");
}
$game = M('game', 'tab_')->where(array('id' => $gameId))->find();
$this->assign('game', $game);
$this->assign('url', U('Ipa365/install', array(
'order_id' => $orderId,
'user_id' => $userId,
'game_id' => $gameId
)));
$this->display();
}
/**
* 获取用户安装历史url
*/
public function get_install_list() {
$gameId = I('game_id', 0);
$where = array(
'pay_status' => 1,
'ticket' => array('neq', '')
);
if ($id) $where['game_id'] = $gameId;
$list = M('game_supersign', 'tab_')->where($where)->select();
// pp($list);
$url = $game['supersign_url']."?code={$code}";
pp($url);
redirect($url);
}
/**
* 用户点击安装
*/
public function install() {
$userId = $_SESSION['user_id'];
if (!$userId ) {
$this->error("请登入", "/mobile.php/ssg/login");
}
$gameId = I('game_id', 0);
$orderId = I('order_id', 0);
if (!$userId || !$gameId || !$orderId) {
$this->error("参数有误!");
}
M()->startTrans();
// 获取支付记录
$gamesign = M('game_supersign', 'tab_')->where(array(
'order_id' => $orderId,
'user_id' => $userId,
'game_id' => $gameId,
'pay_status' => 1,
))->find();
if (!$gamesign) {
// pp(M('game_supersign', 'tab_')->_sql());
$this->error("支付记录不存在");
}
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();
// 调用第三方连接
// pp($url);
redirect($url);
}
/*
* 打包列表
*/
public function pay_list() {
$userId = 0;
$list = M('game_supersion', 'tab_')->where(array(
'user_id' => $userId,
))->select();
$this->assign("list", $list);
$this->display();
}
// 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_;
}
}

@ -0,0 +1,52 @@
<!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">
</head>
<body>
<div class="page-container ">
<div class="top">
<a href="javascript:history.go(-1);"></a>{$game['game_name']}
</div>
<div class="vip-download">
<div class="game-info">
<img src="__IMG__/ssg/detail/download-bg.png">
<div class="game-icon"><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>
<!-- <div class="game-gift">
<div class="title-3">
<h2>特权礼包</h2>
</div>
<div class="gift-list">
<ul>
<li>
<div class="gift-title">
<h2>《天宫计》至尊礼包</h2>
</div>
<p class="gift-info">[ 高级宝图*2、财神银匙*1 ]</p>
<p class="gift-code">
<label for="giftCode">兑换码:</label>
<input id="giftCode1455" type="text" value="GNM6BWJS" readonly="">
<a href="javascript:;" class="code-btn1455" data-clipboard-target="#giftCode1455">复制</a>
</p>
</li>
</ul>
</div>
</div> -->
</div>
</div>
<script src="__JS__/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="__JS__/ssg/common.js" type="text/javascript"></script>
<script src="__JS__/ssg/clipboard.min.js" type="text/javascript"></script>
</body>
</html>

@ -0,0 +1,89 @@
<!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="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<meta name="format-detection" content="email=no">
<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">
<script src="__JS__/jquery-1.11.1.min.js" type="text/javascript"></script>
</head>
<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="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="{$url}"
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 class="m-order hidden">
<div class="m-order-base">
<div class="m-order-item">
<label>订单名称:</label><span>超级签购买</span>
</div>
<div class="m-order-item">
<label>订单金额:</label><span>{$price}元</span>
</div>
</div>
<div class="m-order-payinfo">
<div class="payinfo-tit">
<label>还需支付: </label>
<span>{$price}元</span>
</div>
<a class="order-payinfo-item"
href="{$url}"
title="支付宝">
<div class="order-payinfo-icon">
<img src="__IMG__/ssg/alipay/zfb-pic.jpg" alt="支付宝">
</div>
<div class="order-payinfo-con">
<div class="pay-title">支付宝</div>
<div class="pay-meta">支持支付宝</div>
</div>
</a>
</div>
</div>
<div class="footer-pay">
<p>版权所有 ©2016 支付中心</p>
</div>
</body>
</html>

@ -0,0 +1,223 @@
html { height: 100%; color: #000; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; font-size: 100px; }
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td, hr, button, article, aside, details, figcaption, figure, footer, header, menu, nav, section { margin: 0; padding: 0; }
article, aside, details, figcaption, figure, footer, header, menu, nav, section { display: block; }
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
body, button, input, select, textarea { /*font:12px/1.5 tahoma, arial, "Hiragino Sans GB", \5b8b\4f53;*/ line-height: 1.5; font-size: 0.12rem; font-family: "Helvetica Neue", Helvetica, Arial, Sans-serif; }
body { height: 100%; font-family: "Microsoft YaHei"; color: #333; min-height: 100%; background-color: #f9f9f9; }
input, select, textarea { font-style: 100%; }
table { border-spacing: 0; border-collapse: collapse; }
th { text-align: inherit; }
fieldset, img { border: 0; }
iframe { display: block; }
abbr, acronym { border: 0; font-variant: normal; }
del { text-decoration: line-through; }
address, caption, cite, code, dfn, em, th, var { font-weight: 500; font-style: normal; }
ol, ul { list-style: none; }
caption, th { text-align: left; }
h1, h2, h3, h4, h5, h6 { font-weight: 500; font-size: 100%; }
q:before, q:after { content: ""; }
sub, sup { position: relative; vertical-align: baseline; font-size: 75%; line-height: 0; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }
ins, a { text-decoration: none; }
code, kbd, pre, samp { font-size: 1em; font-family: monospace, serif; }
.f-fl { float: left; }
.f-fr { float: right; }
.fl { width: 49%; float: left; }
.fr { width: 49%; float: right; }
a, input, textarea { outline: none; -webkit-tap-highlight-color: transparent; color: #333; }
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #bbb; }
.title-1 { margin: 0.17rem auto 0; width: 1.12rem; height: 0.27rem; background-image: url("/Content/images/title-bg.png"); background-repeat: no-repeat; background-size: 100%; }
.title-1 h2 { line-height: 0.27rem; text-align: center; font-size: 0.18rem; font-weight: bold; color: #fff; }
.title-2 { overflow: hidden; padding: 0 0.15rem; height: 0.45rem; line-height: 0.45rem; font-size: 0.14rem; background-color: #fff; border-bottom-color: #f0f0f0; border-bottom-width: 1px; border-bottom-style: solid; }
.title-2 h2 { font-weight: bold; }
.title-2 a { display: block; width: 100%; }
.title-2 span { padding-right: 0.15rem; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAVCAYAAAByrA+0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADXSURBVDhPlZO7CgIxEEXzO4KFiIUg1jYKFhYWFjYi/lA2u/sL+lkiPhDFRvF5BiadA8mFIZvcezLsZuNCCGvqWFXVwKVIwmVZfqk70FCXbRHqE74JBPxgHKtlqyiKHsFrhJhP1LJFpy7ARSDqSU3VssXuHYJngXh+UTO1bBFqA5wiROe5WrYItQgfBKLezBdq2fLeNwnvtdOHWqllq67rBsAuQoxLtWwRHAmg0FaX/yurQ9Y7ZH0lgunnQCD9pNkp/V/K+lvZOe8+EMq7cQQ3AhFOuNPO/QCFA/RBgCHM6wAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-position: right center; background-size: 0.06rem 0.11rem; color: #999; }
.title-3 { height: 0.35rem; line-height: 0.35rem; border-bottom-color: #f0f0f0; border-bottom-width: 1px; border-bottom-style: solid; }
.title-3 h2 { font-size: 0.14rem; font-weight: bold; }
.page-container { width: 750px; margin: 0 auto; }
.page-container.container-white { min-height: 100%; background-color: #fff; }
@media screen and (max-width: 750px) { .page-container { width: auto; } }
.top { position: relative; height: 0.4rem; line-height: 0.4rem; background-color: #fff; border-bottom-color: #f5f5f5; border-bottom-width: 2px; border-bottom-style: solid; text-align: center; font-size: 0.16rem; font-weight: bold; }
.top a { position: absolute; left: 0.15rem; top: 50%; display: block; margin-top: -0.07rem; width: 0.08rem; height: 0.14rem; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAbCAYAAAB1NA+iAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEqSURBVDhPpZW9bsIwFIXbd+jExtquzB2RGCt1rcqM1B2JB0CsSewkr9IHYWSDiSVVGZAQ5lg6V7ptgjHxJ13l59zjm1zHzsO91HX9ZIz5RvxYa+e8HUee5wOY1gjH+KV0myzLhjBslNnhKSzlMGVZPsOw1WaEcc49MuU6VVWNkLzXZlReUg5TFMUrDI02I+Iah8QJKh3EiPMzYkY5DCq/I/mozCccPymHgXlKg5iPfkDKYZD8hTgrs3+FCeUwSF6IkdH4JlK+jp9LJK/+mfd++pgSBpWX2ozrHSq/UL4N31MPMKYUR/ITJPdAQOV+s6DBIK3vAHFfT1C19SViOb9RjgODdK2FD8pxwNB/NQq+iTD32w+EpB1JSNoThaRdWej4LzSU4vn7Z7LzC4cwkiEDZJ55AAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-size: 100%; }
.top .link { left: auto; right: 0.15rem; top: 0; width: auto; height: auto; margin: 0; color: #1296db; font-size: 0.13rem; background: none; }
.footer { padding-top: 0.1rem; height: 0.62rem; background-color: #101010; box-sizing: border-box; }
.footer p { color: #fff; text-align: center; text-decoration: none; opacity: 0.27; line-height: 2; }
.footer .footer-up { font-size: 18px; }
.footer .footer-down { font-size: 14px; }
@media screen and (max-width: 750px) { .footer { padding-top: 0.08rem; }
.footer .footer-up { font-size: 12px; line-height: 1.5; }
.footer .footer-down { font-size: 12px; transform: scale(0.8); line-height: 1.6; } }
.index-up { position: relative; }
.index-up img { width: 100%; display: block; }
.index-up .button { position: absolute; left: 50%; bottom: 0.84rem; margin-left: -0.76rem; display: block; width: 1.52rem; height: 0.46rem; background-image: url("/Content/images/transaction-btn.png"); background-repeat: no-repeat; background-size: 100%; }
.index-up .link-list { position: absolute; width: 100%; left: 0; bottom: 0.4rem; overflow: hidden; }
.index-up .link-list li { float: left; width: 50%; text-align: center; }
.index-up .link-list li a { display: inline-block; padding-left: 0.27rem; height: 0.2rem; line-height: 0.2rem; font-size: 0.16rem; font-weight: bold; color: #3e3b42; }
.index-up .link-list li:nth-of-type(1) a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAARtSURBVFhHxVlLaBVXGM5VKL6q4GOhgoUus+kiJN7M496cc5OSRYsgvQs3btyZhRvBJ0gXiujKRxdV0G7qo2kLbSkG7LKLbqstJC0KuvSFQRGNmvb75v4zc+ZxJ3MmufrBT4bz/9/3/+d5z0z6quHYMr+uh3xXHWy4arLhqD/x97HvqJc0Pnfa9PeM8byR7eQIuXfQdb0VCY8j+T0k/8/KwCGXGiK3dGg2mxuR4FxndHKSW1igAS1qivzi4A3rL9DzR3nJxOaQcAZ/p3xHf0fjs7TNSUzGqEltSWOPdru93Hf12S7iT+G70PRa42NjY6uFkgF9jGEsOXlaHE3mEko51Ov1lRD9KSuoZhuOPjw0NL5WQkuDHHIDjZQuczGnhBZDRi5bnKN+8X1/s4RVBjWg/2tanzlLjSQC09M6j+k5BFetE7EkqFGT2mYu5hZ/PpqebpsEGIrTe8S95KA2c5g5WYO4k2gNtjZgjTwwg7lmxN0zdNZlIueDev3T9eKOgTV23gzEefUzmnOnVQ2rjxBzCiMwUbRuZD1PMJYcaU6jxlxmbtYivg5cd3QbHMaZpWYdZ3SLuDOAAH/GpCP6el6RbIPOtSjO1bfFlQFzJXe3esWaxB0M84nYSbFgU3RF+qhIF5kurmNqVty5kE0Tx6MmcR1bhhG5Hzp4oC50ziFuXyQU8qTI/OIC2yf0XATnpNlx1BRcMHgrMUQ4FReEUwh0BDeZmBdwUSQt077AjIRAgRcTPNSWGVr+NEn8gsgrMm1liyOYO8U9yKonjca5ot9WE6MDo+s8r/UxRuxrg58wzgZjGCu0QjA3eOZmneRheTtu0NMSWwj07ChiEwfsAjaPRX9E6IVA7HTIC3Y+kkVXKZxHNySuEIh7HnLKGjlCLwRip2KOfsgpfhU24PmaxBUCo/F7zClp4Ai9EOYmQ6deVirQ87xNiD8AgZOhoYD4ZxLPCR9iyRF6IbjuIh1XvU1MMWxK4qwBnVuhDp+l2Rro3G9xPepxpU0C4k4cpHch9iQ0jNSbUCd4NnxBLDhCLwRi/47qcfRfqSEtd8ykRr2UkSP0rhgY+GwV1uDriOOoH5nM+qAG8R+TU8ocNSP0rkgf1BjBw5V+6lxXfYKefotCb8amn0UaeE75rpAj9K5A7ktmLY3h1iCa7S8LeeDGMDSsNwnek9cwd6iBmu6guXMfxVBaXbfysNgCwdlv1sCaxGV/Yc0DevyNwb8szaXAKxqWwcOYr19k3iAR8JURwB3U9cqfB8dxPsQofAk7ymdpLoX+/vYHLCrK7eoz4orxvl6aQmDUd6Owf2F4ic95aSLe0WtnDR0/Dfuj4Y3slbbyQEE9fXH3nZEdCX3bWQoWbA8/fUDr86y2ZZG9+HhkoAadqxntiiO5qM9v3dD1za/KpuTGQUFWHzBL2g84yqIbUGSVilzCT8AlbN4fVo6ktgM/gKOHJ1Cs/Ud0C2t6apekrArz3xDBvxpuofAnWFfG64O9Ydpf8xcMM7aik6ev73+Fz4eQaHSQWwAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-position: left center; background-size: 0.2rem 0.2rem; }
.index-up .link-list li:nth-of-type(2) a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAkCAYAAADl9UilAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKeSURBVFhH7Zi/i9RAFMd3TxEbCxErEVSsDqxEbp1MEt8ED+1s1kLBzkorGwvBa7WyURQVQfwBB/cXaGmlIGItWCmohaj469Rb/b7kTZK9TXY32bkNyH3hQTLvx3x2ZpKZbGuYut3uBt+jy4FHbwPP/HVhvqKfsCe4PirdVFMMpczD1YUdWs9X0UnpbjwJ1N2CYo6Nlv2DZKTbkWr7nrmTS/6GoZ8X38QKdXSEgWx91P6q9aE5cZeqHSi6nSWZHy6hrHgKUb9n+wmU+RB2wr3iHhBD3UiDk19Vb4GOIczKmawvDIJnXmmtt4s7URiGm+G4mQ/kJxGj9XgtjZdJvk+8AZ6lcLjYCqgX+YBGTdHr6EC0DfNtrhUGNGmKrmKu6Z1t4HnXmvY3Yf1rjt63shvzJZ7bBsUMlicFw8h9En9jYganYLxTYF1cQZ0lraM90lxZzsGSt3lSh9+F0lxZzsGwWE+kdZR5IM2VtQ5WVf8j2MIMb2Fyk2oUGOdgP94ot6WqBcaFAfAUsTh50iU0tRPPcDAcaS7Av4Kn9SUfFqS5UPXA5sJdNjYxujc7293EvhIwHDj5eyHN6fn+/E7xFaoWGAsAt2x8nKPokVJqyyDYwgzarudie9gLz0qZUtUGg1YdJmGKngcqOpfWUWYRUPezGFoJFZ2W/KGaBIzFcLz9SMcxzO/smv70X9MpyRupScFi8QNgc0vsF6COS/hYcgLGwhN30eb3Gy1rbY5J2NhyBsZC7nlbQ+w7b+ririSnYCx+4mQ9fcY3YiTNleUcjOX7h3cPfH5V1JqAudA6WFX1gynzMbnBRtuJ9knM1MV9xwzMAib+4J3C303VjJlapmN2YAjfFAU0YczCTPEw8nGETwX5OZ62cd8xQ3w0arX+AQ5j9QEpgNWlAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: left center; background-size: 0.2rem 0.2rem; }
.protect-box { position: relative; }
.protect-box img { width: 100%; display: block; }
.protect-box .inner { position: absolute; left: 50%; top: 0; margin-left: -1.795rem; width: 3.59rem; height: 1.45rem; background-image: url("../img/box-bg.png"); background-repeat: no-repeat; background-size: 100%; }
.protect-box .word-list { padding-top: 0.05rem; }
.protect-box .word-list li { padding-left: 0.4rem; padding-right: 0.2rem; height: 0.25rem; line-height: 0.25rem; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABwSURBVChTlZBLDoAgDER7Ln4JuLWeynNxKHSvTJGFTRc6yUsIM/QDTSVfOPpcoyuH0M8hLOtjD/XLvQcvC3gSwisroGBUq4bxAhnM1rRh0D4Fsdyv1qwNA5bN8QWGKcCT0FRyeUOL6PIpjJFGJSK6AVGBjeVJmsLSAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: 0.23rem 0.1rem; background-size: 0.05rem 0.05rem; font-size: 0.14rem; }
.protect-box .word-list li b { font-weight: normal; color: #256dd9; }
.install-box { position: relative; }
.install-box img { width: 100%; display: block; }
.install-box .inner { position: absolute; left: 50%; top: 0; margin-left: -1.795rem; width: 3.59rem; height: 1.45rem; background-image: url("../img/box-bg.png"); background-repeat: no-repeat; background-size: 100%; }
.install-box .word-list { padding-top: 0.05rem; }
.install-box .word-list li { padding-left: 0.4rem; padding-right: 0.2rem; height: 0.25rem; line-height: 0.25rem; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABwSURBVChTlZBLDoAgDER7Ln4JuLWeynNxKHSvTJGFTRc6yUsIM/QDTSVfOPpcoyuH0M8hLOtjD/XLvQcvC3gSwisroGBUq4bxAhnM1rRh0D4Fsdyv1qwNA5bN8QWGKcCT0FRyeUOL6PIpjJFGJSK6AVGBjeVJmsLSAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: 0.23rem 0.1rem; background-size: 0.05rem 0.05rem; font-size: 0.14rem; }
.install-box .word-list li b { font-weight: normal; color: #256dd9; }
.install-box .inner { height: 1.63rem; background-image: url("../img/box-bg2.png"); }
.install-box .word-list li:first-child { height: 0.5rem; }
.download-btn img { width: 100%; display: block; }
.vip-game { margin-top: 0.1rem; background-color: #fff; }
.vip-game .vip-banner { padding: 0.1rem 0.15rem; }
.vip-game .vip-banner img { width: 100%; }
.vip-announcement { margin-top: 0.1rem; padding: 0.08rem 0.15rem 0.1rem; border-bottom-color: #f0f0f0; border-bottom-width: 1px; border-bottom-style: solid; color: #999; background-color: #fff; }
.vip-announcement i { margin-top: 0.03rem; margin-right: 0.02rem; width: 0.14rem; height: 0.11rem; display: inline-block; vertical-align: top; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAYCAYAAAAGXva8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIuSURBVEhLvVa9SxxBFB+NggSCjYVWISSedzNnmrNIE5LGQkibKv9CijRio9ilESGlQdAmKFgIsYrebBY/mkD+AklpJ4GIyd3untzk99Z5OrvseXfecj943M37+u2befMhuoExYiDU6qOpVkatSkRabYVaNqA/Dz31A/9Xou/TFWvuDcZ/PBJ5cjvylGFS478aonGW4AOOIr88EwffB8YvjKGCE07oVorka1SpS8gSevIq0vK9de0cwUFpEoG/3GQuKcP4crxRVW9g38SHhK4/xqvWrT0iXXqJgN9uApIsUhd1Xz5D9fuJOK0+WHNrhFX5DoRBItBKO1KCWRaD6IF1jqHqA79ctOYkqEPhvIRubLpErriktntrtARYw0/Nw+KENQmz8/ZBomKtvsaGoFosQDGPoIVYPLVz49RCmDSre0H8p6HLs3FyoL7//AmvMRVCPYIvTTZJJ+JWikSf090L3WXdU0+tC83GhmNfFM6gY0mvqflZGUbnvobt1PH7Ys2ioUtzrMcH6VxIGXHX3kylrNGBQnqzV3l42yPyLFdSAkiP2Y/6xapJH289/AZ9JJV/SZc7aavpbZ5MPbqNz2l6u2+kHrcMX22unabyzi2T/+GgLtoeDml0ewwi4Roq+0cz1vYY9OSeNWWjrwe+ix6vtm+JuE6uNkbfL3HGXc8VjDfT3cuCNb7fc4WR+TDD/kwTsaC6454eZozMJ6gnd6ki6K+foJjKyC++sOYMCPEfwB55D3ZxfJQAAAAASUVORK5CYII="); background-repeat: no-repeat; background-size: 100%; }
.select-product { margin-top: 0.1rem; padding: 0 0.15rem; background-color: #fff; }
.select-product .title-2 { padding: 0; }
.select-product .title-2 span { padding-right: 0.15rem; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAANCAYAAACzbK7QAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFASURBVDhPrZE/SwNREMSjouDnsImNjZWNVjZilSoIgoWlpWB5WCpcY3Pv3nXpvEqrdH4HC7+CEFAJSjyC4uW3cZ+s+IfLJQNDXnZmZ4ekURVpmjbhnXPuFq7oeDbIsmyN8B4shRy4Z7aq8nQgaJ3AxxBu2JPDaqsHgjcI6pvQLrMb8/1BCqh9MrC8BV9M2FWe50txHC/z7pp5X4roWjUkSbLN0iCE8L7kc1Hlhhxidm30Z7ip8v/w3u9iLsxyh8AFlb8gB9HkcPANpJjKvwNTCw7Nko+iaF7lH5DDeDrGX3BkR+XvQNzD9BbM8KIsyzmV/4QUkCJhj/cQtlT+BD/LAcN3YzpTqRKkiBQK+1CKtsciYYfwI4i8T8dCDbB/bnKk8L4MX83wRL21IQVDHnySgfxJcuRIPVODrGNyC+ecHwFF/jQS25xKVwAAAABJRU5ErkJggg=="); background-size: 0.12rem 0.06rem; }
.select-product .title-2 span.current { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAANCAYAAACzbK7QAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE2SURBVDhPrZK7SgNhFIRXJYLPYaONjZWNVjZiZSWCYGFpKVguKRW2SbO3Lp1baZXOd7DwFQRBRRQNorj5Jp5fjnhLYgaGbM7MfAkhUZZl7TzPn/BeNCbB2ofbxYXeCF7LHA6sM7JgNAMP3+qwi9/chzStO7TYHznOK6/b/aAoih07hPCwHwyouq4n2LXCHr/gTYvfBXTLglBqaWjxj4rjeJJtEXY8P+MNiz9LgQquXAhg8RdVVTVFR3+S0O+mabpm8ffi51pX0Y3aAln8IbIG2bHrPQJftfh3qaiBGwvUsFjffJrbqcvv8bLFg4nhCn4IEHwicJIkMzx33P0O+JLNhpOGAjhYh9uZe39dluWi1UeTAEBvHDT4imzBav+TQAIGOB94yW3e4vEI8By+AH6OZ+38h6KoB92ANBI4eRC4AAAAAElFTkSuQmCC"); }
.select-product dl { position: relative; min-height: 0.75rem; padding-left: 0.65rem; padding-right: 0.2rem; }
.select-product dl dt { position: absolute; left: 0; top: 50%; margin-top: -0.275rem; }
.select-product dl dt img { display: block; width: 0.55rem; height: 0.55rem; }
.select-product dl .product-title { padding-top: 0.12rem; line-height: 2; }
.select-product dl .product-title i { margin-top: 0.06rem; margin-left: 0.03rem; display: inline-block; vertical-align: top; width: 0.12rem; height: 0.12rem; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGuSURBVEhL7VU9SwNBED0sxEIrLUTQxr8hRsi5H0cMggTETlBrLUSsAjYWForgn7BSUBCCNipYKWIjNkGwEMHGj9xdDDnfbCZmk5wQJBaCDx6bmXnzbm5vlzg2yslkbyjlZqhUHusDuF1Op3u43IRQiFlobwMpw0Cpc1+IcS7VI8pkOiG6hjiyiaabKJXqY9kXUNtq0kpZCrTWLKkhEGLKCJT6ABfBFZqIG/dZZoB4mvPEXWgnoL3i+IhlNWAL5qgI4TO9hclVXrsyldaTlKNtQvxo8lIeRtlsB+VhvmN0Up5SXAdfqWGams0O3l13gPL4neOmS4qhWTKxUn5BiEF6GGqrYIl1y6QzoCmLnjfqS+miuEcCbi5CeAGeVXOYdANrnmOaPof6C8dk/ITtTcFrLEokumiyk2qxrZTymMzji23gHzbHRzBfud2Eb0jne51ORpzgpzR+8OUDaS7MTFGphe/45nn9pMMR646r2zSGNvDE+8YJbKJphHQF1x2Kq9s0hjaQ/Df/N4+nMbSB5K+a3zWKbLZqbq59I0Kt53FtX+MaiK2Y078T1jVj6DjOJ2ooDEPsb1+LAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: left center; background-size: 100%; }
.select-product dl .product-word { color: #666; }
.select-product dl .select-btn { position: absolute; right: 0; top: 50%; margin-top: -0.025rem; }
.select-product dl .select-btn a { display: block; width: 0.15rem; height: 0.15rem; background-color: #999; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAKCAYAAABrGwT5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACTSURBVChTlY5BDoIwEEULC+K9PBoxbLiCCxduPYVexAu4I6xa3pQ/RmKB8JKhnd95E8IRUkpNjPFGDVSneB+JD84M9zHwOVMvqiWrNLuAfCEa9HeTn+otuHLUcjL0JdH6xuTLHM38LuBcFzVQSfii/rQpOgSlBW9dM0XR4eFvgbMpOgyU/mBfdBi0BT310aIVMYQJmYhDKTRhi9sAAAAASUVORK5CYII="); background-repeat: no-repeat; background-position: center; background-size: 0.07rem 0.05rem; border-radius: 50%; }
.select-product dl .select-btn a.current { background-color: #fabb26; }
.select-product.no-item span { background: none; padding: 0; }
.not-arrived { margin-top: 0.1rem; }
.contact-customer { margin-top: 0.1rem; padding-bottom: 0.7rem; }
.pay-button { position: fixed; left: 50%; bottom: 0.15rem; width: 750px; margin-left: -375px; }
.pay-button a { display: block; height: 0.4rem; line-height: 0.4rem; text-align: center; margin: 0 0.1rem; background-color: #f7ca02; border-radius: 0.2rem; font-size: 0.14rem; }
@media screen and (max-width: 750px) { .pay-button { position: fixed; left: 0; bottom: 0.15rem; width: 100%; margin: 0; } }
.recharge-help ul { padding: 0 0.15rem; }
.recharge-help ul li { padding: 0.1rem 0; }
.recharge-help ul li i { margin-top: 0.035rem; margin-right: 0.05rem; display: inline-block; width: 0.1rem; height: 0.1rem; vertical-align: top; }
.recharge-help ul li .question i { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEySURBVDhPvZVdasJAFIVvswW3oOhG3IJbcAvdglvoFqQ76HtJEMG3PrT0odCHghZrMaNR03tumDLakxFLcOCQ3L+P+cncCIZ7lE6e3tyvs2SZZ0l5iaxGa8GoYJl08zT5ZMkXSRlgCeg04T9SlsSWWbzdlgf3UmLgCZvlea3TZCUsAO3mYwPtPu7K7evQnmarn+V7UeD2eWDFAB351Ta/xkN/KArcLx9siSwGP+IsBlHgoVjULg1+xFkMokAM7BmL+b1kMeg6M2x8D39P+eQ06/yhKBCyWerS8DFvnvrVR652bHZQLRAq3kcGwTC42iwvVBQIuWnLgOdm5nUWCPkbAijeY3c62hxC4SD23xMD46TdrP0np2oOTbcvN5FeYw1WWUHXtl/AF02OyGq01rq1iPwAMoV0zyV7fK0AAAAASUVORK5CYII="); background-repeat: no-repeat; background-size: 100%; }
.recharge-help ul li .answer { color: #666; }
.recharge-help ul li .answer i { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEOSURBVDhPtZQ9CsJAEIX3MqInM7mAF/AA9h5CCxNQbASx0tbGQhvBSgiJJsbfmDe6si6zGyO68CDMz8d7BEbgOV5acb19x/Hi0PXjrIxoh3bTCsHcflh1/DjghsuIGDlLgM4NfKWclcctH9Mkx9/vBNdQ1Z6mGd5sfWb7ugqBAB1ONxLX11UIBGi8OpFLuOVmVFmBMm5zlGSb8PpRbCsQzmRU9dsmKzBIbi9X0m1RbCOwNTkQAM4AkcCi2Eag/BH6g2tuXsoIxOJye3mrdedHgtpis0AZFwC13hgmVId7ta6KBQ4Wj7gA6D24tsU2Rv5WfzgOvz5f9V5U+9WBBet1tZ9OI33wA0W0i2sthLgDh03U+Okb99sAAAAASUVORK5CYII="); background-repeat: no-repeat; background-size: 100%; }
.vip-rule ul { padding: 0 0.15rem; }
.vip-rule ul li { padding: 0.1rem 0; }
.vip-rule ul li i { margin-top: 0.035rem; margin-right: 0.05rem; display: inline-block; width: 0.1rem; height: 0.1rem; vertical-align: top; }
.vip-rule ul li .question i { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEySURBVDhPvZVdasJAFIVvswW3oOhG3IJbcAvdglvoFqQ76HtJEMG3PrT0odCHghZrMaNR03tumDLakxFLcOCQ3L+P+cncCIZ7lE6e3tyvs2SZZ0l5iaxGa8GoYJl08zT5ZMkXSRlgCeg04T9SlsSWWbzdlgf3UmLgCZvlea3TZCUsAO3mYwPtPu7K7evQnmarn+V7UeD2eWDFAB351Ta/xkN/KArcLx9siSwGP+IsBlHgoVjULg1+xFkMokAM7BmL+b1kMeg6M2x8D39P+eQ06/yhKBCyWerS8DFvnvrVR652bHZQLRAq3kcGwTC42iwvVBQIuWnLgOdm5nUWCPkbAijeY3c62hxC4SD23xMD46TdrP0np2oOTbcvN5FeYw1WWUHXtl/AF02OyGq01rq1iPwAMoV0zyV7fK0AAAAASUVORK5CYII="); background-repeat: no-repeat; background-size: 100%; }
.vip-rule ul li .answer { color: #666; }
.vip-rule ul li .answer i { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEOSURBVDhPtZQ9CsJAEIX3MqInM7mAF/AA9h5CCxNQbASx0tbGQhvBSgiJJsbfmDe6si6zGyO68CDMz8d7BEbgOV5acb19x/Hi0PXjrIxoh3bTCsHcflh1/DjghsuIGDlLgM4NfKWclcctH9Mkx9/vBNdQ1Z6mGd5sfWb7ugqBAB1ONxLX11UIBGi8OpFLuOVmVFmBMm5zlGSb8PpRbCsQzmRU9dsmKzBIbi9X0m1RbCOwNTkQAM4AkcCi2Eag/BH6g2tuXsoIxOJye3mrdedHgtpis0AZFwC13hgmVId7ta6KBQ4Wj7gA6D24tsU2Rv5WfzgOvz5f9V5U+9WBBet1tZ9OI33wA0W0i2sthLgDh03U+Okb99sAAAAASUVORK5CYII="); background-repeat: no-repeat; background-size: 100%; }
.login { min-height: 100%; background-color: #fff; }
.login .login-title { padding-top: 0.42rem; }
.login .login-title h2 { text-align: center; font-size: 0.18rem; font-weight: bold; }
.login .login-input { margin: 0 auto; width: 2.55rem; }
.login .login-input ul { padding-top: 0.25rem; }
.login .login-input ul li { position: relative; margin-top: 0.1rem; padding-left: 0.2rem; height: 0.4rem; border-bottom-color: #f6f6f6; border-bottom-width: 1px; border-bottom-style: solid; }
.login .login-input ul li input { width: 100%; height: 100%; border: none; background: none; font-size: 14px; }
.login .login-input ul li img { position: absolute; right: 0; top: 50%; margin-top: -0.2rem; display: block; width: 0.9rem; height: 0.4rem; }
.login .login-input ul li:before { content: ""; position: absolute; left: 0; top: 50%; display: block; width: 0.15rem; height: 0.15rem; margin-top: -0.075rem; background-color: #f7ca02; background-repeat: no-repeat; background-position: center; background-size: 0.08rem 0.09rem; border-radius: 50%; }
.login .login-input ul li:nth-of-type(1):before { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAATCAYAAAB2pebxAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEkSURBVDhPnZSxSoJRGIYTpzZxDGxRugIJ7Da6BV0ac889nB0bnKNZ6BYCEbwCJyNq0cWEv57X/22Q83FSH3j5zznf8x6FH/6ziKIoGmREFmTjp/YNK3kQO+TrJ0Dn5MZqDF4NaVlWYpi/86i5koJwX6p55LmSwvDZXhZ5rqQwfLGXRZ4rKQwf7GXBG7iSwvCCrO2GaC7PlRiEW/Ltzh4619xqHsQ2mZCty1vv21byINbJldfn3HGpp/ctzbUOQa4g9MnKvz4lPXJNuhy9+XxF+iwrrpZwUGUwlnQo9qu+Yvc3B+XoONT7u6BJwrfxH+qpr0uGPjsJ+o+6ZOb9SdCf6pLw23Eo9D91id79HXkir2ROPog+QBuL+rppr3PN5cmnV7R+AfS5eKPHNGovAAAAAElFTkSuQmCC"); }
.login .login-input ul li:nth-of-type(2):before { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAATCAYAAACZZ43PAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEHSURBVDhPpZFNDgFBFIRFxHYSDkEkNi4jrKy4AjJ2LiEhsZkVpyCOYOUCgsTGulvVqGRCtx4/X1J50/XqvTGt8Iq1tmSMGUA76Cbt4PfZU8wPAhHCG1SLeoTW0lEee5HiLgwrOEUpy+bisjz2VrKfQaOlwEyWA3vKtGRlwJywCeqyHJCpMYAay8qAuUjHrS3KcmCPAWTnsjJgJmzq+BYtSHRMB6tQDB3UnIWkzB5liFrhAv7HP4HZbfqT/uHtAmw/o/QoPF9S00NowUjXxM8cy3YIfcJS88wsH5ZL8A7w5galo5e8BU1KRy95C9qUjl6CCz6BN3zV89dg9sIFHegk72P4YmNM9w6ivYiiPf5TZQAAAABJRU5ErkJggg=="); }
.login .login-input ul li:nth-of-type(3):before { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAJCAYAAAA/33wPAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABSSURBVChTrYxBDgAgCMP8/6dRl8ZAAhzUXoQVN8wxHEQBVO54BXeCKICqHXMo8qBbf4aNlgT0XRFRAFU75rSIteXc6cdCCxD9K/Kgasf8UGQ2AQDoRshGUDqyAAAAAElFTkSuQmCC"); background-size: 0.11rem 0.06rem; }
.login .login-btn { padding-top: 0.75rem; }
.login .login-btn a { margin: 0 auto; display: block; width: 2.68rem; height: 0.4rem; line-height: 0.4rem; text-align: center; background-color: #f7ca02; border-radius: 0.2rem; font-size: 0.14rem; }
.install-tutorial { padding: 0 0.15rem; background-color: #fff; }
.install-tutorial .video-link { padding-top: 0.13rem; }
.install-tutorial .video-link a { position: relative; padding-left: 0.2rem; display: block; height: 0.15rem; line-height: 0.15rem; color: #1296db; }
.install-tutorial .video-link a:before { content: ""; display: block; position: absolute; left: 0; top: 0; width: 0.15rem; height: 0.15rem; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAH8SURBVEhLxVc9S8NQFA2IilOTFBdxcHDyN4iroOLgon/FTX+ASG2S4h9wKH4sujmqkziJpe9VRCdb3QRpEaznJk9okxuTl6b2wCEh9+O893Lfy42RCoe346Yn1ixXlmxX3FiueLU92Sb69/4zWSIf8lVR2VHYfzKRcMd25RtEuqkIX4qhWJVGD5bX2FIz4wUSSLGUQ6VLgWp3DKP2uGRZiAE4lFNljwEcLE+ecAkGIZb++E9xjK7MBeZBf+YcMKpNLiBPkoaSCxBUr2hyznmSNPqq3d8yjOMwSFqBavV+Ag/eww4cLU+coeI7nE2DLdI06LRhjCwt53Fx2pHzuD8P23RouvVVHBTigDNyJOFgmfB6Ko0VxErOL4mkadieuOaMHHuFfdBrcuU29v4H5x9LV1xBWLYihhhGhBWK5doM7EdI+B2OiWHL0CmWOOFfmE59CfnuuNgQ27kKY8mXwQcuNkQI57DUhUptDofDKRcTQyz1AMU1u/cyhRnuoko/Of9YUnFl3U62W99AgmfOL4n+dtI9QOyKWEDgJWdPy6In17WOTMzwAtevyHMdojUySmLSX7bRfCSAkX0WCfSR5pzzJGkouX5gRP/f+vgYVrOHnKk6TVRebu0t5UoW7YFq6DMXHMXqNfQ9CKr9n39h+hD9aWtCoEMM7nV/2gzjBxEmzThotpvvAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-size: 100%; }
.install-tutorial .tutorial-content { padding-top: 0.1rem; }
.install-tutorial .tutorial-content .tutorial-word { position: relative; padding-left: 0.2rem; }
.install-tutorial .tutorial-content .tutorial-word i { position: absolute; left: 0; top: 0.015rem; display: block; width: 0.15rem; height: 0.15rem; text-align: center; line-height: 0.15rem; background-color: #f7ca02; border-radius: 50%; color: #666; font-style: normal; }
.install-tutorial .tutorial-content .tutorial-pic { padding-top: 0.15rem; }
.install-tutorial .tutorial-content .tutorial-pic img { margin: 0 auto 0.15rem; display: block; width: 2.15rem; }
.pay-tutorial { padding: 0 0.15rem; background-color: #fff; }
.pay-tutorial .tutorial-content { padding-top: 0.1rem; }
.pay-tutorial .tutorial-content .tutorial-word { position: relative; padding-left: 0.2rem; }
.pay-tutorial .tutorial-content .tutorial-word i { position: absolute; left: 0; top: 0.015rem; display: block; width: 0.15rem; height: 0.15rem; text-align: center; line-height: 0.15rem; background-color: #f7ca02; border-radius: 50%; color: #666; font-style: normal; }
.pay-tutorial .tutorial-content .tutorial-pic { padding-top: 0.15rem; }
.pay-tutorial .tutorial-content .tutorial-pic img { margin: 0 auto 0.15rem; display: block; width: 2.75rem; }
.pay-tutorial .pay-rule .title-1 { background-image: url("/Content/images/title-bg2.png"); }
.pay-tutorial .pay-rule .title-1 h2 { color: #333; font-size: 0.14rem; }
.pay-tutorial .pay-rule .rule-word { padding-top: 0.2rem; }
.pay-tutorial .pay-rule .rule-word p { padding-bottom: 0.15rem; }
.vip-download .game-info { position: relative; padding: 0.1rem 0.15rem; }
.vip-download .game-info img { display: block; width: 100%; }
.vip-download .game-info .game-icon { position: absolute; width: 100%; left: 0; top: 0.25rem; }
.vip-download .game-info .game-icon img { display: block; margin: 0 auto; width: 0.55rem; height: 0.55rem; }
.vip-download .game-info .game-title { position: absolute; top: 0.9rem; left: 0; width: 100%; color: #fff; text-align: center; }
.vip-download .game-info .game-rule { position: absolute; left: 0; top: 1.12rem; width: 100%; color: #f7ca02; transform: scale(0.9); text-align: center; }
.vip-download .game-info .download-button { position: absolute; bottom: 0.25rem; left: 0; width: 100%; }
.vip-download .game-info .download-button a { margin: 0 auto; display: block; width: 1.2rem; height: 0.3rem; text-align: center; line-height: 0.3rem; background-color: #f7ca02; border-radius: 0.15rem; font-size: 0.14rem; }
.vip-download .game-gift { padding: 0 0.15rem; background-color: #fff; }
.vip-download .game-gift .no-gift { padding-top: 1.18rem; height: 2.1rem; box-sizing: border-box; background-image: url("/Content/images/no-gift.png"); background-repeat: no-repeat; background-position: center 0.64rem; background-size: 0.37rem 0.35rem; color: #666; text-align: center; }
.vip-download .game-gift .gift-list li { padding-bottom: 0.15rem; border-bottom-color: #f0f0f0; border-bottom-width: 1px; border-bottom-style: solid; }
.vip-download .game-gift .gift-list li .gift-title { height: 0.32rem; line-height: 0.32rem; text-align: center; }
.vip-download .game-gift .gift-list li .gift-title h2 { display: inline-block; vertical-align: top; padding-left: 0.18rem; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGuSURBVEhL7VU9SwNBED0sxEIrLUTQxr8hRsi5H0cMggTETlBrLUSsAjYWForgn7BSUBCCNipYKWIjNkGwEMHGj9xdDDnfbCZmk5wQJBaCDx6bmXnzbm5vlzg2yslkbyjlZqhUHusDuF1Op3u43IRQiFlobwMpw0Cpc1+IcS7VI8pkOiG6hjiyiaabKJXqY9kXUNtq0kpZCrTWLKkhEGLKCJT6ABfBFZqIG/dZZoB4mvPEXWgnoL3i+IhlNWAL5qgI4TO9hclVXrsyldaTlKNtQvxo8lIeRtlsB+VhvmN0Up5SXAdfqWGams0O3l13gPL4neOmS4qhWTKxUn5BiEF6GGqrYIl1y6QzoCmLnjfqS+miuEcCbi5CeAGeVXOYdANrnmOaPof6C8dk/ITtTcFrLEokumiyk2qxrZTymMzji23gHzbHRzBfud2Eb0jne51ORpzgpzR+8OUDaS7MTFGphe/45nn9pMMR646r2zSGNvDE+8YJbKJphHQF1x2Kq9s0hjaQ/Df/N4+nMbSB5K+a3zWKbLZqbq59I0Kt53FtX+MaiK2Y078T1jVj6DjOJ2ooDEPsb1+LAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: left center; background-size: 0.12rem 0.12rem; font-size: 0.14rem; }
.vip-download .game-gift .gift-list li .gift-info { padding-left: 0.15rem; color: #999; }
.vip-download .game-gift .gift-list li .gift-code { position: relative; margin: 0.08rem 0.15rem 0; padding-left: 0.65rem; padding-right: 0.5rem; height: 0.3rem; line-height: 0.3rem; background-color: #f5f5f5; border-radius: 0.05rem; }
.vip-download .game-gift .gift-list li .gift-code label { position: absolute; left: 0.14rem; display: block; color: #999; }
.vip-download .game-gift .gift-list li .gift-code input { width: 100%; height: 100%; border: none; background: none; color: #999; }
.vip-download .game-gift .gift-list li .gift-code a { position: absolute; right: 0; top: 0; display: block; width: 0.5rem; height: 0.3rem; line-height: 0.3rem; text-align: center; background-color: #f7ca02; border-radius: 0.05rem; }
.order-search { margin-top: 0.1rem; }
.order-search .no-order { margin-top: 0.75rem; padding-top: 1rem; text-align: center; background-image: url("/Content/images/no-order.png"); background-repeat: no-repeat; background-position: center top; background-size: 0.71rem 0.8rem; font-size: 0.14rem; color: #666; }
.order-search li { padding: 0 0.15rem; margin-bottom: 0.1rem; background: #fff; }
.order-search li p { height: 0.3rem; line-height: 0.3rem; color: #999; border-bottom-color: #f0f0f0; border-bottom-width: 1px; border-bottom-style: solid; }
.order-search li dl { position: relative; min-height: 0.75rem; padding-left: 0.65rem; padding-right: 0.55rem; }
.order-search li dl dt { position: absolute; left: 0; top: 50%; margin-top: -0.275rem; }
.order-search li dl dt img { display: block; width: 0.55rem; height: 0.55rem; }
.order-search li dl .order-title { height: 0.75rem; line-height: 0.75rem; font-weight: bold; }
.order-search li dl .order-status { position: absolute; right: 0; top: 50%; margin-top: -0.265rem; width: 0.53rem; height: 0.53rem; background-image: url("../img/order-status.png"); background-repeat: no-repeat; background-size: 100%; }
.order-search li dl .order-pay { position: absolute; right: 0; top: 50%; margin-top: -0.265rem; width: 0.53rem; height: 0.53rem; background-repeat: no-repeat; background-size: 100%; margin: auto; }
/*# sourceMappingURL=common.css.map */

@ -0,0 +1,157 @@
@charset "utf-8";
/**
* @author: sq
* @update: 2015.9.24
-----------------------------------------*/
/*********************
reset css
*********************/
article, aside, details, figcaption, figure, footer, header, menu, nav, section{ display:block; }
body, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, input, button, p{ margin:0; padding:0; }
table{ border-spacing:0; border-collapse:collapse; }
fieldset, img{ border:0; }
address, caption, cite, code, em, strong, th{ font-weight:normal; font-style:normal; }
ol, ul{ list-style:none; }
caption, th{ text-align:left; }
h1, h2, h3, h4, h5, h6{ font-weight:normal; font-size:100%; }
input, button, textarea, select{ font-weight:inherit; font-style:inherit; font-size:inherit; font-family:inherit; -webkit-appearance:none; }
input, button, textarea, select{ *font-size:100%; }
input[type="text"]:focus, input[type="password"]:focus, textarea:focus{ outline:0 none; }
:link, :visited{ text-decoration:none; }
pre{ white-space:pre-wrap; word-wrap:break-word; }
body, button, input, select, textarea{ font:12px/1.5 SimSun, Helvetica, sans-serif; _font-family:"SimSun"; }
body, html{ width:100%; min-height:100%; -webkit-text-size-adjust:none; }
body{ background:#fff; color:#000; -webkit-backface-visibility:hidden; }
a{ color:#000; -webkit-tap-highlight-color:rgba(0, 0, 0, .1); }
a:hover{ text-decoration:none; }
.fl{ float:left; }
.fr{ float:right; }
.clear{ clear:both; }
.clearfix:after{ display:block; visibility:hidden; clear:both; height:0; content:" "; font-size:0; }
.hidden{display: none;}
.auto{width: 1000px;margin: 0 auto;}
.main-wrap{background-color: #eff0f1;}
.container-pay{background-color: #eff0f1;}
/* top */
.topbar{background-color: #fff;height: 60px; border-bottom: 1px solid #d9d9d9;}
.topcon .pay-logo{padding-top: 10px;}
.topcon .pay-logo img{vertical-align: top;}
/* error */
.area-error{min-height: 595px;}
.area-error p{text-align: right;padding-top: 20px;color: #000;}
.area-error p a{color: #ff5555;}
.error-con {width: 341px;margin: 0 auto;padding-top: 120px;}
.error-tip{background: url("../images/error-colse.png") no-repeat left center;padding-left: 55px;margin:15px 0 0 47px;}
/*支付宝触屏版提示*/
.pay-errortip{background: url("../images/pay-failure.png") no-repeat left center;padding-left: 55px;margin:15px 0 0 47px;}
.pay-successtip {background: url("../images/pay-success.png") no-repeat left center;padding-left: 55px;margin:15px 0 0 47px;}
/*支付宝触屏版提示*/
.error-con span{text-align: left;padding-top: 0;font-size: 14px;font-weight: bold;color: #3f3a39;display: block;}
.error-con .error-code{font-weight: normal;}
/* footer */
.footer-pay{background-color: #e9e9e9;text-align: center;color: #808080;padding: 35px 0 30px;}
/* 订单详情 */
.orderDetail-content{padding: 30px 23px 16px;position: relative;border-bottom: 3px solid #b3b3b3;}
.order-message-row{overflow: hidden; padding-top: 14px;}
.order-message-row span{display: block;}
.order-message-row span.long-content{font-weight: 700; font-size: 14px;}
.order-message-row span.short-content{font-size: 12px;max-width: 165px;margin-left: 20px; float: left; margin-top: 1px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.order-message-row .payCount{position: absolute; bottom: 30px; right: 23px; text-align: right; z-index: 1;}
.order-message-row .payCount strong{font: 26px/1.5 Arial; color: #ff5555;margin-right: 3px;}
.order-message-row .item{padding-top: 10px;}
.order-message-row .item p{line-height: 22px;}
.order-question{position: relative;display: inline-block;color: #4baef2;}
.order-question-tip:before{content: '';background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAANAgMAAAAGbqyVAAAADFBMVEX////o6Ojv8PGzs7PSfCDWAAAAK0lEQVQI12NYFc7AsDKGgWFpAQPD1AMMDEAuQwwQF4BpEB8kDpIHqwOpBwAdrwq3tlVp5QAAAABJRU5ErkJggg==") no-repeat;width: 9px;height: 13px;position: absolute;left: -9px; top: 8px;z-index: 10;}
.order-question-tip{width: 360px;background-color: #fff; margin: 2px; border: solid 1px #B3B3B3; z-index: 1;position: absolute;top:-8px;right: -371px;display: none;}
.order-question:hover .order-question-tip{display: block;}
.order-dialog-tit{padding: 10px 12px 0; font-weight: bold; color: #4D4D4D;}
.order-dialog-content{padding: 5px 12px 10px;color: #000;}
.order-create-time em{color: #ff5555;}
.order-ext-trigger { position: absolute; right: 20px; bottom: 0; height: 17px; padding: 3px 8px 2px; font-weight: 700; border-top: 0; background: #b3b3b3; z-index: 100; color: #fff; }
.orderDetail-content.cur .order-message-down,
.orderDetail-content.cur .order-ext-down{display: block;}
.orderDetail-content.cur .order-ext-up,
.orderDetail-content.cur .order-message-up{display: none;}
.orderDetail-content .order-ext-down{bottom: -25px;}
.pay-center-container{background-color: #fff;height: 485px; border-bottom: 3px solid #b3b3b3;}
.pay-qrcode-con{width: 300px;margin: 0 auto;position: relative;}
.pay-qrcode-header {text-align: center;color: #4a4a4a;padding: 70px 0 10px;}
.pay-qrcode-header .pay-money{font-size: 28px; font-family: Arial; font-weight: 700; color: #ff5555; }
.pay-qrcode-wrap{ position: relative; width: 168px; height: auto; min-height: 168px; margin: 0 auto; padding: 6px; border: 1px solid #d3d3d3; -webkit-box-shadow: 1px 1px 1px #ccc; box-shadow: 1px 1px 1px #d1d1d1;}
.pay-qrcode-img img{width: 168px;height: 168px;display: block;margin-bottom: 10px;}
.pay-sweep{background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAaBAMAAABWeiG6AAAAHlBMVEUAAABLrvJLrvJLrvJLrvJLrvJLrvJLrvJLrvJLrvIpcdFxAAAACXRSTlMAxMPukQY8iTvjBaomAAAAXElEQVQY02NgdZ45cxIDAwPjzJkzTQIYWIDURCh3ZgED8zQGOMg0YOCcAOcB2RRxmQQQXEYgmxSgORMJTELlTiTNKCYFJGcoUNGDKEHXaQAO2EnwgAUH+0R4sAMAwhgxzvHwtdUAAAAASUVORK5CYII=") no-repeat left center;padding-left: 37px;color: #4a4a4a;margin-left: 24px;}
.pay-qrcode-foot{text-align: center;padding-top: 15px;}
.pay-qrcode-foot a{color: #a6a6a6;text-decoration: underline;}
.new-pay-qrcode-foot {text-align: center;padding-top: 15px;}
.new-pay-qrcode-foot a{ color: #a6a6a6; width:100px; padding:5px; font-size: 12px; -webkit-background-clip: padding-box;border-radius:8px;display:inline-block;border-width:1px; border-style:solid; }
.new-pay-qrcode-foot .new-success-pay{background-color: #FF7F00;border-color: #E48126;color: #ffffff;}
.new-pay-qrcode-foot .new-fail-pay{background-color: #EDEBEC;border-color:#CBCBCB;color: #2F2D2E;}
.pay-qrguide{position: absolute;right: -160px;top: 65px;}
/* 支付通道 */
.orders-summary{padding: 32px 20px 17px;position: relative;border-bottom: 3px solid #b3b3b3;}
.orders-summary .orders-name{font-size: 14px;color: #3f3a39;font-weight: bold;margin-bottom: 15px;}
.orders-summary .orders-desc {color: #4a4a4a;}
.orders-summary .total-money{position: absolute;right: 0;bottom: 10px;color: #4a4a4a;font-size: 14px;}
.orders-summary .total-money strong{font: bold 26px/1.5 Arial;color: #ff5555;}
.order-checkbank{background: #fff;border-bottom: 3px solid #b3b3b3;padding: 30px 0 40px;}
.order-checkbank-tit{padding-left: 20px;}
.order-checkbank-list{overflow: hidden;padding:47px 0 120px 130px;}
.order-checkbank-list li{float: left;margin-right: 70px;}
.order-checkbank li a{width: 196px;height: 76px;display: block;border: 2px solid #d9d9d9; transition: border .3s;}
.order-checkbank li.current a,.order-checkbank li a:hover{border: 2px solid #ff5555;}
.orders-summary li img{width: 196px;height: 76px;display: block;}
.order-checkbank-mid{background-color: #f4f4f4; border-top: 1px dotted #d9d9d9;border-bottom: 1px dotted #d9d9d9;padding:10px 30px 10px;}
.order-checkbank-mid p{color: #4a4a4a;line-height: 22px;padding-left: 15px;}
.order-checkbank-mid .odd{background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAKUlEQVQIW2M8fPjw/xkzZjCAQEZGBgNjdHT0//fv34MFBAUFsQigawEASUsWtRmylqEAAAAASUVORK5CYII=") left center no-repeat;}
@media only screen and (max-width: 1024px) and (min-width: 0px) {
.auto{width: auto;padding:0 10px;}
.topbar{height: 42px;}
.topcon .pay-logo{padding-top: 7px;}
.topcon .pay-logo img{width: 160px;height: 28px;}
.area-error p{padding-top: 10px;}
.area-error{min-height: 500px;background-size: 170px auto;}
.error-con {width: 230px;margin: 0 auto;padding-top: 70px;}
.error-tip{background-size:25px auto;padding-left: 35px;margin:8px 0 0 23px;}
.error-tip span{font-size: 12px;}
.error-con img{width: 230px;height: 200px;}
.footer-pay{padding: 10px 20px;}
.container-pay{display: none;}
/* 触屏订单通道样式 */
.m-order{display: block; background: #f5f5f9;}
.m-order-base{padding: 0 0 12px; margin-bottom: 4px; background: #fff; position: relative;}
.m-order-item{padding: 14px 15px 0; margin: 0; min-height: 20px; font-size: 14px;display: -webkit-box;}
.m-order-item label,
.m-order-payinfo .payinfo-tit label{color: #5b5b6a;font-weight: bold;width: 72px;display: block;}
.m-order-item span{color: #333;-webkit-box-flex: 1;display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.m-order-payinfo{background: #fff;border-top: 1px solid #d9d9d9;border-bottom: 1px solid #d9d9d9;margin-top: 15px;/* padding-bottom: 10px; */}
.m-order-payinfo .payinfo-tit{padding: 15px 15px 10px;font-size: 14px;display: -webkit-box;}
.m-order-payinfo .payinfo-tit span{color: #ff5555;display: block;}
.order-payinfo-item{display: -webkit-box;/* margin: 5px 0 10px 10px; */border-top: 1px solid #ddd;margin-left: 10px;padding: 12px 0;}
.order-payinfo-icon{width: 60px;margin-right: 8px;}
.order-payinfo-icon img{width: 50px;height: 50px;display: block;border: 1px solid #ddd;}
.order-payinfo-con{-webkit-box-flex: 1;position: relative;}
.order-payinfo-con .pay-title{font-size: 14px;}
.order-payinfo-con .pay-meta{font-size: 12px;color: #999;}
.order-payinfo-con .pay-check{position: absolute;right: 10px;top: 20px;}
.order-payinfo-con .pay-check input{width: 18px;
height: 18px;border: 1px solid #d9d9d9;border-radius: 14px;display: block;}
.order-payinfo-con .pay-check input:checked{background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAXVBMVEUAyrf///8QzbsNzLr1/fxE2Mof0MDQ9fJV3M8Xzr3P9fJh39PB8u1G2MtB18mu7uir7eZ649l34thJ2cst08M91sg71sc51ca88exI2csu08Ms08OS6OCH5dxQ2s11xkGIAAAArklEQVQY01XQ2RKDIAwF0NAQhQq44G7b///MEhCV+0TODJMFREw3WK3t0KUqonSKdsSdFMmMK85wZkGTcJ0quFJNhlEi260oA7oZipAV0KmnvN4NqBYGKkzU4HqwY2kvGDfQGIrfwwB1xFo0tzHy90YEzQaH50ZJs3EjHilqNh5J0MKvj5Cnkb/X/FbJKuA1hSkOMseDBMUlG4G5jmyVGxEPp3w+MqftN61936bqD4jiButM3z75AAAAAElFTkSuQmCC") no-repeat;border: none;width: 20px;height: 20px;}
.order-pay-btn{padding: 20px 10px;}
.order-pay-btn button{ height: 37px; font-size: 18px; background-color: #fdb338; border-color: #f5ab2f; line-height: 36px; -webkit-background-clip: padding-box; border-radius: 3px;display: block;width: 100%;border: none;color: #fff;}
/* 触屏订单详情样式 */
.m-order-qrcode{background: #fff;border-top: 1px solid #d9d9d9;border-bottom: 1px solid #d9d9d9;margin: 15px 0;padding: 30px 0;}
.m-pay-money{font: bold 14px/1.5 Microsoft Arial;font-size: 28px; color: #ff5555;text-align: center;margin-bottom: 15px;}
.m-qrcode-wrap{padding: 3px;width: 180px; border: 1px solid #d3d3d3; -webkit-box-shadow: 1px 1px 1px #ccc; box-shadow: 1px 1px 1px #d1d1d1;margin: 0 auto} }
.m-qrcode-img img{width:180px;height:180px;display: block}
.m-qrcode-wrap p{height: 28px;line-height: 28px;text-align: center;color: #4a4a4a;}
.m-weixin-alipay-hintinfo{font: bold 14px/1.5 Microsoft Arial;font-size: 16px; color: #ff5555;text-align: center; padding:15px;}
.m-weixin-alipay-qrcode-foot {text-align: center;padding-top: 15px;}
.m-weixin-alipay-qrcode-foot a{ color: #a6a6a6; width:100px; padding:5px; font-size: 16px; -webkit-background-clip: padding-box;border-radius:8px;display:inline-block;border-width:1px; border-style:solid; }
.m-weixin-alipay-qrcode-foot .success-pay{background-color: #FF7F00;border-color: #E48126;color: #ffffff;}
.m-weixin-alipay-qrcode-foot .fail-pay{background-color: #EDEBEC;border-color:#CBCBCB;color: #2F2D2E;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,86 @@
$(function() {
remInit(100, 375);
selectProductInit();
copyInit();
});
function remInit(screenSize, picSize) {
$(window)
.on("resize", function(e) {
var $body = $("body");
var browser_width = $body.width();
var browser_height = $body.height();
var htmlWidth = picSize;
var remResize;
if (browser_width > browser_height) {
remResize =
document.documentElement.clientHeight || document.body.clientHeight;
//$uiBox.addClass("horizontal");
} else {
remResize =
document.documentElement.clientWidth || document.body.clientWidth;
//$uiBox.removeClass("horizontal");
}
var size = ((remResize < 768 ? remResize : 768) / htmlWidth) * screenSize;
$("html").css("font-size", size + "px");
})
.trigger("resize");
}
function selectProductInit() {
var selectFlag = true;
var $selectProduct = $(".select-product");
if ($selectProduct.length > 0) {
if ($selectProduct.find("li").length <= 0) {
$selectProduct.addClass("no-item");
$selectProduct.find(".title-2 span").text("暂无产品");
} else {
$selectProduct.find("li").on("click", function() {
var $this = $(this);
if ($this.find(".select-btn a").hasClass("current")) {
$this.find(".select-btn a").removeClass("current");
} else {
$selectProduct.find(".select-btn a").removeClass("current");
$this.find(".select-btn a").addClass("current");
}
});
$selectProduct.find(".title-2 a").on("click", function() {
if (selectFlag) {
$selectProduct.find(".title-2 span").addClass("current");
$selectProduct.find("li").each(function() {
var $this = $(this);
if ($this.find(".select-btn a").hasClass("current")) {
$this.show();
} else {
$this.hide();
}
});
} else {
$selectProduct.find(".title-2 span").removeClass("current");
$selectProduct.find("li").show();
}
selectFlag = !selectFlag;
});
}
}
}
function copyInit() {
if ($(".vip-download").length > 0) {
$(".gift-list li").each(function() {
var $this = $(this);
var thisCopyBtn = $this.find(".gift-code a").attr("class");
var clipboard = new ClipboardJS("." + thisCopyBtn);
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("您的系统版本过低,请手动复制下方地址");
}
});
});
}
}

@ -0,0 +1,229 @@
/**
* jQuery MD5 hash algorithm function
*
* <code>
* Calculate the md5 hash of a String
* String $.md5 ( String str )
* </code>
*
* Calculates the MD5 hash of str using the <EFBFBD> RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash.
* MD5 (Message-Digest algorithm 5) is a widely-used cryptographic hash function with a 128-bit hash value. MD5 has been employed in a wide variety of security applications, and is also commonly used to check the integrity of data. The generated hash is also non-reversable. Data cannot be retrieved from the message digest, the digest uniquely identifies the data.
* MD5 was developed by Professor Ronald L. Rivest in 1994. Its 128 bit (16 byte) message digest makes it a faster implementation than SHA-1.
* This script is used to process a variable length message into a fixed-length output of 128 bits using the MD5 algorithm. It is fully compatible with UTF-8 encoding. It is very useful when u want to transfer encrypted passwords over the internet. If you plan using UTF-8 encoding in your project don't forget to set the page encoding to UTF-8 (Content-Type meta tag).
* This function orginally get from the WebToolkit and rewrite for using as the jQuery plugin.
*
* Example
* Code
* <code>
* $.md5("I'm Persian.");
* </code>
* Result
* <code>
* "b8c901d0f02223f9761016cfff9d68df"
* </code>
*
* @alias Muhammad Hussein Fattahizadeh < muhammad [AT] semnanweb [DOT] com >
* @link http://www.semnanweb.com/jquery-plugin/md5.html
* @see http://www.webtoolkit.info/
* @license http://www.gnu.org/licenses/gpl.html [GNU General Public License]
* @param {jQuery} {md5:function(string))
* @return string
*/
(function($){
var rotateLeft = function(lValue, iShiftBits) {
return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
}
var addUnsigned = function(lX, lY) {
var lX4, lY4, lX8, lY8, lResult;
lX8 = (lX & 0x80000000);
lY8 = (lY & 0x80000000);
lX4 = (lX & 0x40000000);
lY4 = (lY & 0x40000000);
lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
if (lX4 | lY4) {
if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
else return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
} else {
return (lResult ^ lX8 ^ lY8);
}
}
var F = function(x, y, z) {
return (x & y) | ((~ x) & z);
}
var G = function(x, y, z) {
return (x & z) | (y & (~ z));
}
var H = function(x, y, z) {
return (x ^ y ^ z);
}
var I = function(x, y, z) {
return (y ^ (x | (~ z)));
}
var FF = function(a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
var GG = function(a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
var HH = function(a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
var II = function(a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
var convertToWordArray = function(string) {
var lWordCount;
var lMessageLength = string.length;
var lNumberOfWordsTempOne = lMessageLength + 8;
var lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - (lNumberOfWordsTempOne % 64)) / 64;
var lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16;
var lWordArray = Array(lNumberOfWords - 1);
var lBytePosition = 0;
var lByteCount = 0;
while (lByteCount < lMessageLength) {
lWordCount = (lByteCount - (lByteCount % 4)) / 4;
lBytePosition = (lByteCount % 4) * 8;
lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
lByteCount++;
}
lWordCount = (lByteCount - (lByteCount % 4)) / 4;
lBytePosition = (lByteCount % 4) * 8;
lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
return lWordArray;
};
var wordToHex = function(lValue) {
var WordToHexValue = "", WordToHexValueTemp = "", lByte, lCount;
for (lCount = 0; lCount <= 3; lCount++) {
lByte = (lValue >>> (lCount * 8)) & 255;
WordToHexValueTemp = "0" + lByte.toString(16);
WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2);
}
return WordToHexValue;
};
var uTF8Encode = function(string) {
string = string.replace(/\x0d\x0a/g, "\x0a");
var output = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
output += String.fromCharCode(c);
} else if ((c > 127) && (c < 2048)) {
output += String.fromCharCode((c >> 6) | 192);
output += String.fromCharCode((c & 63) | 128);
} else {
output += String.fromCharCode((c >> 12) | 224);
output += String.fromCharCode(((c >> 6) & 63) | 128);
output += String.fromCharCode((c & 63) | 128);
}
}
return output;
};
$.extend({
md5: function(string) {
var x = Array();
var k, AA, BB, CC, DD, a, b, c, d;
var S11=7, S12=12, S13=17, S14=22;
var S21=5, S22=9 , S23=14, S24=20;
var S31=4, S32=11, S33=16, S34=23;
var S41=6, S42=10, S43=15, S44=21;
string = uTF8Encode(string);
x = convertToWordArray(string);
a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
for (k = 0; k < x.length; k += 16) {
AA = a; BB = b; CC = c; DD = d;
a = FF(a, b, c, d, x[k+0], S11, 0xD76AA478);
d = FF(d, a, b, c, x[k+1], S12, 0xE8C7B756);
c = FF(c, d, a, b, x[k+2], S13, 0x242070DB);
b = FF(b, c, d, a, x[k+3], S14, 0xC1BDCEEE);
a = FF(a, b, c, d, x[k+4], S11, 0xF57C0FAF);
d = FF(d, a, b, c, x[k+5], S12, 0x4787C62A);
c = FF(c, d, a, b, x[k+6], S13, 0xA8304613);
b = FF(b, c, d, a, x[k+7], S14, 0xFD469501);
a = FF(a, b, c, d, x[k+8], S11, 0x698098D8);
d = FF(d, a, b, c, x[k+9], S12, 0x8B44F7AF);
c = FF(c, d, a, b, x[k+10], S13, 0xFFFF5BB1);
b = FF(b, c, d, a, x[k+11], S14, 0x895CD7BE);
a = FF(a, b, c, d, x[k+12], S11, 0x6B901122);
d = FF(d, a, b, c, x[k+13], S12, 0xFD987193);
c = FF(c, d, a, b, x[k+14], S13, 0xA679438E);
b = FF(b, c, d, a, x[k+15], S14, 0x49B40821);
a = GG(a, b, c, d, x[k+1], S21, 0xF61E2562);
d = GG(d, a, b, c, x[k+6], S22, 0xC040B340);
c = GG(c, d, a, b, x[k+11], S23, 0x265E5A51);
b = GG(b, c, d, a, x[k+0], S24, 0xE9B6C7AA);
a = GG(a, b, c, d, x[k+5], S21, 0xD62F105D);
d = GG(d, a, b, c, x[k+10], S22, 0x2441453);
c = GG(c, d, a, b, x[k+15], S23, 0xD8A1E681);
b = GG(b, c, d, a, x[k+4], S24, 0xE7D3FBC8);
a = GG(a, b, c, d, x[k+9], S21, 0x21E1CDE6);
d = GG(d, a, b, c, x[k+14], S22, 0xC33707D6);
c = GG(c, d, a, b, x[k+3], S23, 0xF4D50D87);
b = GG(b, c, d, a, x[k+8], S24, 0x455A14ED);
a = GG(a, b, c, d, x[k+13], S21, 0xA9E3E905);
d = GG(d, a, b, c, x[k+2], S22, 0xFCEFA3F8);
c = GG(c, d, a, b, x[k+7], S23, 0x676F02D9);
b = GG(b, c, d, a, x[k+12], S24, 0x8D2A4C8A);
a = HH(a, b, c, d, x[k+5], S31, 0xFFFA3942);
d = HH(d, a, b, c, x[k+8], S32, 0x8771F681);
c = HH(c, d, a, b, x[k+11], S33, 0x6D9D6122);
b = HH(b, c, d, a, x[k+14], S34, 0xFDE5380C);
a = HH(a, b, c, d, x[k+1], S31, 0xA4BEEA44);
d = HH(d, a, b, c, x[k+4], S32, 0x4BDECFA9);
c = HH(c, d, a, b, x[k+7], S33, 0xF6BB4B60);
b = HH(b, c, d, a, x[k+10], S34, 0xBEBFBC70);
a = HH(a, b, c, d, x[k+13], S31, 0x289B7EC6);
d = HH(d, a, b, c, x[k+0], S32, 0xEAA127FA);
c = HH(c, d, a, b, x[k+3], S33, 0xD4EF3085);
b = HH(b, c, d, a, x[k+6], S34, 0x4881D05);
a = HH(a, b, c, d, x[k+9], S31, 0xD9D4D039);
d = HH(d, a, b, c, x[k+12], S32, 0xE6DB99E5);
c = HH(c, d, a, b, x[k+15], S33, 0x1FA27CF8);
b = HH(b, c, d, a, x[k+2], S34, 0xC4AC5665);
a = II(a, b, c, d, x[k+0], S41, 0xF4292244);
d = II(d, a, b, c, x[k+7], S42, 0x432AFF97);
c = II(c, d, a, b, x[k+14], S43, 0xAB9423A7);
b = II(b, c, d, a, x[k+5], S44, 0xFC93A039);
a = II(a, b, c, d, x[k+12], S41, 0x655B59C3);
d = II(d, a, b, c, x[k+3], S42, 0x8F0CCC92);
c = II(c, d, a, b, x[k+10], S43, 0xFFEFF47D);
b = II(b, c, d, a, x[k+1], S44, 0x85845DD1);
a = II(a, b, c, d, x[k+8], S41, 0x6FA87E4F);
d = II(d, a, b, c, x[k+15], S42, 0xFE2CE6E0);
c = II(c, d, a, b, x[k+6], S43, 0xA3014314);
b = II(b, c, d, a, x[k+13], S44, 0x4E0811A1);
a = II(a, b, c, d, x[k+4], S41, 0xF7537E82);
d = II(d, a, b, c, x[k+11], S42, 0xBD3AF235);
c = II(c, d, a, b, x[k+2], S43, 0x2AD7D2BB);
b = II(b, c, d, a, x[k+9], S44, 0xEB86D391);
a = addUnsigned(a, AA);
b = addUnsigned(b, BB);
c = addUnsigned(c, CC);
d = addUnsigned(d, DD);
}
var tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d);
return tempValue.toLowerCase();
}
});
})(jQuery);

@ -0,0 +1,89 @@
<?php
namespace Org\Ipa365SDK;
use Think\Exception;
use Qiniu\json_decode;
/**
* Ipa365
* @author zgc
* 2019/9/19 15:00
*/
class Ipa365 {
private $token = "";
public function __construct($token="") {
$this->token = $token;
}
/*
* 获得签包任务完成后的下载地址
* status int 任务进度 0还未生成下载地址 1已经生成下载地址
filename string xxx.ipa
*/
public function down($data) {
$apiurl = "https://app.ipa365.com/Kirin/Api/Down";
$r = curl_post($apiurl, $data);
return json_decode($r, true);
}
/**
* 获得签包任务进度
*/
public function process() {
$apiurl = "https://app.ipa365.com/Kirin/Api/Process";
$r = curl_post($apiurl, $data);
return json_decode($r, true);
}
/**
* 授予udid下载权限并获得签包任务id
* 调用此接口获得任务id后需要先调用一下 Down 接口触发签包任务开始后调用process查看任务进度最终调用 Down 获得ipa下载地址
*/
public function request() {
$apiurl = "https://app.ipa365.com/Kirin/Api/Request";
$r = curl_post($apiurl, $data);
return json_decode($r, true);
}
/**
* 获取授予应用的信息
*/
public function getinfo() {
$apiurl = "https://app.ipa365.com/Kirin/Api/GetInfo";
$r = curl_post($apiurl, $data);
return json_decode($r, true);
}
/**
* 获取 授予udid下载权限并获取下载地址
*/
public function udidRequest($data) {
$apiurl = "https://app.ipa365.com/Kirin/OpenApi/UdidRequest";
$r = curl_post($apiurl, $data);
return json_decode($r, true);
}
/**
* 查询授权码列表
*/
public function ticketList($data) {
$apiurl = "https://app.ipa365.com/Kirin/OpenApi/TicketList";
$r = curl_post($apiurl, $data);
return json_decode($r, true);
}
/**
* 查询单个授权码状态
*/
public function getCodeStatus() {
$apiurl = "https://app.ipa365.com/Kirin/OpenApi/GetInfo";
$r = curl_post($apiurl, $data);
return json_decode($r, true);
}
}

@ -77,9 +77,12 @@ class Pay
case 'Withdraw':
$result=1;
break;
case 'order':{
$result = $this->add_order($vo);
};break;
case 'order':{
$result = $this->add_order($vo);
};break;
case 'supersign' :
$result=1;
break;
default:
$result = false;
break;
@ -115,7 +118,7 @@ class Pay
$aop->signType = 'RSA2';
$aop->rsaPrivateKey = file_get_contents("./Application/Sdk/SecretKey/alipay/rsa2_private_key.txt");
$type = $vo->getPayMethod();
//file_put_contents(dirname(__FILE__) . '/newbuildRequestForm.txt',json_encode($vo->getOrderNo()));
//file_put_contents(dirname(__FILE__) . '/newbuildRequestForm.txt',json_encode($vo->getOrderNo()));
switch ($type) {
case 'direct':
$productcode = 'FAST_INSTANT_TRADE_PAY';
@ -133,11 +136,14 @@ class Pay
$request->setReturnUrl('http://' . $_SERVER ['HTTP_HOST'] . '/callback.php/Notify2/notify/apitype/alipay/methodtype/return_tb');
break;
case 'wap':
$returnurl = $vo->getCallback();
if (!$returnurl)
$returnurl = 'http://' . $_SERVER ['HTTP_HOST'] . "/sdk.php/Spend/pay_success";
$productcode = 'QUICK_WAP_PAY';
$request = new \AlipayTradeWapPayRequest();
$request->setReturnUrl('http://' . $_SERVER ['HTTP_HOST'] . "/sdk.php/Spend/pay_success");
$request->setReturnUrl($returnurl);
break;
case 'trade':
case 'trade':
$productcode = 'QUICK_WAP_PAY';
$request = new \AlipayTradeWapPayRequest();
$request->setReturnUrl('http://' . $_SERVER ['HTTP_HOST'] . "/mobile.php/Trade/success");
@ -160,7 +166,10 @@ class Pay
$request = new \AlipayTradePagePayRequest();
break;
}
$request->setNotifyUrl('http://' . $_SERVER ['HTTP_HOST'] . '/callback.php/Notify2/notify/apitype/alipay/methodtype/notify');
$notifyurl = $vo->getNotifyUrl();
if (!$notifyurl)
$notifyurl = 'http://' . $_SERVER ['HTTP_HOST'] . '/callback.php/Notify2/notify/apitype/alipay/methodtype/notify';
$request->setNotifyUrl($notifyurl);
switch ($type) {
case 'direct':
@ -180,7 +189,7 @@ class Pay
$request->setBizContent('{"product_code":"' . $productcode . '","body":"' . $vo->getBody() . '","subject":"' . $vo->getTitle() . '","total_amount":"' . $vo->getFee() . '","out_trade_no":"' . $vo->getOrderNo() . '"}');
return $aop->pageExecute($request, 'GET');
break;
case 'trade':
case 'trade':
/*参数 out_trade_no系统订单号*/
$request->setBizContent('{"product_code":"' . $productcode . '","body":"' . $vo->getBody() . '","subject":"' . $vo->getTitle() . '","total_amount":"' . $vo->getFee() . '","out_trade_no":"' . $vo->getOrderNo() . '"}');
return $aop->pageExecute($request, 'GET');

@ -60,7 +60,12 @@ class Alipay extends \Think\Pay\Pay
case 'wap':
$param['seller_id'] = $this->config['partner'];
$param['app_pay'] = 'Y';
$param['return_url']='http://' . $_SERVER ['HTTP_HOST'] . "/sdk.php/Spend/pay_success";
$returnUrl = $vo->getCallback();
if ($returnUrl)
$param['return_url'] = $returnUrl;
else
$param['return_url']='http://' . $_SERVER ['HTTP_HOST'] . "/sdk.php/Spend/pay_success";
$param['show_url'] = 'http://' . $_SERVER ['HTTP_HOST'] . "/sdk.php/Spend/pay_error";
break;
case 'refund':
@ -70,15 +75,18 @@ class Alipay extends \Think\Pay\Pay
$param['batch_num'] = 1;//总数量
$param['detail_data'] = $vo->getDetailData();
break;
case 'trade':{
$param['seller_id'] = $this->config['partner'];
$param['show_url'] = 'http://' . $_SERVER ['HTTP_HOST'] . "/mobile.php/Trade/pay_error";
};break;
case 'trade':{
$param['seller_id'] = $this->config['partner'];
$param['show_url'] = 'http://' . $_SERVER ['HTTP_HOST'] . "/mobile.php/Trade/pay_error";
};break;
default:
$param['seller_email'] = $this->config['email'];
break;
}
$notifyUrl = $vo->getNotifyUrl();
if ($notifyUrl)
$param['notify_url'] = $notifyUrl;
// pp($param);
#对数组进行排序
$param = $this->argSort($param);
// $wap_type=$vo->getPayMethod()=="wap"?"alipay_wap":"";
@ -87,7 +95,7 @@ class Alipay extends \Think\Pay\Pay
case 'wap':
$wap_type = "alipay_wap";
break;
case 'trade':
case 'trade':
$wap_type = "alipay_wap";
break;
default:

Loading…
Cancel
Save