<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/*
+--------------------------------------------------------------------+
- | eWAY Core Payment Module for CiviCRM version 4.5 & 1.9 |
+ | eWAY Core Payment Module for CiviCRM version 4.6 & 1.9 |
+--------------------------------------------------------------------+
| Licensed to CiviCRM under the Academic Free License version 3.0 |
| |
*/
/**
- -----------------------------------------------------------------------------------------------
- From the eWAY supplied 'Web.config' dated 25-Sep-2006 - check date and update links if required
- -----------------------------------------------------------------------------------------------
-
- LIVE gateway with CVN
- https://www.eway.com.au/gateway_cvn/xmlpayment.asp
-
- LIVE gateway without CVN
- https://www.eway.com.au/gateway/xmlpayment.asp
-
-
- Test gateway with CVN
- https://www.eway.com.au/gateway_cvn/xmltest/TestPage.asp
-
- Test gateway without CVN
- https://www.eway.com.au/gateway/xmltest/TestPage.asp
-
-
- LIVE gateway for Stored Transactions
- https://www.eway.com.au/gateway/xmlstored.asp
-
-
- -----------------------------------------------------------------------------------------------
- From the eWAY web-site - http://www.eway.com.au/Support/Developer/PaymentsRealTime.aspx
- -----------------------------------------------------------------------------------------------
- The test Customer ID is 87654321 - this is the only ID that will work on the test gateway.
- The test Credit Card number is 4444333322221111
- - this is the only credit card number that will work on the test gateway.
- The test Total Amount should end in 00 or 08 to get a successful response (e.g. $10.00 or $10.08)
- ie - all other amounts will return a failed response.
-
- -----------------------------------------------------------------------------------------------
+ * -----------------------------------------------------------------------------------------------
+ * From the eWAY supplied 'Web.config' dated 25-Sep-2006 - check date and update links if required
+ * -----------------------------------------------------------------------------------------------
+ *
+ * LIVE gateway with CVN
+ * https://www.eway.com.au/gateway_cvn/xmlpayment.asp
+ *
+ * LIVE gateway without CVN
+ * https://www.eway.com.au/gateway/xmlpayment.asp
+ *
+ *
+ * Test gateway with CVN
+ * https://www.eway.com.au/gateway_cvn/xmltest/TestPage.asp
+ *
+ * Test gateway without CVN
+ * https://www.eway.com.au/gateway/xmltest/TestPage.asp
+ *
+ *
+ * LIVE gateway for Stored Transactions
+ * https://www.eway.com.au/gateway/xmlstored.asp
+ *
+ *
+ * -----------------------------------------------------------------------------------------------
+ * From the eWAY web-site - http://www.eway.com.au/Support/Developer/PaymentsRealTime.aspx
+ * -----------------------------------------------------------------------------------------------
+ * The test Customer ID is 87654321 - this is the only ID that will work on the test gateway.
+ * The test Credit Card number is 4444333322221111
+ * - this is the only credit card number that will work on the test gateway.
+ * The test Total Amount should end in 00 or 08 to get a successful response (e.g. $10.00 or $10.08)
+ * ie - all other amounts will return a failed response.
+ *
+ * -----------------------------------------------------------------------------------------------
**/
class CRM_Core_Payment_eWAY extends CRM_Core_Payment {
# (not used, implicit in the API, might need to convert?)
- CONST CHARSET = 'UTF-8';
+ const CHARSET = 'UTF-8';
/**
* We only need one instance of this object. So we use the singleton
/**********************************************************
* Constructor
*
- * @param string $mode the mode of operation: live or test
+ * @param string $mode
+ * The mode of operation: live or test.
*
* @param $paymentProcessor
*
* @return \CRM_Core_Payment_eWAY *******************************************************
*/
- function __construct($mode, &$paymentProcessor) {
- // require Standaard eWAY API libraries
+ public function __construct($mode, &$paymentProcessor) {
+ // require Standard eWAY API libraries
require_once 'eWAY/eWAY_GatewayRequest.php';
require_once 'eWAY/eWAY_GatewayResponse.php';
$this->_processorName = ts('eWay');
}
- /**
- * singleton function used to manage this object
- *
- * @param string $mode the mode of operation: live or test
- *
- * @param object $paymentProcessor
- * @param null $paymentForm
- * @param bool $force
- *
- * @return object
- * @static
- */
- static function &singleton($mode, &$paymentProcessor, &$paymentForm = NULL, $force = false) {
- $processorName = $paymentProcessor['name'];
- if (self::$_singleton[$processorName] === NULL) {
- self::$_singleton[$processorName] = new CRM_Core_Payment_eWAY($mode, $paymentProcessor);
- }
- return self::$_singleton[$processorName];
- }
-
/**********************************************************
* This function sends request and receives response from
* eWAY payment process
**********************************************************/
- function doDirectPayment(&$params) {
+ public function doDirectPayment(&$params) {
if (CRM_Utils_Array::value('is_recur', $params) == TRUE) {
CRM_Core_Error::fatal(ts('eWAY - recurring payments not implemented'));
}
$country = $params['country'];
*/
-
//-------------------------------------------------------------
// Prepare some composite data from _paymentProcessor fields
//-------------------------------------------------------------
$fullAddress = $params['street_address'] . ", " . $params['city'] . ", " . $params['state_province'] . ".";
- $expireYear = substr($params['year'], 2, 2);
+ $expireYear = substr($params['year'], 2, 2);
$expireMonth = sprintf('%02d', (int) $params['month']);
// CiviCRM V1.9 - Picks up reasonable description
//$description = $params['amount_level'];
$errorDesc = curl_error($submit);
// Paranoia - in the unlikley event that 'curl' errno fails
- if ($errorNum == 0)
- $errorNum = 9005;
+ if ($errorNum == 0) {
+ $errorNum = 9005;
+ }
// Paranoia - in the unlikley event that 'curl' error fails
- if (strlen($errorDesc) == 0)
- $errorDesc = "Connection to eWAY payment gateway failed";
+ if (strlen($errorDesc) == 0) {
+ $errorDesc = "Connection to eWAY payment gateway failed";
+ }
return self::errorExit($errorNum, $errorDesc);
}
$trxn_id = str_replace( 'test', '', $trxn_id );
$trxn_id = intval($trxn_id) + 1;
$params['trxn_id'] = sprintf('test%08d', $trxn_id);
- } else {
+ }
+ else {
$params['trxn_id'] = $eWAYResponse->TransactionNumber();
}
*/
-
//=============
// Success !
//=============
/**
* Checks to see if invoice_id already exists in db
*
- * @param int $invoiceId The ID to check
+ * @param int $invoiceId
+ * The ID to check.
*
- * @return bool True if ID exists, else false
+ * @return bool
+ * True if ID exists, else false
*/
- function _checkDupe($invoiceId) {
+ public function _checkDupe($invoiceId) {
$contribution = new CRM_Contribute_DAO_Contribution();
$contribution->invoice_id = $invoiceId;
return $contribution->find();
/*************************************************************************************************
* This function checks the eWAY response status - returning a boolean false if status != 'true'
*************************************************************************************************/
- function isError(&$response) {
+ public function isError(&$response) {
$status = $response->Status();
if ((stripos($status, "true")) === FALSE) {
/**************************************************
* Produces error message and returns from class
**************************************************/
- function &errorExit($errorCode = NULL, $errorMessage = NULL) {
+ public function &errorExit($errorCode = NULL, $errorMessage = NULL) {
$e = CRM_Core_Error::singleton();
if ($errorCode) {
/**************************************************
* NOTE: 'doTransferCheckout' not implemented
**************************************************/
- function doTransferCheckout(&$params, $component) {
+ public function doTransferCheckout(&$params, $component) {
CRM_Core_Error::fatal(ts('This function is not implemented'));
}
*/
//function checkConfig( $mode ) // CiviCRM V1.9 Declaration
// CiviCRM V2.0 Declaration
- function checkConfig() {
+ public function checkConfig() {
$errorMsg = array();
if (empty($this->_paymentProcessor['user_name'])) {
* @param $p_request
* @param $p_response
*/
- function send_alert_email($p_eWAY_tran_num, $p_trxn_out, $p_trxn_back, $p_request, $p_response) {
+ public function send_alert_email($p_eWAY_tran_num, $p_trxn_out, $p_trxn_back, $p_request, $p_response) {
// Initialization call is required to use CiviCRM APIs.
civicrm_initialize(TRUE);
-
list($fromName, $fromEmail) = CRM_Core_BAO_Domain::getNameAndEmail();
$from = "$fromName <$fromEmail>";
$params = array();
$params['groupName'] = 'eWay Email Sender';
- $params['from'] = $from;
- $params['toName'] = $toName;
- $params['toEmail'] = $toEmail;
- $params['subject'] = $subject;
- $params['cc'] = $cc;
- $params['text'] = $message;
+ $params['from'] = $from;
+ $params['toName'] = $toName;
+ $params['toEmail'] = $toEmail;
+ $params['subject'] = $subject;
+ $params['cc'] = $cc;
+ $params['text'] = $message;
CRM_Utils_Mail::send($params);
}
}
// end class CRM_Core_Payment_eWAY
-