You are here

public function ExpressCheckout::validateConfigurationForm in Commerce PayPal 8

Form validation handler.

Parameters

array $form: An associative array containing the structure of the plugin form as built by static::buildConfigurationForm().

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form. Calling code should pass on a subform state created through \Drupal\Core\Form\SubformState::createForSubform().

Overrides PaymentGatewayBase::validateConfigurationForm

File

src/Plugin/Commerce/PaymentGateway/ExpressCheckout.php, line 177

Class

ExpressCheckout
Provides the Paypal Express Checkout payment gateway.

Namespace

Drupal\commerce_paypal\Plugin\Commerce\PaymentGateway

Code

public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
  parent::validateConfigurationForm($form, $form_state);
  if (!$form_state
    ->getErrors() && $form_state
    ->isSubmitted()) {
    $values = $form_state
      ->getValue($form['#parents']);
    $this->configuration['api_username'] = $values['api_username'];
    $this->configuration['api_password'] = $values['api_password'];
    $this->configuration['signature'] = $values['signature'];
    $this->configuration['solution_type'] = $values['solution_type'];
    $this->configuration['mode'] = $values['mode'];
    $response = $this
      ->doRequest([
      'METHOD' => 'GetBalance',
    ]);
    if ($response['ACK'] != 'Success') {
      $form_state
        ->setError($form, $this
        ->t('Invalid API credentials.'));
    }
  }
}