242 lines
		
	
	
	
		
			7.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
	
		
			7.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /*
 | |
|  +--------------------------------------------------------------------+
 | |
|  | CiviCRM version 4.7                                                |
 | |
|  +--------------------------------------------------------------------+
 | |
|  | This file is a part of CiviCRM.                                    |
 | |
|  |                                                                    |
 | |
|  | CiviCRM is free software; you can copy, modify, and distribute it  |
 | |
|  | under the terms of the GNU Affero General Public License           |
 | |
|  | Version 3, 19 November 2007 and the CiviCRM Licensing Exception.   |
 | |
|  |                                                                    |
 | |
|  | CiviCRM is distributed in the hope that it will be useful, but     |
 | |
|  | WITHOUT ANY WARRANTY; without even the implied warranty of         |
 | |
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |
 | |
|  | See the GNU Affero General Public License for more details.        |
 | |
|  |                                                                    |
 | |
|  | You should have received a copy of the GNU Affero General Public   |
 | |
|  | License and the CiviCRM Licensing Exception along                  |
 | |
|  | with this program; if not, contact CiviCRM LLC                     |
 | |
|  | at info[AT]civicrm[DOT]org. If you have questions about the        |
 | |
|  | GNU Affero General Public License or the licensing of CiviCRM,     |
 | |
|  | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
 | |
|  +--------------------------------------------------------------------+
 | |
| */
 | |
| 
 | |
| /**************************************************************************************************************************
 | |
|  * Licensed to CiviCRM under the Academic Free License version 3.0
 | |
|  * Written & Contributed by Dolphin Software P/L - March 2008 
 | |
|  *
 | |
|  * 'eWAY_GatewayRequest.php' - Based on the standard supplied eWay sample code 'GatewayResponse.php'
 | |
|  *
 | |
|  * The only significant change from the original is that the 'CVN' field is uncommented,
 | |
|  * unlike the distributed sample code.
 | |
|  *
 | |
|  * ALSO: Added a 'GetTransactionNumber' function.
 | |
|  *
 | |
|  **************************************************************************************************************************/
 | |
|  
 | |
| class GatewayRequest
 | |
| {
 | |
| 	var $txCustomerID = "";
 | |
| 
 | |
| 	var $txAmount = 0;
 | |
| 
 | |
| 	var $txCardholderName = "";
 | |
| 
 | |
| 	var $txCardNumber = "";
 | |
| 
 | |
| 	var $txCardExpiryMonth = "01";
 | |
| 
 | |
| 	var $txCardExpiryYear = "00";
 | |
| 
 | |
| 	var $txTransactionNumber = "";
 | |
| 
 | |
| 	var $txCardholderFirstName = "";
 | |
| 
 | |
| 	var $txCardholderLastName = "";
 | |
| 
 | |
| 	var $txCardholderEmailAddress = "";
 | |
| 
 | |
| 	var $txCardholderAddress = "";
 | |
| 
 | |
| 	var $txCardholderPostalCode = "";
 | |
| 
 | |
| 	var $txInvoiceReference = "";
 | |
| 
 | |
| 	var $txInvoiceDescription = "";
 | |
| 
 | |
|     var $txCVN = "";
 | |
| 
 | |
| 	var $txOption1 = "";
 | |
| 
 | |
| 	var $txOption2 = "";
 | |
| 
 | |
| 	var $txOption3 = "";
 | |
|     
 | |
|     var $txCustomerBillingCountry = "";
 | |
| 
 | |
|     var $txCustomerIPAddress = "";
 | |
| 
 | |
|    function __construct()
 | |
|    {
 | |
|       // Empty Constructor
 | |
|    }
 | |
| 
 | |
|    function GetTransactionNumber()
 | |
|    {
 | |
|       return $this->txTransactionNumber;
 | |
|    }
 | |
| 
 | |
|    function EwayCustomerID($value) 
 | |
|    {
 | |
|       $this->txCustomerID=$value;
 | |
|    }
 | |
| 
 | |
|    function InvoiceAmount($value)
 | |
|    {
 | |
|       $this->txAmount=$value;
 | |
|    }
 | |
| 
 | |
|    function CardHolderName($value)
 | |
|    {
 | |
|       $this->txCardholderName=$value;
 | |
|    }
 | |
| 
 | |
|    function CardExpiryMonth($value)  
 | |
|    {
 | |
|       $this->txCardExpiryMonth=$value;
 | |
|    }
 | |
| 
 | |
|    function CardExpiryYear($value)
 | |
|    {
 | |
|       $this->txCardExpiryYear=$value;
 | |
|    }
 | |
| 
 | |
|    function TransactionNumber($value)
 | |
|    {
 | |
|       $this->txTransactionNumber=$value;
 | |
|    }
 | |
| 
 | |
|    function PurchaserFirstName($value)
 | |
|    {
 | |
|       $this->txCardholderFirstName=$value;
 | |
|    }
 | |
| 
 | |
|    function PurchaserLastName($value)
 | |
|    {
 | |
|       $this->txCardholderLastName=$value;
 | |
|    }
 | |
| 
 | |
|    function CardNumber($value)
 | |
|    {
 | |
|       $this->txCardNumber=$value;
 | |
|    }
 | |
| 
 | |
|    function PurchaserAddress($value)
 | |
|    {
 | |
|       $this->txCardholderAddress=$value;
 | |
|    }
 | |
| 
 | |
|    function PurchaserPostalCode($value)
 | |
|    {
 | |
|       $this->txCardholderPostalCode=$value;
 | |
|    }
 | |
| 
 | |
|    function PurchaserEmailAddress($value)
 | |
|    {
 | |
|       $this->txCardholderEmailAddress=$value;
 | |
|    }
 | |
| 
 | |
|    function InvoiceReference($value) 
 | |
|    {
 | |
|       $this->txInvoiceReference=$value; 
 | |
|    }
 | |
| 
 | |
|    function InvoiceDescription($value) 
 | |
|    {
 | |
|       $this->txInvoiceDescription=$value; 
 | |
|    }
 | |
| 
 | |
|    function CVN($value) 
 | |
|    {
 | |
|       $this->txCVN=$value; 
 | |
|    }
 | |
| 
 | |
|    function EwayOption1($value) 
 | |
|    {
 | |
|       $this->txOption1=$value; 
 | |
|    }
 | |
| 
 | |
|    function EwayOption2($value) 
 | |
|    {
 | |
|       $this->txOption2=$value; 
 | |
|    }
 | |
| 
 | |
|    function EwayOption3($value) 
 | |
|    {
 | |
|       $this->txOption3=$value; 
 | |
|    }
 | |
| 
 | |
|    function CustomerBillingCountry($value) 
 | |
|    {
 | |
|        $this->txCustomerBillingCountry=$value; 
 | |
|    }
 | |
| 
 | |
|    function CustomerIPAddress($value) 
 | |
|    {
 | |
|        $this->txCustomerIPAddress=$value; 
 | |
|    }
 | |
| 
 | |
|    function ToXml()
 | |
|    {
 | |
|       // We don't really need the overhead of creating an XML DOM object
 | |
|       // to really just concatenate a string together.
 | |
| 
 | |
|       $xml = "<ewaygateway>";
 | |
|       $xml .= $this->CreateNode("ewayCustomerID",                 $this->txCustomerID);
 | |
|       $xml .= $this->CreateNode("ewayTotalAmount",                $this->txAmount);
 | |
|       $xml .= $this->CreateNode("ewayCardHoldersName",            $this->txCardholderName);
 | |
|       $xml .= $this->CreateNode("ewayCardNumber",                 $this->txCardNumber);
 | |
|       $xml .= $this->CreateNode("ewayCardExpiryMonth",            $this->txCardExpiryMonth);
 | |
|       $xml .= $this->CreateNode("ewayCardExpiryYear",             $this->txCardExpiryYear);
 | |
|       $xml .= $this->CreateNode("ewayTrxnNumber",                 $this->txTransactionNumber);
 | |
|       $xml .= $this->CreateNode("ewayCustomerInvoiceDescription", $this->txInvoiceDescription);
 | |
|       $xml .= $this->CreateNode("ewayCustomerFirstName",          $this->txCardholderFirstName);
 | |
|       $xml .= $this->CreateNode("ewayCustomerLastName",           $this->txCardholderLastName);
 | |
|       $xml .= $this->CreateNode("ewayCustomerEmail",              $this->txCardholderEmailAddress);
 | |
|       $xml .= $this->CreateNode("ewayCustomerAddress",            $this->txCardholderAddress);
 | |
|       $xml .= $this->CreateNode("ewayCustomerPostcode",           $this->txCardholderPostalCode);
 | |
|       $xml .= $this->CreateNode("ewayCustomerInvoiceRef",         $this->txInvoiceReference);
 | |
|       $xml .= $this->CreateNode("ewayCVN",                        $this->txCVN);
 | |
|       $xml .= $this->CreateNode("ewayOption1",                    $this->txOption1);
 | |
|       $xml .= $this->CreateNode("ewayOption2",                    $this->txOption2);
 | |
|       $xml .= $this->CreateNode("ewayOption3",                    $this->txOption3);
 | |
|       $xml .= $this->CreateNode("ewayCustomerIPAddress",          $this->txCustomerIPAddress);
 | |
|       $xml .= $this->CreateNode("ewayCustomerBillingCountry",     $this->txCustomerBillingCountry);
 | |
|       $xml .= "</ewaygateway>";
 | |
|       
 | |
|       return $xml;
 | |
|    }
 | |
|    
 | |
|    
 | |
|    /********************************************************
 | |
|    * Builds a simple XML Node
 | |
|    *
 | |
|    * 'NodeName' is the anem of the node being created.
 | |
|    * 'NodeValue' is its value
 | |
|    *
 | |
|    ********************************************************/
 | |
|    function CreateNode($NodeName, $NodeValue)
 | |
|    {
 | |
|     require_once 'XML/Util.php';
 | |
| 
 | |
|     $xml = new XML_Util();
 | |
|     $node = "<" . $NodeName . ">" . $xml->replaceEntities($NodeValue) . "</" . $NodeName . ">";
 | |
|     return $node;
 | |
|    }
 | |
|    
 | |
| } // class GatewayRequest
 | |
| 
 | |
| ?>
 |