class_gw_protx.php

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

PHP
471
字号
<?php/*+--------------------------------------------------------------------------|   Invision Power Board v2.1.5|   ========================================|   by Matthew Mecham|   (c) 2001 - 2005 Invision Power Services|   |   ========================================|   Web: |   Time: Wed, 01 Mar 2006 19:11:28 GMT|   Release: |   Email: +---------------------------------------------------------------------------||   > Payment Gateway API: PAYPAL|   > Module written by Matt Mecham|   > Date started: 31st March 2005 (14:45)||+--------------------------------------------------------------------------*/		if ( ! defined( 'GW_CORE_INIT' ) ){	print "You cannot access this module in this manner";	exit();}//--------------------------------------------------------------------------// DEFINITIONS EXPECTED AT THIS POINT//--------------------------------------------------------------------------// GW_URL_VALIDATE : The url for validating payment// GW_URL_PAYDONE  : The url that the gatways returns the viewer to after//                 : payment processed successfully// GW_URL_PAYCANCEL: The url that the gatways returns the viewer to after//                 : payment processed unsuccessfully or when cancelled//--------------------------------------------------------------------------// ITEM ARRAY//--------------------------------------------------------------------------// 'currency_code'    => Currency code,// 'member_unique_id' => member's ID,// 'member_name'      => member's NAME,// 'member_email'     => member's EMAIL,// 'package_cost'     => Requested package cost// 'package_id'       => Requested package ID// 'package_title'    => Requested package title// 'duration_int'     => Requested package duration int  (ie: 12)// 'duration_unit'    => Requested package duration unit (ie: m,d,y,w) [ month, day, year, week ]// 'company_email'    => Company's email address// 'ttr_int'          => Time to run (Time left on current package) integar (ie 3)// 'ttr_unit'         => Time to run (Time left on current package) unit (ie w)// 'ttr_balance'      => Time to run (Balance left on current package)// 'ttr_package_id'   => Current package id (used for upgrading)// 'vendor_id'        => The ID of the vendor (not used in all gateways)// 'product_id'       => The gateway ID of the product (not used in all gateways)// 'extra_1' thru 5   => Gateway extras ( from DB / tied in method_vars )//--------------------------------------------------------------------------class class_gw_module EXTENDS class_gateway{	# Global	var $ipsclass;		# Identify	var $i_am = 'protx';		var $can_do_recurring_billing = 0;	var $can_do_upgrades          = 1;		/*-------------------------------------------------------------------------*/	// INIT	/*-------------------------------------------------------------------------*/		function main_init()	{	}		/*-------------------------------------------------------------------------*/	// Generate hidden fields [ Recurring, normal screen ]	/*-------------------------------------------------------------------------*/		function gw_generate_hidden_fields_normal_recurring( $items=array() )	{		// Not available for this gateway				return $this->core_compile_hidden_fields();	}		/*-------------------------------------------------------------------------*/	// Generate hidden fields [ Recurring, upgrade screen ]	/*-------------------------------------------------------------------------*/		function gw_generate_hidden_fields_upgrade_recurring( $items=array() )	{		// Not available for this gateway				return $this->core_compile_hidden_fields();	}		/*-------------------------------------------------------------------------*/	// Generate hidden fields [ normal screen ]	/*-------------------------------------------------------------------------*/		function gw_generate_hidden_fields_normal( $items=array() )	{		$username = $items['extra_1'];		$password = $items['extra_2'];			//---------------------------------------		// Generate crypt string		//---------------------------------------				$plain  = "VendorTxCode="  . rand(0,1000)."x{$items['member_unique_id']}x{$items['package_id']}x0" . "&";		$plain .= "Amount="        . $items['package_cost'] . "&";		$plain .= "Currency="      . $items['currency_code'] . "&";		$plain .= "Description="   . $items['package_title'] ."&";		$plain .= "SuccessURL="    . GW_URL_VALIDATE . "&";		$plain .= "FailureURL="    . GW_URL_VALIDATE . "&";		$plain .= "CustomerName=&";		$plain .= "CustomerEmail=" . $items['member_email'] . "&";		$plain .= "VendorEMail="   . $items['company_email'] . "&";		$plain .= "DeliveryAddress=&";      	$plain .= "DeliveryPostCode=&";      	$plain .= "BillingAddress=&";      	$plain .= "BillingPostCode=";      		$crypt = base64_encode( $this->_simple_xor( $plain, $password ) );				$this->core_add_hidden_field( "Crypt"       , $crypt );		$this->core_add_hidden_field( "Vendor"      , $username );		$this->core_add_hidden_field( "TxType"      , 'PAYMENT' );		$this->core_add_hidden_field( "VPSProtocol" , '2.21' );		return $this->core_compile_hidden_fields();	}		/*-------------------------------------------------------------------------*/	// Generate hidden fields [ upgrade screen ]	/*-------------------------------------------------------------------------*/		function gw_generate_hidden_fields_upgrade( $items=array() )	{		$username = $items['extra_1'];		$password = $items['extra_2'];				//---------------------------------------		// Generate crypt string		//---------------------------------------				$plain  = "VendorTxCode="  . rand(0,1000)."x{$items['member_unique_id']}x{$items['package_id']}x{$items['ttr_package_id']}" . "&";		$plain .= "Amount="        . $items['ttr_balance'] . "&";		$plain .= "Currency="      . $items['currency_code'] . "&";		$plain .= "Description="   . $items['package_title'] ."&";		$plain .= "SuccessURL="    . GW_URL_VALIDATE . "&";		$plain .= "FailureURL="    . GW_URL_VALIDATE . "&";		$plain .= "CustomerName=&";		$plain .= "CustomerEmail=" . $items['member_email'] . "&";		$plain .= "VendorEMail="   . $items['company_email'] . "&";		$plain .= "DeliveryAddress=&";      	$plain .= "DeliveryPostCode=&";      	$plain .= "BillingAddress=&";      	$plain .= "BillingPostCode=";      		$crypt = base64_encode( $this->_simple_xor( $plain, $password ) );				$this->core_add_hidden_field( "Crypt"       , $crypt );		$this->core_add_hidden_field( "Vendor"      , $username );		$this->core_add_hidden_field( "TxType"      , 'PAYMENT' );		$this->core_add_hidden_field( "VPSProtocol" , '2.21' );				return $this->core_compile_hidden_fields();	}		/*-------------------------------------------------------------------------*/	// Generate Purchase button	/*-------------------------------------------------------------------------*/		function gw_generate_purchase_button()	{		return '<input type="submit" value="'.$this->ipsclass->lang['paywith_protx'].'" />';	}		/*-------------------------------------------------------------------------*/	// Generate Form action [normal]	/*-------------------------------------------------------------------------*/		function gw_generate_normal_form_action()	{		# test		//return 'https://ukvpstest.protx.com/vps2form/submit.asp';				return "https://ukvps.protx.com/vps2form/submit.asp";	}		/*-------------------------------------------------------------------------*/	// Generate Form action [upgrade]	/*-------------------------------------------------------------------------*/		function gw_generate_upgrade_form_action()	{		return $this->gw_generate_normal_form_action();	}		/*-------------------------------------------------------------------------*/	// Generate Form action [normal, recurring]	/*-------------------------------------------------------------------------*/		function gw_generate_normal_recurring_form_action()	{		return $this->gw_generate_normal_form_action();	}		/*-------------------------------------------------------------------------*/	// Generate Form action [upgrade, recurring]	/*-------------------------------------------------------------------------*/		function gw_generate_upgrade_recurring_form_action()	{		return $this->gw_generate_normal_form_action();	}		/*-------------------------------------------------------------------------*/	// Validate Payment	// What we need to return:	// 'currency_code'      => Currency code,	// 'payment_amount'     => Amount paid,	// 'payment_status'     => REFUND, ONEOFF, RECURRING	// 'member_unique_id'   => member's ID,	// 'purchase_package_id'=> Purchased package ID	// 'current_package_id' => Current package ID (used for upgrading)	// 'verified'           => TRUE , FALSE (Gateway verifies info as correct)	// 'subscription_id'    => (Used for recurring payments)	// 'transaction_id'     => Gateway transaction ID	/*-------------------------------------------------------------------------*/

⌨️ 快捷键说明

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