private function WebformCivicrmPostProcess::submitLivePayment in Webform CiviCRM Integration 8.5
Execute payment processor transaction This happens during form validation and sets a form error if unsuccessful
1 call to WebformCivicrmPostProcess::submitLivePayment()
- WebformCivicrmPostProcess::validate in src/
WebformCivicrmPostProcess.php - Called after a webform is submitted Or, for a multipage form, called after each page
File
- src/
WebformCivicrmPostProcess.php, line 1931 - Front-end form validation and post-processing.
Class
Namespace
Drupal\webform_civicrmCode
private function submitLivePayment() {
$contributionParams = $this
->contributionParams();
$utils = \Drupal::service('webform_civicrm.utils');
// Only if #installments = 1, do we process a single transaction/contribution. #installments = 0 (or not set) in CiviCRM Core means open ended commitment;
$numInstallments = wf_crm_aval($contributionParams, 'installments', NULL, TRUE);
$frequencyInterval = wf_crm_aval($contributionParams, 'frequency_unit');
if ($numInstallments != 1 && !empty($frequencyInterval)) {
$result = $this
->contributionRecur($contributionParams);
}
else {
$result = $utils
->wf_civicrm_api('contribution', 'transact', $contributionParams);
}
if (empty($result['id'])) {
if (!empty($result['error_message'])) {
$this->form_state
->setErrorByName('contribution', $result['error_message']);
}
else {
$this->form_state
->setErrorByName('contribution', t('Transaction failed. Please verify all billing fields are correct.'));
}
return;
}
$this->ent['contribution'][1]['id'] = $result['id'];
}