| 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');
 
- 		}
 
- 	}
 
- }
 
- ?>
 
 
  |