+--------------------------------------------------------------------+
| CiviCRM version 4.6 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014 |
+ | Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2014
+ * @copyright CiviCRM LLC (c) 2004-2015
* $Id$
*
*/
* pattern and cache the instance in this variable
*
* @var object
- * @static
*/
static private $_singleton = NULL;
/**
- * Constructor
+ * Constructor.
*
- * @param string $mode the mode of operation: live or test
+ * @param string $mode
+ * The mode of operation: live or test.
*
* @param $paymentProcessor
*
$this->_mode = $mode;
$this->_paymentProcessor = $paymentProcessor;
$this->_processorName = ts('PayPal Pro');
- $paymentProcessorType = CRM_Core_PseudoConstant::paymentProcessorType(false, null, 'name');
+ $paymentProcessorType = CRM_Core_PseudoConstant::paymentProcessorType(FALSE, NULL, 'name');
if ($this->_paymentProcessor['payment_processor_type_id'] == CRM_Utils_Array::key('PayPal_Standard', $paymentProcessorType)) {
$this->_processorName = ts('PayPal Standard');
}
}
- /**
- * 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
- */
- public static function &singleton($mode, &$paymentProcessor, &$paymentForm = NULL, $force = FALSE) {
- $processorName = $paymentProcessor['name'];
- if (!isset(self::$_singleton[$processorName]) || self::$_singleton[$processorName] === NULL) {
- self::$_singleton[$processorName] = new CRM_Core_Payment_PaypalImpl($mode, $paymentProcessor);
- }
- return self::$_singleton[$processorName];
- }
-
/**
* Are back office payments supported - e.g paypal standard won't permit you to enter a credit card associated with someone else's login
* @return bool
}
return FALSE;
}
+
/**
* Express checkout code. Check PayPal documentation for more information
*
- * @param array $params assoc array of input parameters for this transaction
+ * @param array $params
+ * Assoc array of input parameters for this transaction.
*
- * @return array the result in an nice formatted array (or an error object)
+ * @return array
+ * the result in an nice formatted array (or an error object)
*/
public function setExpressCheckOut(&$params) {
$args = array();
/**
* Get details from paypal. Check PayPal documentation for more information
*
- * @param string $token the key associated with this transaction
+ * @param string $token
+ * The key associated with this transaction.
*
- * @return array the result in an nice formatted array (or an error object)
+ * @return array
+ * the result in an nice formatted array (or an error object)
*/
public function getExpressCheckoutDetails($token) {
$args = array();
*
* @internal param string $token the key associated with this transaction
*
- * @return array the result in an nice formatted array (or an error object)
+ * @return array
+ * the result in an nice formatted array (or an error object)
*/
public function doExpressCheckout(&$params) {
$args = array();
$args['cancelURL'] = CRM_Utils_Array::value('cancelURL', $params);
$args['desc'] = $params['description'];
+ // add CiviCRM BN code
+ $args['BUTTONSOURCE'] = 'CiviCRM_SP';
+
$result = $this->invokeAPI($args);
if (is_a($result, 'CRM_Core_Error')) {
//$args['desc'] = 'Recurring Contribution';
$args['totalbillingcycles'] = $params['installments'];
$args['version'] = '56.0';
- $args['profilereference'] =
- "i={$params['invoiceID']}" .
+ $args['profilereference'] = "i={$params['invoiceID']}" .
"&m=$component" .
"&c={$params['contactID']}" .
"&r={$params['contributionRecurID']}" .
"&b={$params['contributionID']}" .
"&p={$params['contributionPageID']}";
+ // add CiviCRM BN code
+ $args['BUTTONSOURCE'] = 'CiviCRM_SP';
+
$result = $this->invokeAPI($args);
if (is_a($result, 'CRM_Core_Error')) {
}
/* Success */
-
$params['trxn_id'] = $result['transactionid'];
$params['gross_amount'] = $result['amt'];
$params['fee_amount'] = $result['feeamt'];
* @param $method
*/
public function initialize(&$args, $method) {
- $args['user'] = $this->_paymentProcessor['user_name'];
- $args['pwd'] = $this->_paymentProcessor['password'];
- $args['version'] = 3.0;
+ $args['user'] = $this->_paymentProcessor['user_name'];
+ $args['pwd'] = $this->_paymentProcessor['password'];
+ $args['version'] = 3.0;
$args['signature'] = $this->_paymentProcessor['signature'];
- $args['subject'] = CRM_Utils_Array::value('subject', $this->_paymentProcessor);
- $args['method'] = $method;
+ $args['subject'] = CRM_Utils_Array::value('subject', $this->_paymentProcessor);
+ $args['method'] = $method;
}
/**
* This function collects all the information from a web/api form and invokes
* the relevant payment processor specific functions to perform the transaction
*
- * @param array $params assoc array of input parameters for this transaction
+ * @param array $params
+ * Assoc array of input parameters for this transaction.
*
* @param string $component
- * @return array the result in an nice formatted array (or an error object)
+ * @return array
+ * the result in an nice formatted array (or an error object)
*/
public function doDirectPayment(&$params, $component = 'contribute') {
$args = array();
$args['desc'] = substr(CRM_Utils_Array::value('description', $params), 0, 127);
$args['custom'] = CRM_Utils_Array::value('accountingCode', $params);
+ // add CiviCRM BN code
+ $args['BUTTONSOURCE'] = 'CiviCRM_SP';
+
if (CRM_Utils_Array::value('is_recur', $params) == 1) {
$start_time = strtotime(date('m/d/Y'));
$start_date = date('Y-m-d\T00:00:00\Z', $start_time);
$args['billingfrequency'] = $params['frequency_interval'];
$args['method'] = "CreateRecurringPaymentsProfile";
$args['profilestartdate'] = $start_date;
- $args['desc'] =
+ $args['desc'] = "" .
$params['description'] . ": " .
$params['amount'] . " Per " .
$params['frequency_interval'] . " " .
$args['amt'] = $params['amount'];
$args['totalbillingcycles'] = $params['installments'];
$args['version'] = 56.0;
- $args['PROFILEREFERENCE'] =
+ $args['PROFILEREFERENCE'] = "" .
"i=" . $params['invoiceID'] . "&m=" . $component .
"&c=" . $params['contactID'] . "&r=" . $params['contributionRecurID'] .
"&b=" . $params['contributionID'] . "&p=" . $params['contributionPageID'];
}
/**
- * This function checks to see if we have the right config values
+ * This function checks to see if we have the right config values.
*
- * @return string the error message if any
+ * @return string
+ * the error message if any
*/
public function checkConfig() {
$error = array();
- $paymentProcessorType = CRM_Core_PseudoConstant::paymentProcessorType(false, null, 'name');
+ $paymentProcessorType = CRM_Core_PseudoConstant::paymentProcessorType(FALSE, NULL, 'name');
if (
$this->_paymentProcessor['payment_processor_type_id'] == CRM_Utils_Array::key('PayPal_Standard', $paymentProcessorType) ||
$this->_paymentProcessor['payment_processor_type_id'] == CRM_Utils_Array::key('PayPal', $paymentProcessorType)
/**
* Check whether a method is present ( & supported ) by the payment processor object.
*
- * @param string $method method to check for.
+ * @param string $method
+ * Method to check for.
*
- * @return boolean
+ * @return bool
*/
public function isSupported($method = 'cancelSubscription') {
if ($this->_paymentProcessor['payment_processor_type'] != 'PayPal') {
$this->initialize($args, 'ManageRecurringPaymentsProfileStatus');
$args['PROFILEID'] = CRM_Utils_Array::value('subscriptionId', $params);
- $args['ACTION'] = 'Cancel';
- $args['NOTE'] = CRM_Utils_Array::value('reason', $params);
+ $args['ACTION'] = 'Cancel';
+ $args['NOTE'] = CRM_Utils_Array::value('reason', $params);
$result = $this->invokeAPI($args);
if (is_a($result, 'CRM_Core_Error')) {
$args['EXPDATE'] = sprintf('%02d', $params['month']) . $params['year'];
$args['CVV2'] = $params['cvv2'];
- $args['FIRSTNAME'] = $params['first_name'];
- $args['LASTNAME'] = $params['last_name'];
- $args['STREET'] = $params['street_address'];
- $args['CITY'] = $params['city'];
- $args['STATE'] = $params['state_province'];
+ $args['FIRSTNAME'] = $params['first_name'];
+ $args['LASTNAME'] = $params['last_name'];
+ $args['STREET'] = $params['street_address'];
+ $args['CITY'] = $params['city'];
+ $args['STATE'] = $params['state_province'];
$args['COUNTRYCODE'] = $params['postal_code'];
- $args['ZIP'] = $params['country'];
+ $args['ZIP'] = $params['country'];
$result = $this->invokeAPI($args);
if (is_a($result, 'CRM_Core_Error')) {
}
}
- $url = ($component == 'event') ? 'civicrm/event/register' : 'civicrm/contribute/transact';
- $cancel = ($component == 'event') ? '_qf_Register_display' : '_qf_Main_display';
+ $url = ($component == 'event') ? 'civicrm/event/register' : 'civicrm/contribute/transact';
+ $cancel = ($component == 'event') ? '_qf_Register_display' : '_qf_Main_display';
$returnURL = CRM_Utils_System::url($url,
"_qf_ThankYou_display=1&qfKey={$params['qfKey']}",
TRUE, NULL, FALSE
'invoice' => $params['invoiceID'],
'lc' => substr($config->lcMessages, -2),
'charset' => function_exists('mb_internal_encoding') ? mb_internal_encoding() : 'UTF-8',
- 'custom' => CRM_Utils_Array::value('accountingCode',
- $params
- ),
+ 'custom' => CRM_Utils_Array::value('accountingCode', $params),
+ 'bn' => 'CiviCRM_SP',
);
// add name and address if available, CRM-3130
$paypalParams += array(
'cmd' => '_xclick-subscriptions',
- 'a3' => $params['amount'],
- 'p3' => $params['frequency_interval'],
- 't3' => ucfirst(substr($params['frequency_unit'], 0, 1)),
+ 'a3' => $params['amount'],
+ 'p3' => $params['frequency_interval'],
+ 't3' => ucfirst(substr($params['frequency_unit'], 0, 1)),
'src' => 1,
'sra' => 1,
'srt' => CRM_Utils_Array::value('installments', $params),
$uri .= "&{$key}={$value}";
}
- $uri = substr($uri, 1);
- $url = $this->_paymentProcessor['url_site'];
- $sub = empty($params['is_recur']) ? 'cgi-bin/webscr' : 'subscriptions';
+ $uri = substr($uri, 1);
+ $url = $this->_paymentProcessor['url_site'];
+ $sub = empty($params['is_recur']) ? 'cgi-bin/webscr' : 'subscriptions';
$paypalURL = "{$url}{$sub}?$uri";
CRM_Utils_System::redirect($paypalURL);
return $result;
}
- /** This function will take NVPString and convert it to an Associative Array and it will decode the response.
+ /**
+ * This function will take NVPString and convert it to an Associative Array and it will decode the response.
* It is usefull to search for a particular key and displaying arrays.
* @nvpstr is NVPString.
* @nvpArray is Associative Array.
return $result;
}
+
}