first commit
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
<?php
|
||||
include("./inc.php");
|
||||
$act=isset($_GET['act'])?daddslashes($_GET['act']):null;
|
||||
|
||||
if(!checkRefererHost())exit('{"code":403}');
|
||||
|
||||
@header('Content-Type: application/json; charset=UTF-8');
|
||||
|
||||
$uid=intval($_POST['uid']);
|
||||
$money=daddslashes($_POST['money']);
|
||||
$payer=daddslashes($_POST['payer']);
|
||||
$paytype=$_POST['paytype'];
|
||||
$direct=intval($_POST['direct']);
|
||||
$param=!empty($_POST['remark'])?htmlspecialchars(daddslashes($_POST['remark'])):null;
|
||||
if($_POST['token']!=$_SESSION['paypage_token'])showerrorjson('CSRF TOKEN ERROR');
|
||||
if(!$uid || $uid!=$_SESSION['paypage_uid'])showerrorjson('收款方信息无效');
|
||||
if($money<=0 || !is_numeric($money) || !preg_match('/^[0-9.]+$/', $money))showerrorjson('金额不合法');
|
||||
if($conf['pay_maxmoney']>0 && $money>$conf['pay_maxmoney'])showerrorjson('最大支付金额是'.$conf['pay_maxmoney'].'元');
|
||||
if($conf['pay_minmoney']>0 && $money<$conf['pay_minmoney'])showerrorjson('最小支付金额是'.$conf['pay_minmoney'].'元');
|
||||
|
||||
$blackip = $DB->find('blacklist', '*', ['type'=>1, 'content'=>$clientip], null, 1);
|
||||
if($blackip)showerrorjson('系统异常无法完成付款');
|
||||
if($payer){
|
||||
$black = $DB->find('blacklist', '*', ['type'=>0, 'content'=>$payer], null, 1);
|
||||
if($black)showerrorjson('系统异常无法完成付款');
|
||||
}
|
||||
|
||||
if(!empty($paytype) && isset($_SESSION['paypage_typeid']) && isset($_SESSION['paypage_paymax']) && isset($_SESSION['paypage_paymin'])){
|
||||
if(!empty($_SESSION['paypage_paymin']) && $_SESSION['paypage_paymin']>0 && $money<$_SESSION['paypage_paymin']){
|
||||
showerrorjson('当前支付通道最大支付金额是'.$_SESSION['paypage_paymin'].'元');
|
||||
}
|
||||
if(!empty($_SESSION['paypage_paymax']) && $_SESSION['paypage_paymax']>0 && $money>$_SESSION['paypage_paymax']){
|
||||
showerrorjson('当前支付通道最小支付金额是'.$_SESSION['paypage_paymax'].'元');
|
||||
}
|
||||
}
|
||||
|
||||
$userrow = $DB->getRow("SELECT `mode`,`ordername`,`channelinfo`,`money` FROM `pre_user` WHERE `uid`='{$uid}' LIMIT 1");
|
||||
|
||||
$trade_no=date("YmdHis").rand(11111,99999);
|
||||
$return_url=$siteurl.'paypage/success.php?trade_no='.$trade_no;
|
||||
$domain=getdomain($return_url);
|
||||
if(!$DB->exec("INSERT INTO `pre_order` (`trade_no`,`out_trade_no`,`uid`,`tid`,`addtime`,`name`,`money`,`notify_url`,`return_url`,`param`,`domain`,`ip`,`buyer`,`status`) VALUES (:trade_no, :out_trade_no, :uid, 3, NOW(), :name, :money, :notify_url, :return_url, :param, :domain, :clientip, :buyer, 0)", [':trade_no'=>$trade_no, ':out_trade_no'=>$trade_no, ':uid'=>$uid, ':name'=>'在线收款', ':money'=>$money, ':notify_url'=>$return_url, ':return_url'=>$return_url, ':domain'=>$domain, ':clientip'=>$clientip, ':buyer'=>$payer, ':param'=>$param]))showerrorjson('创建订单失败,请返回重试!');
|
||||
|
||||
$_SESSION['paypage_trade_no'] = $trade_no;
|
||||
|
||||
$result=[];
|
||||
$result['code']=0;
|
||||
$result['msg']='succ';
|
||||
$result['trade_no']=$trade_no;
|
||||
$result['direct']=$direct;
|
||||
|
||||
if(!empty($paytype) && isset($_SESSION['paypage_typeid']) && isset($_SESSION['paypage_channel']) && isset($_SESSION['paypage_rate'])){
|
||||
$typeid = intval($_SESSION['paypage_typeid']);
|
||||
$channelid = intval($_SESSION['paypage_channel']);
|
||||
$subchannelid = intval($_SESSION['paypage_subchannel']);
|
||||
if($direct==1){
|
||||
if($userrow['mode']==1){
|
||||
$realmoney = round($money*(100+100-$_SESSION['paypage_rate'])/100,2);
|
||||
$getmoney = $money;
|
||||
}else{
|
||||
$realmoney = $money;
|
||||
$getmoney = round($money*$_SESSION['paypage_rate']/100,2);
|
||||
}
|
||||
if($_SESSION['paypage_mode']==1 && $realmoney-$getmoney>$userrow['money']){
|
||||
showerrorjson('当前商户余额不足,无法完成支付,请商户登录用户中心充值余额');
|
||||
}
|
||||
|
||||
if(!empty($conf['pay_payaddstart'])&&$conf['pay_payaddstart']!=0&&!empty($conf['pay_payaddmin'])&&$conf['pay_payaddmin']!=0&&!empty($conf['pay_payaddmax'])&&$conf['pay_payaddmax']!=0&&$realmoney>=$conf['pay_payaddstart'])$realmoney = round($realmoney + randomFloat(round($conf['pay_payaddmin'],2),round($conf['pay_payaddmax'],2)), 2);
|
||||
|
||||
$DB->update('order', ['type'=>$typeid, 'channel'=>$channelid, 'subchannel'=>$subchannelid, 'realmoney'=>$realmoney, 'getmoney'=>$getmoney], ['trade_no'=>$trade_no]);
|
||||
|
||||
$ordername = 'onlinepay'.time();
|
||||
if(!empty($userrow['ordername']))$conf['ordername']=$userrow['ordername'];
|
||||
$ordername = !empty($conf['ordername'])?ordername_replace($conf['ordername'],$ordername,$uid,$trade_no,$trade_no):$ordername;
|
||||
$channel = $subchannelid > 0 ? \lib\Channel::getSub($subchannelid) : \lib\Channel::get($channelid, $userrow['channelinfo']);
|
||||
if(!$channel)showerrorjson('支付通道不存在');
|
||||
$channel['apptype'] = explode(',',$channel['apptype']);
|
||||
|
||||
$method = 'jsapi';
|
||||
$order['trade_no'] = $trade_no;
|
||||
$order['out_trade_no'] = $trade_no;
|
||||
$order['uid'] = $uid;
|
||||
$order['addtime'] = $date;
|
||||
$order['name'] = '在线收款';
|
||||
$order['realmoney'] = $realmoney;
|
||||
$order['type'] = $typeid;
|
||||
$order['channel'] = $channelid;
|
||||
$order['typename'] = $paytype;
|
||||
$order['profits'] = \lib\Payment::updateOrderProfits($order, $channel['plugin']);
|
||||
$order['sub_openid'] = $payer;
|
||||
|
||||
try{
|
||||
$paydata = \lib\Plugin::loadClass($channel['plugin'],'mapi',$trade_no);
|
||||
}catch(Exception $e){
|
||||
showerrorjson($e->getMessage());
|
||||
}
|
||||
|
||||
if($paydata['type'] == 'jsapi'){
|
||||
if(is_array($paydata['data'])) $paydata['data'] = json_encode($paydata['data']);
|
||||
$result['paydata'] = $paydata['data'];
|
||||
}elseif($paydata['type'] == 'error'){
|
||||
showerrorjson($paydata['msg']);
|
||||
}else{
|
||||
$result['direct'] = 0;
|
||||
$result['url'] = $paydata['url'];
|
||||
}
|
||||
}else{
|
||||
$result['url'] = '/submit2.php?typeid='.$typeid.'&trade_no='.$trade_no;
|
||||
}
|
||||
}else{
|
||||
$result['url'] = '/cashier.php?trade_no='.$trade_no;
|
||||
}
|
||||
|
||||
exit(json_encode($result));
|
||||
@@ -0,0 +1,77 @@
|
||||
@charset "UTF-8";
|
||||
html {font-size:62.5%;-webkit-font-smoothing:antialiased;}
|
||||
body {text-align:center;font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans GB', 'Microsoft Yahei', 微软雅黑, STHeiti, 华文细黑, sans-serif; -webkit-text-size-adjust:none; font-size:1.4rem;background:#f4f6f9;color:#000;-webkit-user-select:none;}
|
||||
* {margin:0; padding:0;list-style:none; }
|
||||
i, em, b {font-style:normal; font-weight:normal;}
|
||||
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#ccc;}
|
||||
img{width:100%;vertical-align:top;}
|
||||
input,textarea,select,button{font-size:1.4rem;border:0; outline:none;font-family:"微软雅黑","Microsoft YaHei","Helvetica Neue",Helvetica,STHeiTi,sans-serif;}
|
||||
*{-webkit-tap-highlight-color: rgba(0,0,0,0);}
|
||||
|
||||
|
||||
.clear{ clear:both;}
|
||||
.none{ display:none !important;}
|
||||
.hide{ display:none;}
|
||||
.height100{ height:100%;}
|
||||
|
||||
/*flex*/
|
||||
html,body{height:100%;}
|
||||
.container{height:100%;}
|
||||
.layout-flex{display:-webkit-box;-webkit-box-orient:vertical;height:100%;}
|
||||
.layout-flex .content{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;overflow:auto;-webkit-overflow-scrolling:touch;position:relative;height:100%;}
|
||||
.m-title{padding: 0.42rem 0.54rem 0.5rem;}
|
||||
.m-title dl{overflow: hidden;}
|
||||
.m-title dl dt{float: left; width: 0.66rem; height: 0.66rem; margin-right: 0.2rem;}
|
||||
.m-title dl dt img{width: 100%; height: 100%; display: block;}
|
||||
.m-title dl dd{float: left; font-size: 0.28rem; color: #161213; padding-top: 0.13rem;}
|
||||
/*pop*/
|
||||
.pop-wrap{position:fixed;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0.6);display:table;z-index:99999;}
|
||||
.pop-outer{display:table-cell;vertical-align:middle;}
|
||||
|
||||
|
||||
/*loading*/
|
||||
.circle-box{width: 100%;height: 100%;position: fixed;left: 0;top: 0;}
|
||||
.circle_animate{position: absolute; left: 50%; top: 43%; width: 9rem; height: 9rem; margin-left: -4.5rem; margin-top: -4.5rem; background: rgba(0, 10, 24, 0.6); border-radius: 8px; box-shadow: 0 0 4px rgba(0, 10, 24, 0.4);}
|
||||
.circle_animate .circle{width: 3.6rem; height: 3.6rem; margin: 1.6rem auto 1rem; background: url(../images/loading.gif) no-repeat; background-size: 100% 100%; }
|
||||
@-webkit-keyframes animate_circle{100%{-webkit-transform: rotate(360deg);}}
|
||||
.circle_animate p{color: rgba(255, 255, 255, 0.7);}
|
||||
|
||||
/*pop*/
|
||||
.pop_wrapper{position:fixed;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0.6);display:table;z-index:99999;}
|
||||
.pop_outer{display:table-cell;vertical-align:middle;}
|
||||
.pop_obtm{display:table-cell;vertical-align:bottom;}
|
||||
.pop_pintip{margin: 0 2rem;}
|
||||
.pop_cont{margin: 0 2rem;background-color: rgba(255,255,255,1);border-radius: 1rem;overflow: hidden;}
|
||||
.pop_tip{font-size: 1.8rem;padding: 2rem 2.4rem 2rem 2.4rem;line-height: 2.8rem;word-break: break-all;border-bottom:1px solid #e5e5e5;color:#000}
|
||||
.pop_wbtn{display: block;height: 4.4rem;line-height: 4.4rem;font-size: 1.7rem;color: #007FFF;
|
||||
}
|
||||
|
||||
.pop_wbtn a{background:#0187e8}
|
||||
.pop_wbtn:active{color: rgba(0,127,255,0.5);}
|
||||
/*.b_top{padding:1.5rem 0.6rem;background:#0187e8;border-radius: 6px;color:#fff;margin:20px;.b_top{margin:20px 0}}*/
|
||||
.b_top{padding:1.2rem 0.6rem;border-radius: 6px;color:#0076fe;font-size:2rem}
|
||||
/*.pop_btn{background:#0187e8;border-radius: 6px;padding:1rem 0;color:#fff;display:block;width:85%;margin:0 auto}
|
||||
.pop_btn{padding:1em;height:2.5em}*/
|
||||
.pop_wrapper_white{position:fixed;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0);display:table;z-index:99999;}
|
||||
.pop_intips{display: inline-block;border-radius: 8px;background-color: rgba(0,0,0,0.8);font-size: 1.5rem;color: #fff;padding: 1.5rem 2rem;word-break: break-all;}
|
||||
|
||||
@media (max-device-width: 320px){
|
||||
html{font-size: 52%;}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,340 @@
|
||||
@charset "utf-8";
|
||||
/*date:2018-03-13*/
|
||||
|
||||
/* add====================== */
|
||||
.mar10{margin:10px}
|
||||
.marLeft5{margin-left:5px}
|
||||
.marLeft10{margin-left:10px}
|
||||
.mar20{margin:20px}
|
||||
.fl{float:left}
|
||||
.selTitle{font-size: 1.95rem;color:#666}
|
||||
.fontGray{color:#8e8e8e}
|
||||
.money{font-size:2rem;font-family: "Microsoft YaHei";}
|
||||
.grayico_pay{display:inline-block;width: 3.34rem;height: 2.6rem;margin: 0 auto;overflow-y: hidden;}
|
||||
.copyRight{color:#afafaf;font-size:1.5rem;margin-bottom:10px;font-family: Microsoft YaHei;}
|
||||
|
||||
/* 按钮====================== */
|
||||
.btn{ width:100%; height:4.5rem; border-radius:6px; font-size:1.7rem;}
|
||||
.btn:after{ border-radius:9px;}
|
||||
.btn_blue{ background:#4182E2; color:#fff;}
|
||||
.btn_blue:active{ background:#2167CD;}
|
||||
.btn_blue.disable{ background: #ddd}
|
||||
.btn_white{ background:#fff; color:#000;}
|
||||
.btn_white:active{ background:#ddd;}
|
||||
|
||||
/* 1像素边框====================== */
|
||||
.border{ position:relative;}
|
||||
.border:after{ content:""; position:absolute; left:0; top:0; right:-100%; bottom:-100%; -webkit-transform:scale(0.5); -webkit-transform-origin:0 0; pointer-events:none;}
|
||||
/*.b_all:after{ border:1px solid #4182e2;}
|
||||
.b_all2:after{ border:1px solid #ddd;}*/
|
||||
.b_btm:after{ border-bottom:1px solid #d5d5d5;}
|
||||
/*.b_lft:after{ border-left:1px solid #ddd;}*/
|
||||
.b_rgt:after{ border-right:1px solid #d5d5d5;}
|
||||
/*.b_top:after{ border-top:1px solid #ddd;}*/
|
||||
.b_rgt_btm:after{ border-right:1px solid #d5d5d5; border-bottom:1px solid #d5d5d5;}
|
||||
|
||||
/* 付款金额====================== */
|
||||
.payMoney{text-align: left;color:#b7b7b7;font-size:1.8rem;margin-bottom:10px;}
|
||||
|
||||
|
||||
/* 设置支付金额====================== */
|
||||
.amount_title{padding: 0 1.5rem; font-size: 1.7rem;color: #333;line-height: 2.8rem;}
|
||||
|
||||
.set_amount{padding:1rem 1rem 0.5rem 1rem; margin: 2rem 1.5rem 0 1.5rem; background: #fff; position: relative;border-radius:6px;box-shadow: 0 0 1px #ebebeb;}
|
||||
.set_amount .amount_hd{font-size: 1.5rem; color: #666; text-align: left;height: 2.4rem;line-height: 2.4rem;}
|
||||
.set_amount .amount_bd{ height: 50px;line-height: 50px; margin: 0; text-align: left; }
|
||||
.set_amount .amount_bd input{width: 100%; height: 100%; font-family: arial; font-size: 4rem;}
|
||||
.set_amount .amount_bd .int_place{display: inline-block; height: 5rem; line-height: 5rem; vertical-align: middle; font-family: arial; font-size: 4rem;color: #999;}
|
||||
/* .set_amount .amount_bd .input_simu{font-family: HelveticaNeue; font-size: 4.4rem;display: inline-block;color:#444;position:absolute;left:3.6rem;height:50px;bottom:10px;}
|
||||
.set_amount .amount_bd .line_simu{margin-top:0.5rem;width: 1px; height: 3rem; background: #4182E2; vertical-align: middle; opacity: 0; -webkit-animation: animate_flash 1s ease-in-out infinite;}
|
||||
*/
|
||||
.set_amount .amount_bd .input_simu{font-family: HelveticaNeue; font-size: 34px; color:#444;height:50px; float:left;}
|
||||
.set_amount .amount_bd .line_simu{margin-top:0.5rem;width: 1px; height: 40px; background: #4182E2; opacity: 0; -webkit-animation: animate_flash 1s ease-in-out infinite;float:left;}
|
||||
.i_money{padding:0rem 0.5rem 0 0; font-size:24px;color: #444;font-family: arial;height:50px; float:left;}
|
||||
@-webkit-keyframes animate_flash{
|
||||
50%{opacity:1;}
|
||||
}
|
||||
.amount_bd .clearBtn{width: 3rem;height: 100%;position: absolute;right: 0;top:0;background: #fff;}
|
||||
.set_amount .amount_bd .btn_clear{
|
||||
position: absolute; right: 0.5rem; top: 1.5rem; width: 2rem; height: 2rem; background: url(../images/btn_clear.png) center center no-repeat; background-size: 1.4rem 1.4rem;
|
||||
}
|
||||
.error_tips{position: absolute; left: 50%; top: 18.2rem; width: 16rem; height: 3.2rem; line-height: 3.2rem; margin-left: -8rem; color: #fff; background: rgba(15,15,30,0.5); border-radius: 8px; display: none;}
|
||||
.remark{padding: 0 1.6rem; color: #4081e1; text-align: right;height: 3.7rem;line-height: 3.7rem;}
|
||||
.btn_row{padding: 0 2rem 1rem;}
|
||||
|
||||
/* .i_money{padding:0rem 0.5rem 0 0; font-size:23px;color: #444;font-family: arial;position:absolute;height:50px;bottom:5px;} */
|
||||
|
||||
.sico_pay_p{padding: 3rem 0 1.5rem 0;}
|
||||
.sico_pay{display: block;width:40px;height:40px;background: url(../images/sellerLogo.png) no-repeat;background-size:40px 40px;margin: 0 auto;overflow-y: hidden;}
|
||||
|
||||
/*.keyboard{background: #fff;}*/
|
||||
.key_table{width: 100%;border-collapse:collapse;border-spacing:1;border-spacing:0;list-style: none;padding: 0;margin: 0;}
|
||||
.key_table td{width: 25%;height: 6.2rem;text-align: center;color:#444}
|
||||
.key_table td.disable{background-color: #a0d7fe;}
|
||||
.keyboard .key{line-height: 6.2rem; font-family:HelveticaNeue; font-size: 3.6rem;}
|
||||
.keyboard .key.clear{background: url(../images/clear.png) center no-repeat; background-size:2.95rem 2.95rem;width: 2.95rem;height:2.95rem}
|
||||
.keyboard .key:active{background-color: #D5D8DB;}
|
||||
.keyboard{background: #fff;}
|
||||
.keyboard .pay_btn{background-color: #0076fe;font-size: 2rem;color: #fff;line-height: 2.3rem;}
|
||||
.pay_btn:active{background-color: #54b8ff;}
|
||||
.pay_btn em{display: block;}
|
||||
|
||||
.pop_remark{background: rgba(255, 255, 255, 0.95); border-radius: 10px; margin: 8rem 4rem; overflow: hidden;}
|
||||
.pop_remark .pop_title{padding: 1.8rem 1.5rem 0; font-size: 1.7rem;}
|
||||
.pop_remark .input_wrap{margin: 1.6rem 1.5rem 2rem;}
|
||||
.pop_remark .input_wrap input{width: 100%; height: 4rem; background: #fff; text-indent: 1rem;}
|
||||
.pop_remark .btn_wrap{display: -webkit-box;}
|
||||
.pop_remark .btn_wrap span{display: block; -webkit-box-flex: 1; width: 1px; height: 5rem; line-height: 5rem; font-size: 1.7rem; color: #007FFF;}
|
||||
|
||||
/* 支付确认====================== */
|
||||
.pay_amount{font-size: 5rem; margin: 3.5rem 0 0.8rem;}
|
||||
.remark2{font-size: 1.5rem; color: #666;}
|
||||
.btn_row2{margin: 5rem 2rem 2rem;}
|
||||
|
||||
/* 支付成功====================== */
|
||||
.bg_wt{background-color: #fff;margin-bottom: 1rem;}
|
||||
.pay_stop{padding: 4rem 0 1rem 0;}
|
||||
.pay_stop .ico_success{display: block;width: 6rem; height: 6rem; background: url(../images/icoSuccess.png) center no-repeat; background-size: 100% 100%;margin: 0 auto;}
|
||||
.pay_suc1{font-size: 1.7rem; color: #4182e2;height: 2.6rem;line-height: 2.6rem;overflow: hidden;}
|
||||
.pay_suc2{font-size: 3rem; color: #333;height: 3.9rem;line-height: 3.9rem;overflow: hidden;}
|
||||
.pay_suc2 i{font-size: 1.5rem;}
|
||||
.pay_suc3{font-size: 1.5rem;color: #999;height: 3.7rem;line-height: 3.7rem;overflow: hidden;}
|
||||
.btn_p{padding: 2rem 0 2.4rem 0;}
|
||||
|
||||
.btn_wt{width: 12.5rem;color: #4182e2;background-color: #fff;}
|
||||
.btn_wt:active{ background-color:#eee;}
|
||||
|
||||
|
||||
/*discount*/
|
||||
.discount{padding-bottom: 2rem;}
|
||||
.discount-tit{
|
||||
font-size: 2.5rem;
|
||||
padding: 2.5rem 0;
|
||||
color:#4182e2;
|
||||
text-align: center;
|
||||
}
|
||||
.discount-box{
|
||||
margin: 0 2rem;
|
||||
background: #fff;
|
||||
-wekkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.discount-box img{
|
||||
max-width: 18.15rem;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
padding: 3rem 0 1rem 0;
|
||||
}
|
||||
.discount-box .t1{
|
||||
color:#999;
|
||||
font-size: 1.4rem;
|
||||
padding: 0.5rem 0;
|
||||
}
|
||||
.discount-box .t2{
|
||||
color:#000;
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
.discount-box .t2 span{font-size: 4rem;}
|
||||
.discount-box .t3{
|
||||
margin: 2.5rem 1rem 0 1rem;
|
||||
border-top: 1px dashed #ddd;
|
||||
padding: 1rem 1rem 2.6rem 1rem;
|
||||
line-height: 2.8rem;
|
||||
color:#999;
|
||||
}
|
||||
.discount-box .clear{
|
||||
overflow: hidden;
|
||||
}
|
||||
.discount-box .fl{
|
||||
float: left;
|
||||
}
|
||||
.discount-box .fr{
|
||||
float: right;
|
||||
}
|
||||
.discount-box .grey{
|
||||
color:#666;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
.discount-box .orange{
|
||||
color:#ff9742;
|
||||
}
|
||||
.discount-box .btn{
|
||||
margin-top: 2.5rem;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
color:#fff;
|
||||
font-size: 1.7rem;
|
||||
line-height: 4.5rem;
|
||||
background: #4182e2;
|
||||
}
|
||||
.discount-box .btn:active{
|
||||
background:#2667c7;
|
||||
}
|
||||
.discount-box .disable,.discount-box .disable:active{
|
||||
background:#ddd;
|
||||
}
|
||||
.tdVerTop{vertical-align:top;}
|
||||
@media (max-width:340px){
|
||||
.set_amount .amount_bd .input_simu {
|
||||
font-family: HelveticaNeue;
|
||||
font-size: 30px;
|
||||
}
|
||||
.keyboard .key {
|
||||
line-height: 5rem;
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
.key_table td {
|
||||
height: 5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.set_remark{
|
||||
display: flex;
|
||||
padding: 1.5rem;
|
||||
}
|
||||
.have_been_set {
|
||||
width: 100%;
|
||||
text-align: justify;
|
||||
margin-left: 3px;
|
||||
}
|
||||
.have_been_set>span {
|
||||
font-size: 13px;
|
||||
color: #b7b7b7;
|
||||
}
|
||||
.remark_operate{
|
||||
margin-left: 15px;
|
||||
display: contents;
|
||||
}
|
||||
.remark_operate>a{
|
||||
text-decoration: none;
|
||||
}
|
||||
.remark_operate .remark_edit,
|
||||
.remark_operate .remark_clear_away{
|
||||
display: none;
|
||||
}
|
||||
.remark_operate.yes .remark_add{
|
||||
display: none;
|
||||
}
|
||||
.remark_operate.yes .remark_edit,
|
||||
.remark_operate.yes .remark_clear_away{
|
||||
display: inline-block;
|
||||
}
|
||||
.remark_add,
|
||||
.remark_edit,
|
||||
.remark_clear_away{
|
||||
color: #9da7b2;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
margin-left: 2.5px;
|
||||
padding: 3px 3px 3px 15px;
|
||||
position: relative;
|
||||
background: #cccccc45;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.remark_add::after{
|
||||
content: '';
|
||||
position: absolute;
|
||||
background-image: url(data:image/png;base64,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);
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
left: 3.5px;
|
||||
bottom: 6.5px;
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
}
|
||||
.remark_edit::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
background-image: url(data:image/png;base64,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);
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
left: 1px;
|
||||
bottom: 4px;
|
||||
width: 1.5rem;
|
||||
height: 1.5rem;
|
||||
}
|
||||
.remark_clear_away::after{
|
||||
content: '';
|
||||
position: absolute;
|
||||
background-image: url(data:image/png;base64,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);
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
left: 3px;
|
||||
bottom: 6px;
|
||||
width: 0.95rem;
|
||||
height: 0.95rem;
|
||||
}
|
||||
|
||||
.modal {
|
||||
display: none;
|
||||
position: fixed;
|
||||
z-index: 1;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-color: rgba(0,0,0,0.4);
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.modal.show {
|
||||
display: flex;
|
||||
transition: opacity .5s linear;
|
||||
opacity: 1;
|
||||
}
|
||||
.modal-content {
|
||||
background-color: #fefefe;
|
||||
margin: 50% auto;
|
||||
border: 1px solid #888;
|
||||
width: 80%;
|
||||
border-radius: 7px;
|
||||
}
|
||||
.modal-header{
|
||||
display: flex;
|
||||
position: sticky;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 15px;
|
||||
color: #626262;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
.modal-body {
|
||||
padding: 20px;
|
||||
}
|
||||
.modal-header .close {
|
||||
color: #aaa;
|
||||
position: absolute;
|
||||
right: 15px;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.modal-header .close:hover,
|
||||
.modal-header .close:focus {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
.modal-body textarea {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid #ddd;
|
||||
resize: none;
|
||||
}
|
||||
.modal-body button {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
margin-top: 10px;
|
||||
border-radius: 5px;
|
||||
border: none;
|
||||
background-color: #007bff;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.modal-body .remark-tip{
|
||||
display: none;
|
||||
color: red;
|
||||
font-size: 12px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
if(!defined('IN_CRONLITE'))exit();
|
||||
?><html class="weui-msg">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<title>错误提示</title>
|
||||
<link href="/assets/css/weui.min.css" rel="stylesheet">
|
||||
<style>.page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box}</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page">
|
||||
<div class="weui-msg">
|
||||
<div class="weui-msg__icon-area">
|
||||
<i class="weui-icon-warn weui-icon_msg"></i>
|
||||
</div>
|
||||
<div class="weui-msg__text-area">
|
||||
<h2 class="weui-msg__title"><?php echo $msg?></h2>
|
||||
</div>
|
||||
<div class="weui-msg__opr-area">
|
||||
<p class="weui-btn-area">
|
||||
<a href="javascript:;" class="weui-btn weui-btn_default" id="Close">关闭</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="weui-msg__extra-area">
|
||||
<div class="weui-footer"><p class="weui-footer__links"></p></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="<?php echo $cdnpublic?>jquery/1.12.4/jquery.min.js"></script>
|
||||
<script src="js/close.js"></script>
|
||||
<script>
|
||||
document.body.addEventListener('touchmove', function (event) {
|
||||
event.preventDefault();
|
||||
},{ passive: false });
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 387 B |
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.0 KiB |
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
include("../includes/common.php");
|
||||
|
||||
function showerror($msg){
|
||||
global $cdnpublic;
|
||||
include ROOT.'paypage/error.php';
|
||||
exit;
|
||||
}
|
||||
|
||||
function showerrorjson($msg){
|
||||
$result = ['code'=>-1, 'msg'=>$msg];
|
||||
exit(json_encode($result));
|
||||
}
|
||||
|
||||
function check_paytype(){
|
||||
$type=null;
|
||||
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger/')!==false){
|
||||
$type='wxpay';
|
||||
}elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'AlipayClient/')!==false){
|
||||
$type='alipay';
|
||||
}elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'QQ/')!==false){
|
||||
$type='qqpay';
|
||||
}
|
||||
return $type;
|
||||
}
|
||||
|
||||
function alipayOpenId($channel){
|
||||
global $DB,$siteurl;
|
||||
$channel = \lib\Channel::get($channel);
|
||||
if(!$channel)showerror('支付通道不存在');
|
||||
$alipay_config = require(PLUGIN_ROOT.$channel['plugin'].'/inc/config.php');
|
||||
try{
|
||||
[$user_type, $user_id] = alipay_oauth($alipay_config);
|
||||
}catch(Exception $e){
|
||||
showerror($e->getMessage());
|
||||
}
|
||||
return $user_id;
|
||||
}
|
||||
|
||||
function weixinOpenId($channel){
|
||||
global $DB;
|
||||
$channel = \lib\Channel::get($channel);
|
||||
if(!$channel)showerror('支付通道不存在');
|
||||
|
||||
$wxinfo = \lib\Channel::getWeixin($channel['appwxmp']);
|
||||
if(!$wxinfo)showerror('支付通道绑定的微信公众号不存在');
|
||||
|
||||
try{
|
||||
$tools = new \WeChatPay\JsApiTool($wxinfo['appid'], $wxinfo['appsecret']);
|
||||
$openId = $tools->GetOpenid();
|
||||
}catch(Exception $e){
|
||||
showerror($e->getMessage());
|
||||
}
|
||||
return $openId;
|
||||
}
|
||||
@@ -0,0 +1,231 @@
|
||||
<?php
|
||||
$is_defend = true;
|
||||
include("./inc.php");
|
||||
if(isset($_GET['merchant'])){
|
||||
$merchant=trim($_GET['merchant']);
|
||||
$uid = authcode($merchant, 'DECODE', SYS_KEY);
|
||||
if(!$uid || !is_numeric($uid))showerror('参数错误');
|
||||
}elseif(isset($_SESSION['paypage_uid'])){
|
||||
$uid = intval($_SESSION['paypage_uid']);
|
||||
}else{
|
||||
showerror('参数不完整');
|
||||
}
|
||||
$userrow = $DB->getRow("SELECT `uid`,`gid`,`money`,`mode`,`pay`,`cert`,`status`,`username`,`channelinfo`,`qq`,`codename`,`deposit` FROM `pre_user` WHERE `uid`='{$uid}' LIMIT 1");
|
||||
if(!$userrow || $userrow['status']==0 || $userrow['pay']==0)showerror('当前商户不存在或已被封禁');
|
||||
if($userrow['pay']==2 && $conf['user_review']==1)showerror('商户没通过审核,请联系官方客服进行审核');
|
||||
$groupconfig = getGroupConfig($userrow['gid']);
|
||||
$conf = array_merge($conf, $groupconfig);
|
||||
if($conf['cert_force']==1 && $userrow['cert']==0){
|
||||
showerror('当前商户未完成实名认证,无法收款');
|
||||
}
|
||||
if($conf['forceqq']==1 && empty($userrow['qq'])){
|
||||
showerror('当前商户未填写联系QQ,无法收款');
|
||||
}
|
||||
if($conf['user_deposit']==1 && $conf['user_deposit_min'] > 0 && $conf['user_deposit_min'] > $userrow['deposit']){
|
||||
showerror('商户保证金不足,请前往支付平台充值保证金后再发起支付');
|
||||
}
|
||||
|
||||
$_SESSION['paypage_uid'] = $uid;
|
||||
|
||||
$direct = '0';
|
||||
$checktype = check_paytype();
|
||||
$type = isset($_GET['type'])?trim($_GET['type']):$checktype;
|
||||
if($type){
|
||||
if((isset($_GET['code']) || isset($_GET['auth_code'])) && $_SESSION['paypage_channel']){
|
||||
$submitData = \lib\Channel::info($_SESSION['paypage_channel'], $userrow['gid']);
|
||||
}else{
|
||||
$submitData = \lib\Channel::submit($type, $uid, $userrow['gid']);
|
||||
$_SESSION['paypage_subchannel'] = $submitData['subchannel'];
|
||||
}
|
||||
$_SESSION['paypage_typeid'] = $submitData['typeid'];
|
||||
$_SESSION['paypage_channel'] = $submitData['channel'];
|
||||
$_SESSION['paypage_rate'] = $submitData['rate'];
|
||||
$_SESSION['paypage_paymax'] = $submitData['paymax'];
|
||||
$_SESSION['paypage_paymin'] = $submitData['paymin'];
|
||||
$_SESSION['paypage_mode'] = $submitData['mode'];
|
||||
|
||||
$apptype = explode(',',$submitData['apptype']);
|
||||
if($checktype == 'alipay' && $type == 'alipay' && ($submitData['plugin']=='alipay' || $submitData['plugin']=='alipaysl' || $submitData['plugin']=='alipayd') && in_array('4',$apptype)){
|
||||
$openId = alipayOpenId($submitData['channel']);
|
||||
$direct = '1';
|
||||
}elseif($checktype == 'wxpay' && $type == 'wxpay' && ($submitData['plugin']=='wxpay' || $submitData['plugin']=='wxpaysl' || $submitData['plugin']=='wxpayn' || $submitData['plugin']=='wxpaynp') && in_array('2',$apptype)){
|
||||
$openId = weixinOpenId($submitData['channel']);
|
||||
$direct = '1';
|
||||
}elseif($checktype == 'qqpay' && $type == 'qqpay'&& $submitData['plugin']=='qqpay' && in_array('2',$apptype)){
|
||||
$direct = '1';
|
||||
}
|
||||
}
|
||||
|
||||
$money = isset($_GET['money'])?$_GET['money']:null;
|
||||
if($money<=0 || !is_numeric($money) || !preg_match('/^[0-9.]+$/', $money))$money = null;
|
||||
$codename = !empty($userrow['codename'])?$userrow['codename']:$userrow['username'];
|
||||
$csrf_token = md5(mt_rand(0,999).time());
|
||||
$_SESSION['paypage_token'] = $csrf_token;
|
||||
?>
|
||||
<html lang="zh-cn">
|
||||
<head>
|
||||
<title>向商户付款</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="cache-control" content="no-cache">
|
||||
<meta http-equiv="expires" content="0">
|
||||
<link rel="stylesheet" href="css/default.css">
|
||||
<link rel="stylesheet" href="css/style.css?version=1001">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layout-flex wrap">
|
||||
|
||||
<!-- content start -->
|
||||
<div class="content">
|
||||
<div class="mar20">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><span class="sico_pay" style="margin:5px 5px 10px 5px"></span></td>
|
||||
<td class="selTitle"><?php echo $codename?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<form name="payForm" action="dopay" method="post">
|
||||
<input type="hidden" name="uid" id="uid" value="<?php echo $uid?>">
|
||||
<input type="hidden" name="token" id="token" value="<?php echo $csrf_token?>">
|
||||
<input type="hidden" name="paytype" id="paytype" value="<?php echo $type?>">
|
||||
<input type="hidden" name="direct" id="direct" value="<?php echo $direct?>">
|
||||
<input type="hidden" name="payer" id="payer" value="<?php echo $openId?>">
|
||||
<input type="hidden" name="trade_no" id="trade_no" value="">
|
||||
<?php if($money){?><input type="hidden" name="txAmount" id="txAmount" value="<?php echo $money?>"><?php }?>
|
||||
<div class="set_amount">
|
||||
<div class="payMoney marLeft10">请输入付款金额</div>
|
||||
<div class="amount_bd">
|
||||
<i class="i_money marLeft10" style="">¥</i>
|
||||
<span class="input_simu " id="amount"></span>
|
||||
|
||||
<!-- 模拟input -->
|
||||
<em class="line_simu" id="line"></em>
|
||||
<!-- 模拟闪烁的光标 -->
|
||||
<div id="clearBtn" style="touch-action: pan-y; user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></div>
|
||||
<!-- 清除按钮 -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_remark">
|
||||
<div class="have_been_set">
|
||||
<span>备注:<span id="remark-content"></span></span>
|
||||
<div class="remark_operate">
|
||||
<a href="#" class="remark_add" id="openModal">添加备注</a>
|
||||
<a href="#" class="remark_edit">编辑</a>
|
||||
<a href="#" class="remark_clear_away">清除</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div id="myModal" class="modal">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="title">添加备注</h5>
|
||||
<span class="close" id="modal-close">×</span>
|
||||
</div>
|
||||
<div class="modal-body" id="remark-form">
|
||||
<textarea name="remark" placeholder="请输入备注内容,30个字以内" rows="3"></textarea>
|
||||
<button type="button">确认</button>
|
||||
<div class="remark-tip">备注内容不能超过30个字</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content end -->
|
||||
|
||||
<div class="copyRight">由 <span style="font-weight:bold"><?php echo $conf['sitename']?></span> 提供服务支持</div>
|
||||
<!-- 键盘 -->
|
||||
<div class="keyboard">
|
||||
<table class="key_table" id="keyboard" style="touch-action:pan-y; user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="key border b_rgt_btm" data-value="1">1</td>
|
||||
<td class="key border b_rgt_btm" data-value="2">2</td>
|
||||
<td class="key border b_rgt_btm" data-value="3">3</td>
|
||||
<td class="key border b_btm clear" data-value="delete"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="key border b_rgt_btm" data-value="4">4</td>
|
||||
<td class="key border b_rgt_btm" data-value="5">5</td>
|
||||
<td class="key border b_rgt_btm" data-value="6">6</td>
|
||||
<td class="pay_btn" rowspan="3" id="payBtn" style="touch-action: pan-y; user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);"><em>确认</em>支付</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="key border b_rgt_btm" data-value="7">7</td>
|
||||
<td class="key border b_rgt_btm" data-value="8">8</td>
|
||||
<td class="key border b_rgt_btm" data-value="9">9</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="key border b_rgt" data-value="0">0</td>
|
||||
<td class="key border b_rgt" data-value="dot">.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="<?php echo $cdnpublic?>jquery/3.4.1/jquery.min.js"></script>
|
||||
<script src="//open.mobile.qq.com/sdk/qqapi.js?_bid=152"></script>
|
||||
<script src="js/hammer.js"></script>
|
||||
<script src="js/common.js"></script>
|
||||
<script src="js/pay.js?v=1004"></script>
|
||||
<script>
|
||||
document.body.addEventListener('touchmove', function (event) {
|
||||
event.preventDefault();
|
||||
},{ passive: false });
|
||||
var tips = new Tips();
|
||||
|
||||
// 模态框操作
|
||||
var modal = document.getElementById("myModal");
|
||||
document.querySelector(".remark_add").onclick = function() {
|
||||
modal.classList.add("show");
|
||||
document.querySelector(".modal-header .title").innerText = "添加备注";
|
||||
}
|
||||
document.getElementById("modal-close").onclick = function() {
|
||||
modal.classList.remove("show");
|
||||
modal.addEventListener('transitionend', () => {
|
||||
modal.style.display = "none";
|
||||
}, { once: true });
|
||||
}
|
||||
|
||||
// 添加备注
|
||||
var submitBtn = document.querySelector("#remark-form button");
|
||||
submitBtn.onclick = function() {
|
||||
var remark = document.querySelector("#remark-form textarea").value;
|
||||
if (remark.length > 30) {
|
||||
document.querySelector(".remark-tip").style.display = "block";
|
||||
document.querySelector("#remark-form textarea").style.borderColor = "red";
|
||||
document.querySelector("#remark-form textarea").onfocus = function() {
|
||||
document.querySelector("#remark-form textarea").style.borderColor = "#ddd";
|
||||
document.querySelector(".remark-tip").style.display = "none";
|
||||
}
|
||||
return;
|
||||
}
|
||||
document.querySelector("#remark-content").innerText = remark;
|
||||
modal.classList.remove("show");
|
||||
modal.addEventListener('transitionend', () => {
|
||||
modal.style.display = "none";
|
||||
}, { once: true });
|
||||
if(remark.length > 0){
|
||||
document.querySelector(".remark_operate").classList.add("yes");
|
||||
}
|
||||
}
|
||||
// 编辑备注
|
||||
document.querySelector(".remark_edit").onclick = function() {
|
||||
modal.classList.add("show");
|
||||
document.querySelector(".modal-header .title").innerText = "编辑备注";
|
||||
}
|
||||
// 清除备注
|
||||
document.querySelector(".remark_clear_away").onclick = function() {
|
||||
document.querySelector("#remark-content").innerText = "";
|
||||
document.querySelector("#remark-form textarea").value = "";
|
||||
document.querySelector(".remark_operate").classList.remove("yes");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,36 @@
|
||||
if(navigator.userAgent.indexOf("AlipayClient/") > -1){
|
||||
function Alipayready(callback) {
|
||||
if (window.AlipayJSBridge) {
|
||||
callback && callback();
|
||||
} else {
|
||||
document.addEventListener('AlipayJSBridgeReady', callback, false);
|
||||
}
|
||||
}
|
||||
Alipayready(function(){
|
||||
$('#Close').click(function() {
|
||||
AlipayJSBridge.call('popWindow');
|
||||
});
|
||||
})
|
||||
}else if(navigator.userAgent.indexOf("MicroMessenger/") > -1){
|
||||
if (typeof WeixinJSBridge == "undefined") {
|
||||
if (document.addEventListener) {
|
||||
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
|
||||
} else if (document.attachEvent) {
|
||||
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
|
||||
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
|
||||
}
|
||||
} else {
|
||||
jsApiCall();
|
||||
}
|
||||
function jsApiCall() {
|
||||
$('#Close').click(function() {
|
||||
WeixinJSBridge.call('closeWindow');
|
||||
});
|
||||
}
|
||||
}else if(navigator.userAgent.indexOf("QQ/") > -1){
|
||||
$('#Close').hide();
|
||||
}else {
|
||||
$('#Close').click(function() {
|
||||
window.opener=null;window.close();
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
function getId(value){
|
||||
return document.getElementById(value);
|
||||
}
|
||||
|
||||
//ajax post
|
||||
function Post(option){
|
||||
var url = option.url || "";
|
||||
var data = (function(){
|
||||
var text = '';
|
||||
if(option.data && option.data.constructor == Object){
|
||||
var arr = [];
|
||||
for(var key in option.data){
|
||||
arr.push(key+'='+option.data[key]);
|
||||
}
|
||||
text = arr.join('&');
|
||||
}
|
||||
return text;
|
||||
})();
|
||||
var toJson = option.dataType == 'text' ? false : true;
|
||||
var success = option.success || function(){};
|
||||
var error = option.error || function(){};
|
||||
var timeout = option.timeout || 30000;
|
||||
var isTimeout = false;
|
||||
var http = new XMLHttpRequest();
|
||||
var timer = setTimeout(function(){
|
||||
isTimeout = true;
|
||||
http.abort();
|
||||
error();
|
||||
},timeout);
|
||||
http.open("POST",url,true);
|
||||
http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
||||
http.onreadystatechange = function(){
|
||||
if(http.readyState != 4 || isTimeout){return;}
|
||||
clearTimeout(timer);
|
||||
if(http.status == 200){
|
||||
var response = toJson ? JSON.parse(http.responseText) : http.responseText;
|
||||
success(response);
|
||||
}else{
|
||||
error();
|
||||
}
|
||||
};
|
||||
http.send(data);
|
||||
}
|
||||
|
||||
//loading
|
||||
function Loading(){
|
||||
var obj = document.createElement('div');
|
||||
var box = document.createElement('div');
|
||||
var img = document.createElement('div');
|
||||
var txt = document.createElement('p');
|
||||
|
||||
obj.className = 'circle-box none';
|
||||
box.className = 'circle_animate';
|
||||
img.className = 'circle';
|
||||
box.appendChild(img);
|
||||
box.appendChild(txt);
|
||||
obj.appendChild(box);
|
||||
if(script){
|
||||
script.parentNode.insertBefore(obj,script);
|
||||
}else{
|
||||
document.body.appendChild(obj);
|
||||
}
|
||||
|
||||
this.show = function(value){
|
||||
txt.innerHTML = value || '加载中...';
|
||||
obj.classList.remove('none');
|
||||
};
|
||||
|
||||
this.hide = function(){
|
||||
obj.classList.add('none');
|
||||
txt.innerHTML = '';
|
||||
};
|
||||
}
|
||||
|
||||
//tips
|
||||
function Tips(){
|
||||
var obj = document.createElement('div');
|
||||
var box = document.createElement('div');
|
||||
var con = document.createElement('div');
|
||||
var txt = document.createElement('div');
|
||||
var p = document.createElement('p');
|
||||
var btnBox = document.createElement('p');
|
||||
var btn = document.createElement('span');
|
||||
|
||||
obj.className = 'pop_wrapper none';
|
||||
box.className = 'pop_outer';
|
||||
con.className = 'pop_cont';
|
||||
txt.className = 'pop_tip';
|
||||
p.className = 'border b_top';
|
||||
btnBox.className = 'pop_wbtn';
|
||||
btn.className='pop_btn'
|
||||
|
||||
btn.innerHTML = '我知道了';
|
||||
|
||||
p.appendChild(btn);
|
||||
con.appendChild(txt);
|
||||
con.appendChild(p);
|
||||
box.appendChild(con);
|
||||
obj.appendChild(box);
|
||||
if(script){
|
||||
script.parentNode.insertBefore(obj,script);
|
||||
}else{
|
||||
document.body.appendChild(obj);
|
||||
}
|
||||
|
||||
function hideFun(){
|
||||
obj.classList.add('none');
|
||||
}
|
||||
|
||||
this.show = function(value,callback){
|
||||
var fun = callback || hideFun;
|
||||
txt.innerHTML = value || ' ';
|
||||
p.onclick = callback || hideFun;
|
||||
obj.classList.remove('none');
|
||||
};
|
||||
|
||||
this.hide = hideFun;
|
||||
}
|
||||
|
||||
document.body.addEventListener('touchstart',function(){},false);
|
||||
var script = document.body.getElementsByTagName('script')[0];
|
||||
var loading = new Loading();
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,228 @@
|
||||
//insert
|
||||
function keypress(e){
|
||||
e.preventDefault();
|
||||
var target = e.target;
|
||||
var value = target.getAttribute('data-value');
|
||||
var dot = valueCur.match(/\.\d{2,}$/);
|
||||
if(!value || (value !== 'delete' && dot)){
|
||||
return;
|
||||
}
|
||||
|
||||
switch(value){
|
||||
case '0' :
|
||||
valueCur = valueCur === '0' ? valueCur : valueCur + value;
|
||||
break;
|
||||
case 'dot' :
|
||||
valueCur = valueCur === '' ? valueCur : valueCur.indexOf('.') > -1 ? valueCur : valueCur + '.';
|
||||
break;
|
||||
case 'delete' :
|
||||
valueCur = valueCur.slice(0,valueCur.length-1);
|
||||
break;
|
||||
default :
|
||||
valueCur = valueCur === '0' ? value : valueCur + value;
|
||||
}
|
||||
|
||||
if(!!valueCur && value !== 'delete' && value !== 'dot') {
|
||||
var re = /^\d{1,9}(\.\d{0,2})?$/;
|
||||
var limitLen = re.test(valueCur);
|
||||
if (!limitLen) {
|
||||
valueCur = valueCur.slice(0,valueCur.length-1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
format();
|
||||
}
|
||||
|
||||
//format
|
||||
function format(){
|
||||
var arr = valueCur.split('.');
|
||||
var right = arr.length === 2 ? '.'+arr[1] : '';
|
||||
var num = arr[0];
|
||||
var left = '';
|
||||
while(num.length > 3){
|
||||
left = ',' + num.slice(-3) + left;
|
||||
num = num.slice(0,num.length - 3);
|
||||
}
|
||||
left = num + left;
|
||||
valueFormat = left+right;
|
||||
valueFinal = valueCur === '' ? 0 : parseFloat(valueCur);
|
||||
check();
|
||||
}
|
||||
|
||||
//check
|
||||
function check(){
|
||||
amount.innerHTML = valueFormat;
|
||||
if(valueFormat.length > 0){
|
||||
clearBtn.classList.remove('none');
|
||||
}else{
|
||||
clearBtn.classList.add('none');
|
||||
}
|
||||
if(valueFinal === 0 || valueCur.match(/\.$/)){
|
||||
payBtn.classList.add('disable');
|
||||
}else{
|
||||
payBtn.classList.remove('disable');
|
||||
}
|
||||
}
|
||||
|
||||
//clear
|
||||
function clearFun(){
|
||||
valueCur = '';
|
||||
valueFormat = '';
|
||||
valueFinal = 0;
|
||||
amount.innerHTML = '';
|
||||
clearBtn.classList.add('none');
|
||||
payBtn.classList.add('disable');
|
||||
}
|
||||
|
||||
//submit
|
||||
function submitFun(){
|
||||
if(!submitAble || payBtn.classList.contains('disable')){
|
||||
return;
|
||||
}
|
||||
var txAmount = $("#txAmount").val();
|
||||
if (!!txAmount && txAmount > 0) {
|
||||
valueFinal = txAmount;
|
||||
}
|
||||
if(valueFinal == 0){
|
||||
tips.show('请输入金额!');
|
||||
return;
|
||||
}
|
||||
|
||||
var amount = valueFinal;
|
||||
var uid = $("#uid").val();
|
||||
var paytype = $("#paytype").val();
|
||||
var token = $("#token").val();
|
||||
var direct = $("#direct").val();
|
||||
var payer = $("#payer").val();
|
||||
var remark = document.querySelector("#remark-content").innerText;
|
||||
|
||||
submitAble = false;
|
||||
loading.show();
|
||||
new Post({
|
||||
url : 'ajax.php',
|
||||
dataType : 'json',
|
||||
data : {"money":amount,"payer":payer,"uid":uid,"paytype":paytype,"direct":direct,"remark":remark,"token":token},
|
||||
error : function(){
|
||||
loading.hide();
|
||||
submitAble = true;
|
||||
//update by yuwm 2018.03.14
|
||||
tips.show('<span style="color:#959595;margin-top:5px">网络异常,请重新发起支付</span>');
|
||||
},
|
||||
success : function(data){
|
||||
loading.hide();
|
||||
if(data.code=="0"){//success
|
||||
$("#trade_no").val(data.trade_no);
|
||||
if (data.direct==1) {
|
||||
if (paytype == 'wxpay') {
|
||||
WxpayJsPay(data.paydata);
|
||||
} else if (paytype == 'alipay') {
|
||||
AlipayJsPay(data.paydata);
|
||||
} else if (paytype == 'qqpay') {
|
||||
QQJsPay(data.paydata);
|
||||
}
|
||||
}else{
|
||||
window.location.href= data.url;
|
||||
}
|
||||
}else{
|
||||
tips.show(data.msg);
|
||||
}
|
||||
submitAble = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//region WX JS
|
||||
function WxpayJsPay(payStr){
|
||||
var jsonPayStr = eval("("+payStr+")");
|
||||
WeixinJSBridge.invoke(
|
||||
'getBrandWCPayRequest',
|
||||
jsonPayStr,
|
||||
function(res){
|
||||
// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。
|
||||
if(res.err_msg == "get_brand_wcpay_request:ok" ) {
|
||||
// 支付成功则关闭窗口
|
||||
// tips.show("支付成功");
|
||||
//WeixinJSBridge.call('closeWindow');
|
||||
window.location.href="./success.php?trade_no="+$("#trade_no").val();
|
||||
} else if(res.err_msg == "get_brand_wcpay_request:cancel") {
|
||||
// tips.show("支付过程中用户取消");
|
||||
} else if(res.err_msg == "get_brand_wcpay_request:fail") {
|
||||
tips.show("支付失败");
|
||||
}else{
|
||||
tips.show("支付失败");
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
//endregion
|
||||
|
||||
//region ALI JS
|
||||
function AlipayJsPay(payStr) {
|
||||
var trade_no = $("#trade_no").val();
|
||||
Alipayready(function(){
|
||||
AlipayJSBridge.call("tradePay",{
|
||||
tradeNO: payStr
|
||||
}, function(result){
|
||||
var msg = "";
|
||||
if(result.resultCode == "9000"){
|
||||
//AlipayJSBridge.call('closeWebview');
|
||||
window.location.href="./success.php?trade_no="+$("#trade_no").val();
|
||||
}else if(result.resultCode == "8000"){
|
||||
msg = "正在处理中";
|
||||
}else if(result.resultCode == "4000"){
|
||||
msg = "订单支付失败";
|
||||
}else if(result.resultCode == "6002"){
|
||||
msg = "网络连接出错";
|
||||
}
|
||||
if (msg!="") {
|
||||
tips.show(msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
function Alipayready(callback) {
|
||||
// 如果jsbridge已经注入则直接调用
|
||||
if (window.AlipayJSBridge) {
|
||||
callback && callback();
|
||||
} else {
|
||||
// 如果没有注入则监听注入的事件
|
||||
document.addEventListener('AlipayJSBridgeReady', callback, false);
|
||||
}
|
||||
}
|
||||
//endregion
|
||||
|
||||
//region QQ JS
|
||||
function QQJsPay(payStr){
|
||||
var trade_no = $("#trade_no").val();
|
||||
var jsonPayStr = eval("("+payStr+")");
|
||||
mqq.tenpay.pay({
|
||||
tokenId: jsonPayStr.tokenId,
|
||||
appInfo: jsonPayStr.appInfo
|
||||
}, function(result, resultCode){
|
||||
if(resultCode == 0){ //支付成功
|
||||
//mqq.ui.popBack();
|
||||
window.location.href="./success.php?trade_no="+$("#trade_no").val();
|
||||
}else{
|
||||
tips.show("支付失败");
|
||||
}
|
||||
});
|
||||
}
|
||||
//endregion
|
||||
|
||||
|
||||
var keyboard = getId('keyboard');
|
||||
var clearBtn = getId('clearBtn');
|
||||
var payBtn = getId('payBtn');
|
||||
var valueCur = '';
|
||||
var valueFormat = '';
|
||||
var submitAble = true;
|
||||
var valueFinal = 0;
|
||||
|
||||
new Hammer(keyboard).on('tap',keypress);
|
||||
new Hammer(payBtn).on('tap',submitFun);
|
||||
new Hammer(clearBtn).on('tap',clearFun);
|
||||
|
||||
var txAmount = $("#txAmount").val();
|
||||
if (!!txAmount && txAmount > 0) {
|
||||
submitFun()
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$is_defend = true;
|
||||
include("./inc.php");
|
||||
@header('Content-Type: text/html; charset=UTF-8');
|
||||
$trade_no=daddslashes($_GET['trade_no']);
|
||||
$row=$DB->getRow("SELECT * FROM pre_order WHERE trade_no='{$trade_no}' limit 1");
|
||||
if(!$row)showerror('订单号不存在');
|
||||
if($row['status']!=1)showerror('订单未完成支付');
|
||||
if(!isset($_SESSION['paypage_trade_no']) || $_SESSION['paypage_trade_no']!=$trade_no)showerror('订单校验失败');
|
||||
$userrow=$DB->getRow("select codename,username from pre_user where uid='{$row['uid']}' limit 1");
|
||||
$codename = !empty($userrow['codename'])?$userrow['codename']:$userrow['username'];
|
||||
?>
|
||||
<html class="weui-msg">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<title>支付成功页面</title>
|
||||
<link href="/assets/css/weui.min.css" rel="stylesheet">
|
||||
<style>.page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box}</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page">
|
||||
<div class="weui-msg">
|
||||
<div class="weui-msg__icon-area">
|
||||
<i class="weui-icon-success weui-icon_msg"></i>
|
||||
</div>
|
||||
<div class="weui-msg__text-area">
|
||||
<h2 class="weui-msg__title">支付成功</h2>
|
||||
<h2 class="weui-msg__title"><span style="font-size:38px;font-weight:700;color:#f40;">¥<?php echo $row['money']?></span></h2>
|
||||
<div class="weui-msg__custom-area">
|
||||
<div class="weui-cells">
|
||||
<div class="weui-cell weui-cell_example">
|
||||
<span class="weui-cell__bd">收款方</span>
|
||||
<span class="weui-cell__ft"><strong><?php echo $codename?></strong></span>
|
||||
</div>
|
||||
<div class="weui-cell weui-cell_example">
|
||||
<span class="weui-cell__bd">完成时间</span>
|
||||
<span class="weui-cell__ft"><?php echo $row['endtime']?></span>
|
||||
</div>
|
||||
<div class="weui-cell weui-cell_example">
|
||||
<span class="weui-cell__bd">订单号</span>
|
||||
<span class="weui-cell__ft"><?php echo $trade_no?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="weui-msg__opr-area">
|
||||
<p class="weui-btn-area">
|
||||
<a href="javascript:;" class="weui-btn weui-btn_default" id="Close">关闭</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="weui-msg__extra-area">
|
||||
<div class="weui-footer"><p class="weui-footer__links"></p><p class="weui-footer__text">Copyright © <?php echo date("Y")?> <?php echo $conf['sitename']?></p></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="<?php echo $cdnpublic?>jquery/1.12.4/jquery.min.js"></script>
|
||||
<script src="//open.mobile.qq.com/sdk/qqapi.js?_bid=152"></script>
|
||||
<script src="js/close.js"></script>
|
||||
<script>
|
||||
document.body.addEventListener('touchmove', function (event) {
|
||||
event.preventDefault();
|
||||
},{ passive: false });
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
$is_defend = true;
|
||||
include("./inc.php");
|
||||
@header('Content-Type: text/html; charset=UTF-8');
|
||||
|
||||
$id = isset($_GET['id'])?trim($_GET['id']):exit('No id');
|
||||
$type = isset($_GET['type'])?trim($_GET['type']):'transfer';
|
||||
|
||||
if($type == 'transfer'){
|
||||
$row = $DB->find('transfer', '*', ['biz_no'=>$id]);
|
||||
if(!$row) showerror('转账订单号不存在');
|
||||
if($row['type'] != 'wxpay') showerror('转账类型错误');
|
||||
if($row['status'] == 2) showerror('转账已失败,请重新提交!失败原因:'.$row['result']);
|
||||
if(empty($row['ext'])) showerror('package_info不存在');
|
||||
$channelid = $row['channel'];
|
||||
$out_biz_no = $row['biz_no'];
|
||||
$money = $row['money'];
|
||||
$addtime = $row['addtime'];
|
||||
$paytime = $row['paytime'];
|
||||
$package_info = $row['ext'];
|
||||
|
||||
}elseif($type == 'settle'){
|
||||
$row = $DB->find('settle', '*', ['id'=>$id]);
|
||||
if(!$row) showerror('结算记录不存在');
|
||||
if(empty($row['transfer_no']) || empty($row['transfer_channel'])) showerror('结算记录未发起转账');
|
||||
if($row['transfer_status'] == 2) showerror('转账已失败,请重新提交!失败原因:'.$row['result']);
|
||||
if(empty($row['transfer_ext'])) showerror('package_info不存在');
|
||||
$channelid = $row['transfer_channel'];
|
||||
$out_biz_no = $row['transfer_no'];
|
||||
$money = $row['realmoney'];
|
||||
$addtime = $row['transfer_date'];
|
||||
$paytime = $row['endtime'];
|
||||
$package_info = $row['transfer_ext'];
|
||||
|
||||
}else{
|
||||
showerror('类型错误');
|
||||
}
|
||||
|
||||
$channel = \lib\Channel::get($channelid);
|
||||
if(!$channel) showerror('当前支付通道信息不存在');
|
||||
$wxinfo = \lib\Channel::getWeixin($channel['appwxmp']);
|
||||
if(!$wxinfo) showerror('支付通道绑定的微信公众号不存在');
|
||||
$url = rtrim($siteurl, '/').$_SERVER['REQUEST_URI'];
|
||||
|
||||
if(!checkwechat()) showerror('请在微信客户端打开链接');
|
||||
|
||||
$result = \lib\Transfer::query('wxpay', $channel, $out_biz_no, '');
|
||||
if($result['code'] == 0){
|
||||
if($result['status'] == 2){
|
||||
if($type == 'transfer' && $row['status'] == 0){
|
||||
$resCount = $DB->update('transfer', ['status'=>2, 'result'=>$result['errmsg']], ['biz_no' => $out_biz_no]);
|
||||
if($row['uid'] > 0 && $resCount > 0){
|
||||
changeUserMoney($row['uid'], $row['costmoney'], true, '代付退回');
|
||||
}
|
||||
}elseif($type == 'settle' && $row['transfer_status'] == 1){
|
||||
$DB->update('settle', ['transfer_status'=>2, 'transfer_result'=>$result['errmsg'], 'status'=>3, 'result'=>$result['errmsg']], ['id' => $row['id']]);
|
||||
}
|
||||
showerror('转账已失败,请重新提交!失败原因:'.$result['errmsg']);
|
||||
}elseif($result['status'] == 1){
|
||||
if($type == 'transfer' && $row['status'] == 0){
|
||||
$paytimen = $result['paydate'] ?? 'NOW()';
|
||||
$DB->update('transfer', ['status'=>1, 'paytime'=>$paytimen, 'result'=>''], ['biz_no' => $out_biz_no]);
|
||||
}
|
||||
if(empty($paytime)) $paytime = date("Y-m-d H:i:s");
|
||||
include ROOT.'paypage/wxtrans_success.php';
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_GET['do']) && $_GET['do'] == 'success'){
|
||||
$paytime = date("Y-m-d H:i:s");
|
||||
include ROOT.'paypage/wxtrans_success.php';
|
||||
exit;
|
||||
}
|
||||
|
||||
try{
|
||||
$wechat = new \lib\wechat\WechatAPI($wxinfo['id']);
|
||||
$wxconfig = $wechat->getJsapiConfig($wxinfo['appid'], $url, ['requestMerchantTransfer']);
|
||||
$wxconfig = json_encode($wxconfig);
|
||||
}catch(Exception $e){
|
||||
showerror($e->getMessage());
|
||||
}
|
||||
|
||||
$wxtransfer = [
|
||||
'mchId' => $channel['appmchid'],
|
||||
'appId' => $wxinfo['appid'],
|
||||
'package' => $package_info,
|
||||
];
|
||||
$wxtransfer = json_encode($wxtransfer);
|
||||
|
||||
include ROOT.'paypage/wxtrans_confirm.php';
|
||||
exit;
|
||||
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
if(!defined('IN_CRONLITE'))exit();
|
||||
?><html class="weui-msg">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<title>确认收款页面</title>
|
||||
<link href="/assets/css/weui.min.css" rel="stylesheet">
|
||||
<style>.page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box}</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page">
|
||||
<div class="weui-msg">
|
||||
<div class="weui-msg__icon-area" style="margin-top:20px">
|
||||
<i class="weui-icon-waiting weui-icon_msg"></i>
|
||||
</div>
|
||||
<div class="weui-msg__text-area">
|
||||
<h2 class="weui-msg__title"><span style="font-size:18px;">待你收款</span></h2>
|
||||
<p class="weui-msg__desc"><span style="font-size:34px;font-weight:700;line-height: 64px;">¥</span><span style="font-size:44px;font-weight:700;vertical-align:top;"><?php echo $money?></span></p>
|
||||
<div class="weui-msg__custom-area">
|
||||
<ul class="weui-form-preview__list">
|
||||
<li role="option" class="weui-form-preview__item"><label class="weui-form-preview__label">转账时间</label><p class="weui-form-preview__value weui-cell__ft"><?php echo $addtime?></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="weui-msg__opr-area">
|
||||
<p class="weui-btn-area">
|
||||
<a href="javascript:;" class="weui-btn weui-btn_primary" id="Confirm" disabled>收款</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="weui-msg__tips-area">
|
||||
<p class="weui-msg__tips">1天内未确认,将退还给商家</p>
|
||||
</div>
|
||||
<div class="weui-msg__extra-area">
|
||||
<div class="weui-footer"><p class="weui-footer__links"></p><p class="weui-footer__text">Copyright © <?php echo date("Y")?> <?php echo $conf['sitename']?></p></div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="alert" id="loadingToast">
|
||||
<div class="weui-mask_transparent"></div>
|
||||
<div class="weui-toast__wrp">
|
||||
<div class="weui-toast">
|
||||
<span class="weui-primary-loading weui-icon_toast">
|
||||
<span class="weui-primary-loading__dot"></span>
|
||||
</span>
|
||||
<p class="weui-toast__content">正在加载</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="<?php echo $cdnpublic?>jquery/1.12.4/jquery.min.js"></script>
|
||||
<script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
|
||||
<script>
|
||||
document.body.addEventListener('touchmove', function (event) {
|
||||
event.preventDefault();
|
||||
},{ passive: false });
|
||||
wx.config(<?php echo $wxconfig?>);
|
||||
wx.ready(function () {
|
||||
$('#loadingToast').fadeOut(100);
|
||||
wx.checkJsApi({
|
||||
jsApiList: ['requestMerchantTransfer'],
|
||||
success: function (res) {
|
||||
if (res.checkResult['requestMerchantTransfer']) {
|
||||
jsApiCall();
|
||||
} else {
|
||||
alert('你的微信版本过低,请更新至最新版本。');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
wx.error(function(res){
|
||||
$('#loadingToast').fadeOut(100);
|
||||
alert(res.errMsg);
|
||||
});
|
||||
function jsApiCall(){
|
||||
$('#Confirm').removeAttr('disabled');
|
||||
$('#Confirm').click(function() {
|
||||
WeixinJSBridge.invoke('requestMerchantTransfer', <?php echo $wxtransfer?>,
|
||||
function (res) {
|
||||
if (res.err_msg === 'requestMerchantTransfer:ok') {
|
||||
window.location.href="<?php echo $url?>&do=success";
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
if(!defined('IN_CRONLITE'))exit();
|
||||
?><html class="weui-msg">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<title>确认收款页面</title>
|
||||
<link href="/assets/css/weui.min.css" rel="stylesheet">
|
||||
<style>.page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box}</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page">
|
||||
<div class="weui-msg">
|
||||
<div class="weui-msg__icon-area" style="margin-top:20px">
|
||||
<i class="weui-icon-success weui-icon_msg"></i>
|
||||
</div>
|
||||
<div class="weui-msg__text-area">
|
||||
<h2 class="weui-msg__title"><span style="font-size:18px;">你已收款,资金已存入零钱</span></h2>
|
||||
<p class="weui-msg__desc"><span style="font-size:34px;font-weight:700;line-height: 64px;">¥</span><span style="font-size:44px;font-weight:700;vertical-align:top;"><?php echo $money?></span></p>
|
||||
<div class="weui-msg__custom-area">
|
||||
<ul class="weui-form-preview__list">
|
||||
<li role="option" class="weui-form-preview__item"><label class="weui-form-preview__label">转账时间</label><p class="weui-form-preview__value weui-cell__ft"><?php echo $addtime?></p></li>
|
||||
<li role="option" class="weui-form-preview__item"><label class="weui-form-preview__label">收款时间</label><p class="weui-form-preview__value weui-cell__ft"><?php echo $paytime?></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="weui-msg__opr-area">
|
||||
<p class="weui-btn-area">
|
||||
<a href="javascript:;" class="weui-btn weui-btn_default" id="Close">关闭</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="weui-msg__extra-area">
|
||||
<div class="weui-footer"><p class="weui-footer__links"></p><p class="weui-footer__text">Copyright © <?php echo date("Y")?> <?php echo $conf['sitename']?></p></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="<?php echo $cdnpublic?>jquery/1.12.4/jquery.min.js"></script>
|
||||
<script>
|
||||
document.body.addEventListener('touchmove', function (event) {
|
||||
event.preventDefault();
|
||||
},{ passive: false });
|
||||
if (typeof WeixinJSBridge == "undefined") {
|
||||
if (document.addEventListener) {
|
||||
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
|
||||
} else if (document.attachEvent) {
|
||||
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
|
||||
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
|
||||
}
|
||||
} else {
|
||||
jsApiCall();
|
||||
}
|
||||
function jsApiCall() {
|
||||
$('#Close').click(function() {
|
||||
WeixinJSBridge.call('closeWindow');
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user