class_gw_protx.php

来自「sabreipb 2.1.6 utf-8中文版本!」· PHP 代码 · 共 471 行 · 第 1/2 页

PHP
471
字号
		function gw_validate_payment( $extra=array() )	{		//--------------------------------------		// INIT		//--------------------------------------				$username = $extra['extra_1'];		$password = $extra['extra_2'];				//--------------------------------------		// Debug...		//--------------------------------------				if ( GW_TEST_MODE_ON )		{			if ( ! is_array( $_POST ) or ! count( $_POST ) )			{				$_POST = $_GET;			}		}				//--------------------------------------		// Process GET data		//--------------------------------------		      	$values = $this->_get_token( $this->_simple_xor( base64_decode($_GET['crypt']), $password ) );				foreach( $values as $k => $v )		{			$_POST[ 'px_'.$k ] = $v;		}				//--------------------------------------		// Check...		//--------------------------------------				if ( $values['Status'] != 'OK' AND ! GW_TEST_MODE_ON )		{			$this->error = 'not_valid';			return array( 'verified' => FALSE );		}				//--------------------------------------		// Populate return array		//--------------------------------------				list( $tix, $member_id, $purchase_package_id, $cur_sub_id  ) = explode( "x", $values['VendorTxCode'] );			    $return = array( 'currency_code'      => 'GBP',						 'payment_amount'     => sprintf( "%.2f", $values['Amount'] ),						 'member_unique_id'   => intval($member_id),						 'purchase_package_id'=> intval($purchase_package_id),						 'current_package_id' => intval($cur_sub_id),						 'verified'           => TRUE,						 'subscription_id'    => '0-'.intval($member_id),						 'transaction_id'     => $values['VPSTxID'] );				//--------------------------------------		// Sort out payment status		//--------------------------------------				$return['payment_status'] = 'ONEOFF';				//--------------------------------------		// Pass back to handler		//--------------------------------------				return $return;	}		/*-------------------------------------------------------------------------*/	// Process recurring payment check	// Return: array( 'amount_paid', 'state' [ PAID, DEAD, FAILED, PENDING ]	/*-------------------------------------------------------------------------*/		function gw_do_normal_payment_check( $balance_to_pay=0, $total_package_cost=0, $upgrade=0 )	{		$this->gateway->error = "";				//--------------------------------------		// INIT		//--------------------------------------				$return = array();				//--------------------------------------		// Completed		//--------------------------------------			if ( $upgrade )		{			//--------------------------------------			// Completed			//--------------------------------------					$return['amount_paid'] = $balance_to_pay;			$return['state']       = 'PAID';		}		else		{			//--------------------------------------			// Completed			//--------------------------------------					$return['amount_paid'] = $total_package_cost;			$return['state']       = 'PAID';		}				return $return;	}		/*-------------------------------------------------------------------------*/	// Process recurring payment check	// Return: array( 'amount_paid', 'state' [ PAID, DEAD, FAILED, PENDING ]	/*-------------------------------------------------------------------------*/		function gw_do_recurring_payment_check( $balance_to_pay=0, $total_package_cost=0 )	{		$this->gateway->error = "";				//--------------------------------------		// INIT		//--------------------------------------				$return = array();				return $return;	}			//---------------------------------------	// Return ACP Package  Variables	//	// Returns names for the package custom	// fields, etc	//---------------------------------------		function acp_return_package_variables()	{			$return = array(						  'subextra_custom_1' => array( 'used' => 0, 'varname' => '' ),						  'subextra_custom_2' => array( 'used' => 0, 'varname' => '' ),						  'subextra_custom_3' => array( 'used' => 0, 'varname' => '' ),						  'subextra_custom_4' => array( 'used' => 0, 'varname' => '' ),						  'subextra_custom_5' => array( 'used' => 0, 'varname' => '' ),					   );					   		return $return;		}		//---------------------------------------	// Return ACP Method Variables	//	// Returns names for the package custom	// fields, etc	//---------------------------------------		function acp_return_method_variables()	{			$return = array(						  'submethod_custom_1' => array( 'used' => 1, 'formname' => 'Protx User Name', 'formextra' => 'This is the username assigned to your Protx account' ),						  'submethod_custom_2' => array( 'used' => 1, 'formname' => 'Protx Encryption Password' , 'formextra' => 'This is the password assigned to your Protx account  to encrypt the form data' ),						  'submethod_custom_3' => array( 'used' => 0, 'varname' => '' ),						  'submethod_custom_4' => array( 'used' => 0, 'varname' => '' ),						  'submethod_custom_5' => array( 'used' => 0, 'varname' => '' ),					   );					   		return $return;		}		function _simple_xor($instr, $k)	{     	$kList = array();    	$output = "";    	for($i = 0; $i < strlen($k); $i++)    	{     		$kList[$i] = ord(substr($k, $i, 1));      	}      	for($i = 0; $i < strlen($instr); $i++)      	{        	$output.= chr(ord(substr($instr, $i, 1)) ^ ($kList[$i % strlen($k)]));      	}      	return $output;    }	function _get_token($thisString)	{		$Tokens = array("Status","StatusDetail","VendorTxCode","VPSTxID","TxAuthNo","Amount","AVSCV2");		$output = array();		$resultArray = array();		for ($i = count($Tokens)-1; $i >= 0 ; $i--)		{			$start = strpos($thisString, $Tokens[$i]);			        	if ($start !== false)        	{          		$resultArray[$i]->start = $start;          		$resultArray[$i]->token = $Tokens[$i];       		}      	}      	sort($resultArray);      	for ($i = 0; $i<count($resultArray); $i++)      	{        	$valueStart = $resultArray[$i]->start + strlen($resultArray[$i]->token) + 1;        	if ($i==(count($resultArray)-1))        	{          		$output[$resultArray[$i]->token] = substr($thisString, $valueStart);        	}        	else        	{          		$valueLength = $resultArray[$i+1]->start - $resultArray[$i]->start - strlen($resultArray[$i]->token) - 2;          		$output[$resultArray[$i]->token] = substr($thisString, $valueStart, $valueLength);        	}      	}      	return $output;    }    } ?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?