drupal-civicrm/sites/all/modules/civicrm/packages/eWAY/eWAY_GatewayRequest.php

243 lines
7.4 KiB
PHP
Raw Permalink Normal View History

2018-01-14 15:10:16 +02:00
<?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
?>