282 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			282 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php defined('BASEPATH') OR exit('No direct script access allowed');
 | |
| 
 | |
| class Payment extends CI_Controller 
 | |
| {
 | |
| 	public function __construct()
 | |
| 	{
 | |
| 		parent::__construct();
 | |
| 		$this->load->helper('url');
 | |
| 		$this->load->helper('form');
 | |
| 		$this->load->library('form_validation');
 | |
| 		$this->load->model('Index_model');
 | |
| 	}
 | |
| 	public function index()
 | |
| 	{  
 | |
| 		if(empty($this->session->userdata('cart')))
 | |
| 		{
 | |
| 			redirect(base_url());
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			$this->load->view("front/payment");
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public function confirm()
 | |
| 	{  
 | |
| 		$this->session->sess_destroy();
 | |
| 		$this->load->view("front/confirm");
 | |
| 	}
 | |
| 
 | |
| 	public function payment_order()
 | |
| 	{  
 | |
| 		$cardsplit = str_split($this->input->post('card_number'));
 | |
| 		$ssl_customer_code = $cardsplit[12].$cardsplit[13].$cardsplit[14].$cardsplit[15];
 | |
| 
 | |
| 		$ssl_invoice_number = $this->input->post('billing_contact').time();
 | |
| 		$ssl_transaction_type = "ccsale";
 | |
| 		$ssl_cvv2cvc2_indicator = 1;
 | |
| 		$country = "USA";
 | |
| 
 | |
| 		$fields = array(
 | |
| 			"ssl_merchant_id" => "500693",
 | |
| 			"ssl_user_id" => "webpage",
 | |
| 			"ssl_pin" => "MX0MD3",
 | |
| 			"ssl_transaction_type" => urlencode($ssl_transaction_type),
 | |
| 			"ssl_show_form" => "false",
 | |
| 				   "ssl_cvv2cvc2_indicator" => urlencode($ssl_cvv2cvc2_indicator), //0=Bypassed; 1=present; 2=Illegible; 9=Not Present.
 | |
| 				   "ssl_salestax" => "0", 
 | |
| 
 | |
| 				   "ssl_result_format" => "html",
 | |
| 				   "ssl_test_mode" => "false",
 | |
| 				   "ssl_receipt_apprvl_method" => "redg", // sends to page with long data string url
 | |
| 				   //"ssl_receipt_apprvl_method" => "link", // just posts receipt with link at bottom
 | |
| 				   "ssl_receipt_link_url" => "http://abc.mydataboxx.com/order-confirm",
 | |
| 				   "ssl_error_url" => "http://abc.mydataboxx.com/order-confirm",
 | |
| 				   
 | |
| 				   //submitted details
 | |
| 				   "ssl_invoice_number" => urlencode($ssl_invoice_number),
 | |
| 				   "ssl_customer_code" => urlencode($ssl_customer_code),
 | |
| 				   "ssl_first_name" => urlencode($this->input->post('company_name')),
 | |
| 				   "ssl_last_name" => urlencode($this->input->post('billing_contact')),
 | |
| 				   "ssl_avs_address" => urlencode($this->input->post('street_adrs')),
 | |
| 				   "ssl_address2" => urlencode($this->input->post('customer_id')),
 | |
| 				   "ssl_avs_zip" => urlencode($this->input->post('post_code')),
 | |
| 				   "ssl_state" => urlencode($this->input->post('state')),
 | |
| 				   "ssl_city" => urlencode($this->input->post('city_name')),
 | |
| 				   "ssl_country" => urlencode($country),
 | |
| 				   "ssl_phone" => urlencode($this->input->post('phone_no')),
 | |
| 				   "ssl_email" => urlencode($this->input->post('emai_id')),
 | |
| 				   "ssl_card_number" => urlencode($this->input->post('card_number')),
 | |
| 				   "ssl_exp_date" => urlencode($this->input->post('exp_month').$this->input->post('exp_year')),
 | |
| 				   "ssl_cvv2cvc2" => urlencode($this->input->post('cvv_code')),
 | |
| 				   "ssl_amount" => urlencode($this->session->userdata('granttotal'))
 | |
| 
 | |
| 				);
 | |
| 
 | |
| 		$url = "https://api.demo.convergepay.com/VirtualMerchantDemo/process.do";
 | |
| 
 | |
| 				//initialize the post string variable 
 | |
| 		$fields_string = '';
 | |
| 				//build the post string
 | |
| 		foreach($fields as $key=>$value) { $fields_string .=$key.'='.$value.'&'; }
 | |
| 		rtrim($fields_string, "&");
 | |
| 
 | |
| 				//open curl session 
 | |
| 		$ch = curl_init();
 | |
| 				//begin seting curl options
 | |
| 				//set URL
 | |
| 				curl_setopt($ch, CURLOPT_URL, $url); //set method
 | |
| 				curl_setopt($ch, CURLOPT_POST, 1);
 | |
| 				//set post data string
 | |
| 				curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
 | |
| 				//these two options are frequently necessary to avoid SSL errors with PHP
 | |
| 				curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
 | |
| 				curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
 | |
| 
 | |
| 				//perform the curl post and store the result 
 | |
| 				$result = curl_exec($ch);
 | |
| 				//close the curl session 
 | |
| 				curl_close($ch);
 | |
| 				//a nice message to prevent people from seeing a blank screen 
 | |
| 				echo "Processing, please wait...";
 | |
| 
 | |
| 			//print_r($result);				
 | |
| 
 | |
| 				$masterdata = array('reg_date'=>date("Y-m-d"),
 | |
| 					'reg_total'=>$this->session->userdata('granttotal'),
 | |
| 					'reg_class_count'=>count($this->session->userdata('cart')),
 | |
| 					'payment_type'=>$this->input->post('payment_type'),
 | |
| 					'card_holder_name'=>$this->input->post('card_holder_name'),
 | |
| 					'card_number'=>$this->input->post('card_number'),
 | |
| 					'card_type'=>$this->input->post('card_type'),
 | |
| 					'exp_month'=>$this->input->post('exp_month'),
 | |
| 					'exp_year'=>$this->input->post('exp_year'),
 | |
| 					'cvv_code'=>$this->input->post('cvv_code'),
 | |
| 					'company_name'=>$this->input->post('company_name'),
 | |
| 					'billing_contact'=>$this->input->post('billing_contact'),
 | |
| 					'customer_id'=>$this->input->post('customer_id'),
 | |
| 					'street_adrs'=>$this->input->post('street_adrs'),
 | |
| 					'city_name'=>$this->input->post('city_name'),
 | |
| 					'state'=>$this->input->post('state'),
 | |
| 					'post_code'=>$this->input->post('post_code'),
 | |
| 					'phone_no'=>$this->input->post('phone_no'),
 | |
| 					'fax_no'=>$this->input->post('fax_no'),
 | |
| 					'adtnal_instrction'=>$this->input->post('adtnal_instrction'),
 | |
| 					'details'=>$this->input->post('details'),
 | |
| 					'email_id'=>$this->input->post('emai_id'),
 | |
| 					'status'=>'unpaid');
 | |
| 
 | |
| 				$regid = $this->Index_model->regmaster($masterdata);
 | |
| 				if($regid)
 | |
| 				{
 | |
| 					$attotal = 0;
 | |
| 					$cart = $this->session->userdata('cart');/*Cart Session*/
 | |
| 					foreach ($cart as $cartcount => $form) 
 | |
| 					{
 | |
| 						$mcount = $this->session->userdata('mcount'.$form);
 | |
| 						$mpluscount = $this->session->userdata('mpluscount'.$form);
 | |
| 						$ncount = $this->session->userdata('ncount'.$form);
 | |
| 						$npluscount = $this->session->userdata('npluscount'.$form);
 | |
| 						$scount = $this->session->userdata('scount'.$form);
 | |
| 						$attcount = ($mcount + $mpluscount + $ncount + $npluscount + $scount); /*Attendee Count*/
 | |
| 						$classdata = array('reg_id'=>$regid,'form_id'=>$form,
 | |
| 							'att_count'=>$attcount,
 | |
| 							'regclass_total_price'=>$this->session->userdata('classtotal'.$form));
 | |
| 						$classform = $this->Index_model->returnclass($form);
 | |
| 						$remainseats = $classform->remain_seats-$attcount;
 | |
| 						$this->Index_model->remainclass($remainseats,$form);
 | |
| 						$regclassid = $this->Index_model->classdata($classdata);
 | |
| 						$classform = $this->session->userdata('classform'.$form);
 | |
| 						foreach ($classform as $formcount => $data) 
 | |
| 						{
 | |
| 							$mprice = $data['class_price_m'];
 | |
| 							$mplusprice = $data['class_price_m2'];
 | |
| 							$nprice = $data['class_price_n'];
 | |
| 							$nplusprice = $data['class_price_n2'];
 | |
| 							$sprice = $data['class_price_s'];
 | |
| 						}
 | |
| 
 | |
| 						if($regclassid)
 | |
| 						{
 | |
| 							$attmcount = 0;
 | |
| 							$attmpcount = 0;
 | |
| 							$attncount = 0;
 | |
| 							$attnpcount = 0;
 | |
| 							$attscount = 0;
 | |
| 
 | |
| 							$member = $this->session->userdata('member'.$form);
 | |
| 							if (!empty($member) || isset($member['M'])) 
 | |
| 							{
 | |
| 								foreach ($member['M'] as $key => $val)
 | |
| 								{
 | |
| 									$attendedata = array(
 | |
| 										'reg_id'=>$regid,
 | |
| 										'regclass_id'=>$regclassid,
 | |
| 										'reg_m_type'=>'M',
 | |
| 										'att_f_name'=>isset($val['first_name'])? $val['first_name'] : '',
 | |
| 										'att_l_name'=>isset($val['last_name'])? $val['last_name'] : '',
 | |
| 										'att_email'=>isset($val['email_id'])? $val['email_id'] : '',
 | |
| 										'att_number'=>isset($val['phone_no'])? $val['phone_no'] : '',
 | |
| 										'att_ssn'=>isset($val['ssn'])? $val['ssn'] : '',
 | |
| 										'att_price'=>$mprice );
 | |
| 									$data = $this->Index_model->attendedata($attendedata);
 | |
| 									$attmcount+=1;
 | |
| 								}
 | |
| 							}
 | |
| 
 | |
| 							$memplus = $this->session->userdata('memplus'.$form);
 | |
| 							if (!empty($memplus) || isset($memplus['M2'])) 
 | |
| 							{
 | |
| 								foreach ($memplus['M2'] as $key => $val)
 | |
| 								{
 | |
| 									$attendedata = array(
 | |
| 										'reg_id'=>$regid,
 | |
| 										'regclass_id'=>$regclassid,
 | |
| 										'reg_m_type'=>'M2',
 | |
| 										'att_f_name'=>isset($val['first_name'])? $val['first_name'] : '',
 | |
| 										'att_l_name'=>isset($val['last_name'])? $val['last_name'] : '',
 | |
| 										'att_email'=>isset($val['email_id'])? $val['email_id'] : '',
 | |
| 										'att_number'=>isset($val['phone_no'])? $val['phone_no'] : '',
 | |
| 										'att_ssn'=>isset($val['ssn'])? $val['ssn'] : '',
 | |
| 										'att_price'=>$mplusprice );
 | |
| 									$data = $this->Index_model->attendedata($attendedata);
 | |
| 									$attmpcount+=1;
 | |
| 								}
 | |
| 							}
 | |
| 
 | |
| 							$nonmember = $this->session->userdata('nonmember'.$form);
 | |
| 							if (!empty($nonmember) || isset($nonmember['N'])) 
 | |
| 							{
 | |
| 								foreach ($nonmember['N'] as $key => $val)
 | |
| 								{
 | |
| 									$attendedata = array(
 | |
| 										'reg_id'=>$regid,
 | |
| 										'regclass_id'=>$regclassid,
 | |
| 										'reg_m_type'=>'N',
 | |
| 										'att_f_name'=>isset($val['first_name'])? $val['first_name'] : '',
 | |
| 										'att_l_name'=>isset($val['last_name'])? $val['last_name'] : '',
 | |
| 										'att_email'=>isset($val['email_id'])? $val['email_id'] : '',
 | |
| 										'att_number'=>isset($val['phone_no'])? $val['phone_no'] : '',
 | |
| 										'att_ssn'=>isset($val['ssn'])? $val['ssn'] : '',
 | |
| 										'att_price'=>$nprice );
 | |
| 									$data = $this->Index_model->attendedata($attendedata);
 | |
| 									$attncount+=1;
 | |
| 								}
 | |
| 							}
 | |
| 
 | |
| 							$nonplus = $this->session->userdata('nonplus'.$form);
 | |
| 							if (!empty($nonplus) || isset($nonplus['N2'])) 
 | |
| 							{
 | |
| 								foreach ($nonplus['N2'] as $key => $val)
 | |
| 								{
 | |
| 									$attendedata = array(
 | |
| 										'reg_id'=>$regid,
 | |
| 										'regclass_id'=>$regclassid,
 | |
| 										'reg_m_type'=>'N2',
 | |
| 										'att_f_name'=>isset($val['first_name'])? $val['first_name'] : '',
 | |
| 										'att_l_name'=>isset($val['last_name'])? $val['last_name'] : '',
 | |
| 										'att_email'=>isset($val['email_id'])? $val['email_id'] : '',
 | |
| 										'att_number'=>isset($val['phone_no'])? $val['phone_no'] : '',
 | |
| 										'att_ssn'=>isset($val['ssn'])? $val['ssn'] : '',
 | |
| 										'att_price'=>$nplusprice );
 | |
| 									$data = $this->Index_model->attendedata($attendedata);
 | |
| 									$attnpcount+=1;
 | |
| 								}
 | |
| 							}
 | |
| 
 | |
| 							$semember = $this->session->userdata('semember'.$form);
 | |
| 							if (!empty($semember) || isset($semember['S'])) 
 | |
| 							{
 | |
| 								foreach ($semember['S'] as $key => $val)
 | |
| 								{
 | |
| 									$attendedata = array(
 | |
| 										'reg_id'=>$regid,
 | |
| 										'regclass_id'=>$regclassid,
 | |
| 										'reg_m_type'=>'S',
 | |
| 										'att_f_name'=>isset($val['first_name'])? $val['first_name'] : '',
 | |
| 										'att_l_name'=>isset($val['last_name'])? $val['last_name'] : '',
 | |
| 										'att_email'=>isset($val['email_id'])? $val['email_id'] : '',
 | |
| 										'att_number'=>isset($val['phone_no'])? $val['phone_no'] : '',
 | |
| 										'att_ssn'=>isset($val['ssn'])? $val['ssn'] : '',
 | |
| 										'att_price'=>$sprice );
 | |
| 									$data = $this->Index_model->attendedata($attendedata);
 | |
| 									$attscount+=1;
 | |
| 								}
 | |
| 							}
 | |
| 						}
 | |
| 						$attotal+= $attmcount + $attmpcount + $attncount + $attnpcount + $attscount; /*Attendee Total Count*/
 | |
| 					}
 | |
| 					$this->Index_model->attotal($attotal,$regid);
 | |
| 					$this->session->set_flashdata('success_msg','Your Order Has Been Completed Successfully.');
 | |
| 					redirect('order-confirm');
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					$this->session->set_flashdata('error_msg','Something Wrong Happen..! Register Again.');
 | |
| 					redirect('order-confirm');
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 		}
 | |
| 		?>
 |