123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- <?php
- defined('IN_PHPCMS') or exit('No permission resources.');
- $session_storage = 'session_'.pc_base::load_config('system','session_storage');
- pc_base::load_sys_class($session_storage);
- pc_base::load_app_class('foreground','member');
- pc_base::load_sys_class('format', '', 0);
- pc_base::load_sys_class('form', '', 0);
- pc_base::load_app_func('global');
- class deposit extends foreground {
- private $pay_db,$member_db,$account_db;
- function __construct() {
- if (!module_exists(ROUTE_M)) showmessage(L('module_not_exists'));
- parent::__construct();
- $this->pay_db = pc_base::load_model('pay_payment_model');
- $this->account_db = pc_base::load_model('pay_account_model');
- $this->_username = param::get_cookie('_username');
- $this->_userid = intval(param::get_cookie('_userid'));
- $this->handle = pc_base::load_app_class('pay_deposit');
- }
- public function init() {
- pc_base::load_app_class('pay_factory','',0);
- $where = '';
- $page = $_GET['page'] ? intval($_GET['page']) : '1';
- $where = "AND `userid` = '$this->_userid'";
- $start = $end = $status = '';
- if($_GET['dosubmit']){
- $start_addtime = $_GET['info']['start_addtime'];
- $end_addtime = $_GET['info']['end_addtime'];
- $status = safe_replace($_GET['info']['status']);
- if($start_addtime && $end_addtime) {
- $start = strtotime($start_addtime.' 00:00:00');
- $end = strtotime($end_addtime.' 23:59:59');
- $where .= "AND `addtime` >= '$start' AND `addtime` <= '$end'";
- }
- if($status) $where .= "AND `status` LIKE '%$status%' ";
- }
- if($where) $where = substr($where, 3);
- $infos = $this->account_db->listinfo($where, 'addtime DESC', $page, '15');
- if (is_array($infos) && !empty($infos)) {
- foreach($infos as $key=>$info) {
- if($info['status']=='unpay' && $info['pay_id']!= 0 && $info['pay_id']) {
- $payment = $this->handle->get_payment($info['pay_id']);
- $cfg = unserialize_config($payment['config']);
- $pay_name = ucwords($payment['pay_code']);
-
- $pay_fee = pay_fee($info['money'],$payment['pay_fee'],$payment['pay_method']);
- $logistics_fee = $info['logistics_fee'];
- $discount = $info['discount'];
- // calculate amount
- $info['price'] = $info['money'] + $pay_fee + $logistics_fee + $discount;
- // add order info
- $order_info['id'] = $info['trade_sn'];
- $order_info['quantity'] = $info['quantity'];
- $order_info['buyer_email'] = $info['email'];
- $order_info['order_time'] = $info['addtime'];
-
- //add product info
- $product_info['name'] = $info['contactname'];
- $product_info['body'] = $info['usernote'];
- $product_info['price'] = $info['price'];
-
- //add set_customerinfo
- $customerinfo['telephone'] = $info['telephone'];
- if($payment['is_online'] === '1') {
- $payment_handler = new pay_factory($pay_name, $cfg);
- $payment_handler->set_productinfo($product_info)->set_orderinfo($order_info)->set_customerinfo($customer_info);
- $infos[$key]['pay_btn'] = $payment_handler->get_code('value="'.L('pay_btn').'" class="pay-btn"');
- }
-
- } else {
- $infos[$key]['pay_btn'] = '';
- }
- }
- }
- foreach(L('select') as $key=>$value) {
- $trade_status[$key] = $value;
- }
- $pages = $this->account_db->pages;
- include template('pay', 'pay_list');
- }
-
- public function pay() {
- $memberinfo = $this->memberinfo;
- $pay_types = $this->handle->get_paytype();
- $trade_sn = create_sn();
- param::set_cookie('trade_sn',$trade_sn);
- $show_validator = 1;
- include template('pay', 'deposit');
- }
-
- /*
- * 充值方式支付
- */
- public function pay_recharge() {
- if(isset($_POST['dosubmit'])) {
- $code = isset($_POST['code']) && trim($_POST['code']) ? trim($_POST['code']) : showmessage(L('input_code'), HTTP_REFERER);
- if ($_SESSION['code'] != strtolower($code)) {
- showmessage(L('code_error'), HTTP_REFERER);
- }
- $pay_id = $_POST['pay_type'];
- if(!$pay_id) showmessage(L('illegal_pay_method'));
- $_POST['info']['name'] = safe_replace($_POST['info']['name']);
- $payment = $this->handle->get_payment($pay_id);
- $cfg = unserialize_config($payment['config']);
- $pay_name = ucwords($payment['pay_code']);
- if(!param::get_cookie('trade_sn')) {showmessage(L('illegal_creat_sn'));}
-
- $trade_sn = param::get_cookie('trade_sn');
- if(preg_match('![^a-zA-Z0-9/+=]!', $trade_sn)) showmessage(L('illegal_creat_sn'));
- $usernote = $_POST['info']['usernote'] ? $_POST['info']['name'].'['.$trade_sn.']'.'-'.new_html_special_chars(trim($_POST['info']['usernote'])) : $_POST['info']['name'].'['.$trade_sn.']';
-
- $surplus = array(
- 'userid' => $this->_userid,
- 'username' => $this->_username,
- 'money' => trim(floatval($_POST['info']['price'])),
- 'quantity' => $_POST['quantity'] ? trim(intval($_POST['quantity'])) : 1,
- 'telephone' => preg_match('/[^0-9\-]+/', $_POST['info']['telephone']) ? '' : trim($_POST['info']['telephone']),
- 'contactname' => $_POST['info']['name'] ? trim($_POST['info']['name']).L('recharge') : $this->_username.L('recharge'),
- 'email' => is_email($_POST['info']['email']) ? trim($_POST['info']['email']) : '',
- 'addtime' => SYS_TIME,
- 'ip' => ip(),
- 'pay_type' => 'recharge',
- 'pay_id' => $payment['pay_id'],
- 'payment' => trim($payment['pay_name']),
- 'ispay' => '1',
- 'usernote' => $usernote,
- 'trade_sn' => $trade_sn,
- );
-
- $recordid = $this->handle->set_record($surplus);
-
- $factory_info = $this->handle->get_record($recordid);
- if(!$factory_info) showmessage(L('order_closed_or_finish'));
- $pay_fee = pay_fee($factory_info['money'],$payment['pay_fee'],$payment['pay_method']);
- $logistics_fee = $factory_info['logistics_fee'];
- $discount = $factory_info['discount'];
-
- // calculate amount
- $factory_info['price'] = $factory_info['money'] + $pay_fee + $logistics_fee + $discount;
-
- // add order info
- $order_info['id'] = $factory_info['trade_sn'];
- $order_info['quantity'] = $factory_info['quantity'];
- $order_info['buyer_email'] = $factory_info['email'];
- $order_info['order_time'] = $factory_info['addtime'];
-
- //add product info
- $product_info['name'] = $factory_info['contactname'];
- $product_info['body'] = $factory_info['usernote'];
- $product_info['price'] = $factory_info['price'];
-
- //add set_customerinfo
- $customerinfo['telephone'] = $factory_info['telephone'];
- if($payment['is_online'] === '1') {
- pc_base::load_app_class('pay_factory','',0);
- $payment_handler = new pay_factory($pay_name, $cfg);
- $payment_handler->set_productinfo($product_info)->set_orderinfo($order_info)->set_customerinfo($customer_info);
- $code = $payment_handler->get_code('value="'.L('confirm_pay').'" class="button"');
- } else {
- $this->account_db->update(array('status'=>'waitting','pay_type'=>'offline'),array('id'=>$recordid));
- $code = '<div class="point">'.L('pay_tip').'</div>';
- }
- }
- include template('pay', 'payment_cofirm');
- }
-
- public function public_checkcode() {
- $code = $_GET['code'];
- if($_SESSION['code'] != strtolower($code)) {
- exit('0');
- } else {
- exit('1');
- }
- }
- }
- ?>
|