X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FPayment%2FPayPalImpl.php;h=84199205af34e8ae33a6e3447de0505ea687ceb7;hb=6f2500ee7589360102875df4367568fe87485df6;hp=8481a4ec81cc3bcf5c98c1bad65025e1d1bef1cd;hpb=9c41996008a0cb938cd30d8996cdec462c6a61a7;p=civicrm-core.git diff --git a/CRM/Core/Payment/PayPalImpl.php b/CRM/Core/Payment/PayPalImpl.php index 8481a4ec81..84199205af 100644 --- a/CRM/Core/Payment/PayPalImpl.php +++ b/CRM/Core/Payment/PayPalImpl.php @@ -1,7 +1,7 @@ _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'); @@ -75,34 +76,24 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { } /** - * 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 + * 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 */ - 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); + protected function supportsBackOffice() { + if ($this->_processorName == ts('PayPal Pro')) { + return TRUE; } - return self::$_singleton[$processorName]; + return FALSE; } - /** - * express checkout code. Check PayPal documentation for more information + * 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) - * @public */ - function setExpressCheckOut(&$params) { + public function setExpressCheckOut(&$params) { $args = array(); $this->initialize($args, 'SetExpressCheckout'); @@ -110,7 +101,7 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { $args['paymentAction'] = $params['payment_action']; $args['amt'] = $params['amount']; $args['currencyCode'] = $params['currencyID']; - $args['desc'] = $params['description']; + $args['desc'] = CRM_Utils_Array::value('description', $params); $args['invnum'] = $params['invoiceID']; $args['returnURL'] = $params['returnURL']; $args['cancelURL'] = $params['cancelURL']; @@ -139,14 +130,14 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { } /** - * get details from paypal. Check PayPal documentation for more information + * 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) - * @public */ - function getExpressCheckoutDetails($token) { + public function getExpressCheckoutDetails($token) { $args = array(); $this->initialize($args, 'GetExpressCheckoutDetails'); @@ -167,10 +158,10 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { $params['payer_id'] = $result['payerid']; $params['payer_status'] = $result['payerstatus']; $params['first_name'] = $result['firstname']; - $params['middle_name'] = $result['middlename']; + $params['middle_name'] = CRM_Utils_Array::value('middlename', $result); $params['last_name'] = $result['lastname']; $params['street_address'] = $result['shiptostreet']; - $params['supplemental_address_1'] = $result['shiptostreet2']; + $params['supplemental_address_1'] = CRM_Utils_Array::value('shiptostreet2', $result); $params['city'] = $result['shiptocity']; $params['state_province'] = $result['shiptostate']; $params['postal_code'] = $result['shiptozip']; @@ -180,16 +171,15 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { } /** - * do the express checkout at paypal. Check PayPal documentation for more information + * Do the express checkout at paypal. Check PayPal documentation for more information * - * @param $params + * @param array $params * * @internal param string $token the key associated with this transaction * * @return array the result in an nice formatted array (or an error object) - * @public */ - function doExpressCheckout(&$params) { + public function doExpressCheckout(&$params) { $args = array(); $this->initialize($args, 'DoExpressCheckoutPayment'); @@ -200,8 +190,8 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { $args['currencyCode'] = $params['currencyID']; $args['payerID'] = $params['payer_id']; $args['invnum'] = $params['invoiceID']; - $args['returnURL'] = $params['returnURL']; - $args['cancelURL'] = $params['cancelURL']; + $args['returnURL'] = CRM_Utils_Array::value('returnURL', $params); + $args['cancelURL'] = CRM_Utils_Array::value('cancelURL', $params); $args['desc'] = $params['description']; $result = $this->invokeAPI($args); @@ -215,7 +205,7 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { $params['trxn_id'] = $result['transactionid']; $params['gross_amount'] = $result['amt']; $params['fee_amount'] = $result['feeamt']; - $params['net_amount'] = $result['settleamt']; + $params['net_amount'] = CRM_Utils_Array::value('settleamt', $result); if ($params['net_amount'] == 0 && $params['fee_amount'] != 0) { $params['net_amount'] = $params['gross_amount'] - $params['fee_amount']; } @@ -227,11 +217,11 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { //LCD add new function for handling recurring payments for PayPal Express /** - * @param $params + * @param array $params * * @return mixed */ - function createRecurringPayments(&$params) { + public function createRecurringPayments(&$params) { $args = array(); $this->initialize($args, 'CreateRecurringPaymentsProfile'); @@ -288,12 +278,12 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { * @param $args * @param $method */ - function initialize(&$args, $method) { + public function initialize(&$args, $method) { $args['user'] = $this->_paymentProcessor['user_name']; $args['pwd'] = $this->_paymentProcessor['password']; $args['version'] = 3.0; $args['signature'] = $this->_paymentProcessor['signature']; - $args['subject'] = $this->_paymentProcessor['subject']; + $args['subject'] = CRM_Utils_Array::value('subject', $this->_paymentProcessor); $args['method'] = $method; } @@ -301,13 +291,13 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { * 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) - * @public */ - function doDirectPayment(&$params, $component = 'contribute') { + public function doDirectPayment(&$params, $component = 'contribute') { $args = array(); $this->initialize($args, 'DoDirectPayment'); @@ -382,11 +372,10 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { * This function checks to see if we have the right config values * * @return string the error message if any - * @public */ - function checkConfig() { + 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) @@ -417,7 +406,7 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { /** * @return null|string */ - function cancelSubscriptionURL() { + public function cancelSubscriptionURL() { if ($this->_paymentProcessor['payment_processor_type'] == 'PayPal_Standard') { return "{$this->_paymentProcessor['url_site']}cgi-bin/webscr?cmd=_subscr-find&alias=" . urlencode($this->_paymentProcessor['user_name']); } @@ -427,14 +416,14 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { } /** - * Function to check whether a method is present ( & supported ) by the payment processor object. + * 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 - * @public */ - function isSupported($method = 'cancelSubscription') { + public function isSupported($method = 'cancelSubscription') { if ($this->_paymentProcessor['payment_processor_type'] != 'PayPal') { // since subscription methods like cancelSubscription or updateBilling is not yet implemented / supported // by standard or express. @@ -449,8 +438,7 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { * * @return array|bool|object */ - function cancelSubscription(&$message = '', $params = array( - )) { + public function cancelSubscription(&$message = '', $params = array()) { if ($this->_paymentProcessor['payment_processor_type'] == 'PayPal') { $args = array(); $this->initialize($args, 'ManageRecurringPaymentsProfileStatus'); @@ -475,8 +463,7 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { * * @return array|bool|object */ - function updateSubscriptionBillingInfo(&$message = '', $params = array( - )) { + public function updateSubscriptionBillingInfo(&$message = '', $params = array()) { if ($this->_paymentProcessor['payment_processor_type'] == 'PayPal') { $config = CRM_Core_Config::singleton(); $args = array(); @@ -514,7 +501,7 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { * * @return array|bool|object */ - function changeSubscriptionAmount(&$message = '', $params = array()) { + public function changeSubscriptionAmount(&$message = '', $params = array()) { if ($this->_paymentProcessor['payment_processor_type'] == 'PayPal') { $config = CRM_Core_Config::singleton(); $args = array(); @@ -537,12 +524,12 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { } /** - * @param $params + * @param array $params * @param string $component * * @throws Exception */ - function doTransferCheckout(&$params, $component = 'contribute') { + public function doTransferCheckout(&$params, $component = 'contribute') { $config = CRM_Core_Config::singleton(); if ($component != 'contribute' && $component != 'event') { @@ -708,12 +695,12 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { } /** - * hash_call: Function to perform the API call to PayPal using API signature + * Hash_call: Function to perform the API call to PayPal using API signature * @methodName is name of API method. * @nvpStr is nvp string. * returns an associtive array containing the response from the server. */ - function invokeAPI($args, $url = NULL) { + public function invokeAPI($args, $url = NULL) { if ($url === NULL) { if (empty($this->_paymentProcessor['url_api'])) { @@ -787,7 +774,7 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { * @nvpstr is NVPString. * @nvpArray is Associative Array. */ - static function deformat($str) { + public static function deformat($str) { $result = array(); while (strlen($str)) { @@ -810,4 +797,3 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { return $result; } } -