From 71b4fdf9e2ce11b74a722f29040db01b4d110072 Mon Sep 17 00:00:00 2001 From: eileen Date: Thu, 4 Apr 2019 14:06:29 +1300 Subject: [PATCH] Add basic Pay api --- api/v3/PaymentProcessor.php | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/api/v3/PaymentProcessor.php b/api/v3/PaymentProcessor.php index d2c5b0ec29..658b51aae3 100644 --- a/api/v3/PaymentProcessor.php +++ b/api/v3/PaymentProcessor.php @@ -116,6 +116,40 @@ function _civicrm_api3_payment_processor_getlist_defaults(&$request) { ]; } +/** + * Action payment. + * + * @param array $params + * + * @return array + * API result array. + * @throws CiviCRM_API3_Exception + */ +function civicrm_api3_payment_processor_pay($params) { + $processor = Civi\Payment\System::singleton()->getById($params['payment_processor_id']); + $processor->setPaymentProcessor(civicrm_api3('PaymentProcessor', 'getsingle', ['id' => $params['payment_processor_id']])); + $result = $processor->doPayment($params); + return civicrm_api3_create_success(array($result), $params); +} + +/** + * Action payment. + * + * @param array $params + */ +function _civicrm_api3_payment_processor_pay_spec(&$params) { + $params['payment_processor_id'] = [ + 'api.required' => 1, + 'title' => ts('Payment processor'), + 'type' => CRM_Utils_Type::T_INT, + ]; + $params['amount'] = [ + 'api.required' => TRUE, + 'title' => ts('Amount to refund'), + 'type' => CRM_Utils_Type::T_MONEY, + ]; +} + /** * Action refund. * -- 2.25.1