File size: 8,724 Bytes
0d5b03e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
<?php
include("../includes/common.php");
$title='企业付款';
include './head.php';
if($islogin==1){}else exit("<script language='javascript'>window.location.href='./login.php';</script>");
?>
<div class="container" style="padding-top:70px;">
<div class="col-xs-12 col-sm-10 col-lg-8 center-block" style="float: none;">
<?php
$app = isset($_GET['app'])?$_GET['app']:'alipay';
if($app=='alipay'){
$default_channel = $conf['transfer_alipay'];
}elseif($app=='wxpay'){
$default_channel = $conf['transfer_wxpay'];
}elseif($app=='qqpay'){
$default_channel = $conf['transfer_qqpay'];
}elseif($app=='bank'){
$default_channel = $conf['transfer_bank'];
}else{
showmsg('参数错误',4);
}
if(isset($_POST['submit'])){
if(!checkRefererHost())exit();
$out_biz_no = trim($_POST['out_biz_no']);
if(!isset($_POST['paypwd']) || $_POST['paypwd']!==$conf['admin_paypwd'])showmsg('支付密码错误',3);
$payee_account = htmlspecialchars(trim($_POST['payee_account']));
$payee_real_name = htmlspecialchars(trim($_POST['payee_real_name']));
$money = trim($_POST['money']);
$desc = htmlspecialchars(trim($_POST['desc']));
if(empty($out_biz_no) || empty($payee_account) || empty($money))showmsg('必填项不能为空',3);
if($desc && mb_strlen($desc)>32)showmsg('转账备注最多32个字',3);
if(!is_numeric($money) || !preg_match('/^[0-9.]+$/', $money) || $money<=0)showmsg('转账金额输入不规范',3);
if ($app=='qqpay' && (!is_numeric($payee_account) || strlen($payee_account)<6 || strlen($payee_account)>10))showmsg('QQ号码格式错误',3);
$channelid = isset($_POST['channel'])?$_POST['channel']:$default_channel;
$channel = \lib\Channel::get($channelid);
if(!$channel)showmsg('当前支付通道信息不存在',4);
$result = \lib\Transfer::submit($app, $channel, $out_biz_no, $payee_account, $payee_real_name, $money, $desc);
if($result['code']==0){
$data = ['biz_no'=>$out_biz_no, 'uid'=>0, 'type'=>$app, 'channel'=>$channelid, 'account'=>$payee_account, 'username'=>$payee_real_name, 'money'=>$money, 'costmoney'=>$money, 'paytime'=>'NOW()', 'pay_order_no'=>$result['orderid'], 'status'=>$result['status'], 'desc'=>$desc];
$DB->insert('transfer', $data);
if($result['status'] == 1){
$result='转账成功!转账单据号:'.$result['orderid'].' 支付时间:'.$result['paydate'];
}else{
$result='提交成功!转账处理中,请稍后在付款记录页面查看结果。转账单据号:'.$result['orderid'].' 支付时间:'.$result['paydate'];
}
showmsg($result,1,'./transfer.php');
}else{
$result='转账失败:'.$result['msg'];
showmsg($result,4);
}
}
$out_biz_no = date("YmdHis").rand(11111,99999);
$channel_select = $DB->getAll("SELECT id,name,plugin FROM pre_channel WHERE plugin IN (SELECT name FROM pre_plugin WHERE transtypes LIKE '%".$app."%')");
?>
<div class="panel panel-primary">
<div class="panel-heading"><h3 class="panel-title">企业付款</h3></div>
<div class="panel-body">
<ul class="nav nav-tabs">
<li class="<?php echo $app=='alipay'?'active':null;?>"><a href="?app=alipay">支付宝</a></li><li class="<?php echo $app=='wxpay'?'active':null;?>"><a href="?app=wxpay">微信</a></li><li class="<?php echo $app=='qqpay'?'active':null;?>"><a href="?app=qqpay">QQ钱包</a></li><li class="<?php echo $app=='bank'?'active':null;?>"><a href="?app=bank">银行卡</a></li>
</ul>
<div class="tab-pane active" id="alipay">
<form action="?app=<?php echo $app?>" method="POST" role="form">
<input type="hidden" name="type" value="<?php echo $app?>"/>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">通道选择</div>
<select name="channel" class="form-control" default="<?php echo $default_channel?>">
<?php foreach($channel_select as $channel){echo '<option value="'.$channel['id'].'">'.$channel['name'].''.($channel['id']==$default_channel?'(默认)':'').'</option>';} ?>
</select>
</div></div>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">交易号</div>
<input type="text" name="out_biz_no" value="<?php echo $out_biz_no?>" class="form-control" required/>
</div></div>
<?php if($app=='alipay'){?>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">支付宝账号</div>
<input type="text" name="payee_account" value="" class="form-control" required placeholder="支付宝登录账号或支付宝UID或支付宝Openid"/>
</div></div>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">支付宝姓名</div>
<input type="text" name="payee_real_name" value="" class="form-control" placeholder="不填写则不校验真实姓名"/>
</div></div>
<?php }elseif($app=='wxpay'){?>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">Openid</div>
<input type="text" name="payee_account" value="" class="form-control" required placeholder="只能填写微信Openid"/>
<div class="input-group-btn"><a href="./gettoken.php?app=wechat" class="btn btn-default">获取</a></div>
</div></div>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">真实姓名</div>
<input type="text" name="payee_real_name" value="" class="form-control" placeholder="不填写则不校验真实姓名"/>
</div></div>
<?php }elseif($app=='qqpay'){?>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">收款方QQ</div>
<input type="text" name="payee_account" value="" class="form-control" required/>
</div></div>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">真实姓名</div>
<input type="text" name="payee_real_name" value="" class="form-control" placeholder="不填写则不校验真实姓名"/>
</div></div>
<?php }elseif($app=='bank'){?>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">银行卡号</div>
<input type="text" name="payee_account" value="" class="form-control" required placeholder="收款方银行卡号"/>
</div></div>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">姓名</div>
<input type="text" name="payee_real_name" value="" class="form-control" placeholder="收款方银行账户名称"/>
</div></div>
<?php }?>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">转账金额</div>
<input type="text" name="money" value="" class="form-control" placeholder="RMB/元" required/>
</div></div>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">转账备注</div>
<input type="text" name="desc" value="" class="form-control" placeholder="可留空,默认为:<?php echo $app=='alipay'?$conf['transfer_name']:$conf['transfer_desc']?>"/>
</div></div>
<div class="form-group">
<div class="input-group"><div class="input-group-addon">支付密码</div>
<input type="text" name="paypwd" value="" class="form-control" required/>
</div></div>
<p><input type="submit" name="submit" value="立即转账" class="btn btn-primary form-control"/></p>
<p><a href="javascript:balanceQuery()" class="btn btn-block btn-default">查询账户余额</a></p>
</form>
</div>
</div>
<div class="panel-footer">
<span class="glyphicon glyphicon-info-sign"></span> 交易号可以防止重复转账,同一个交易号只能提交同一次转账。<br/>
<a href="./set.php?mod=account">修改支付密码</a>
</div>
</div>
</div>
</div>
<script src="<?php echo $cdnpublic?>jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script src="<?php echo $cdnpublic?>layer/3.1.1/layer.min.js"></script>
<script>
var items = $("select[default]");
for (i = 0; i < items.length; i++) {
$(items[i]).val($(items[i]).attr("default")||0);
}
function balanceQuery(){
var type = $("input[name=type]").val();
var channel = $("select[name=channel]").val();
if(channel == ''){
layer.alert('请先选择通道');return;
}
var ii = layer.load(2, {shade:[0.1,'#fff']});
$.ajax({
type : 'POST',
url : 'ajax_transfer.php?act=balance_query',
dataType : 'json',
data : {type: type, channel: channel},
success : function(data) {
layer.close(ii);
if(data.code == 0){
layer.alert('账户可用余额:'+data.amount+'元');
}else{
if(data.msg.indexOf('插件方法不存在')>-1) data.msg = '该通道不支持查询账户余额';
layer.alert(data.msg, {icon: 2})
}
},
error:function(data){
layer.close(ii);
layer.msg('服务器错误');
}
});
}
</script> |