Add invoice_id as default param to api.contribution.transact
authorColeman Watts <coleman@civicrm.org>
Tue, 13 Jan 2015 17:31:53 +0000 (12:31 -0500)
committerColeman Watts <coleman@civicrm.org>
Tue, 13 Jan 2015 17:31:53 +0000 (12:31 -0500)
https://www.drupal.org/node/2402251

api/v3/Contribution.php

index 42712ee6dfd7f180227a57fb7642a36e14ea4c18..d574017e23001c452156c366bc29cb66132fdec4 100644 (file)
@@ -304,6 +304,9 @@ function civicrm_api3_contribution_transact($params) {
     $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']);
   if (civicrm_error($paymentProcessor)) {
     return $paymentProcessor;