<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 5 |
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2019 |
- +--------------------------------------------------------------------+
- | 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. |
+ | Copyright CiviCRM LLC. All rights reserved. |
| |
- | 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 |
+ | This work is published under the GNU AGPLv3 license with some |
+ | permitted exceptions and without any warranty. For full license |
+ | and copyright information, see https://civicrm.org/licensing |
+--------------------------------------------------------------------+
*/
return [];
}
-/**
- * Adjust Metadata for Transact action.
- *
- * The metadata is used for setting defaults, documentation & validation.
- *
- * @param array $params
- * Array of parameters determined by getfields.
- */
-function _civicrm_api3_contribution_transact_spec(&$params) {
- $fields = civicrm_api3('Contribution', 'getfields', ['action' => 'create']);
- $params = array_merge($params, $fields['values']);
- $params['receive_date']['api.default'] = 'now';
-}
-
-/**
- * Process a transaction and record it against the contact.
- *
- * @param array $params
- * Input parameters.
- *
- * @return array
- * contribution of created or updated record (or a civicrm error)
- */
-function civicrm_api3_contribution_transact($params) {
- // Set some params specific to payment processing
- // @todo - fix this function - none of the results checked by civicrm_error would ever be an array with
- // 'is_error' set
- // also trxn_id is not saved.
- // but since there is no test it's not desirable to jump in & make the obvious changes.
- $params['payment_processor_mode'] = empty($params['is_test']) ? 'live' : 'test';
- $params['amount'] = $params['total_amount'];
- if (!isset($params['net_amount'])) {
- $params['net_amount'] = $params['amount'];
- }
- if (!isset($params['invoiceID']) && isset($params['invoice_id'])) {
- $params['invoiceID'] = $params['invoice_id'];
- }
-
- // Some payment processors expect a unique invoice_id - generate one if not supplied
- $params['invoice_id'] = CRM_Utils_Array::value('invoice_id', $params, md5(uniqid(rand(), TRUE)));
-
- $paymentProcessor = CRM_Financial_BAO_PaymentProcessor::getPayment($params['payment_processor'], $params['payment_processor_mode']);
- $paymentProcessor['object']->doPayment($params);
-
- $params['payment_instrument_id'] = $paymentProcessor['object']->getPaymentInstrumentID();
-
- return civicrm_api('Contribution', 'create', $params);
-}
-
/**
* Send a contribution confirmation (receipt or invoice).
*
* @param CRM_Contribute_BAO_Contribution $firstContribution
*
* @return mixed
+ * @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
*/
function _ipn_process_transaction(&$params, $contribution, $input, $ids, $firstContribution = NULL) {
$objects = $contribution->_relatedObjects;
$input['pan_truncation'] = CRM_Utils_Array::value('pan_truncation', $params);
$transaction = new CRM_Core_Transaction();
return CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects, $transaction,
- !empty($contribution->contribution_recur_id), $contribution, CRM_Utils_Array::value('is_post_payment_create', $params));
+ $contribution, CRM_Utils_Array::value('is_post_payment_create', $params));
}
/**
'type' => CRM_Utils_Type::T_INT,
];
}
+
+/**
+ * Declare deprecated functions.
+ *
+ * @return array
+ * Array of deprecated actions
+ */
+function _civicrm_api3_contribution_deprecation() {
+ return ['transact' => 'Contribute.transact is ureliable & unsupported - see https://docs.civicrm.org/dev/en/latest/financial/OrderAPI/ for how to move on'];
+}