You are here

function commerce_sermepa_settings_form in Commerce sermepa 7

Payment method callback: settings form.

Return value

array Form elements for the payment method's settings form included as part of the payment method's enabling action in Rules.

File

./commerce_sermepa.module, line 214
Provides a payment method for Drupal Commerce using Sermepa/Redsys gateway.

Code

function commerce_sermepa_settings_form($settings = NULL) {
  libraries_load('sermepa');
  $form = array();
  $settings = (array) $settings + array(
    'mode' => 'test',
    'Ds_MerchantName' => '',
    'Ds_MerchantCode' => '',
    'Ds_MerchantPassword' => '',
    'Ds_Merchant_Terminal' => '',
    'Ds_Merchant_PayMethods' => array(
      'C',
    ),
    'Ds_Merchant_ConsumerLanguage' => '001',
    'currency' => '978',
    'advanced' => array(
      'override_url' => '',
    ),
  );
  $form['mode'] = array(
    '#type' => 'radios',
    '#title' => t('Mode of the transactions'),
    '#default_value' => $settings['mode'],
    '#options' => array(
      'test' => t('Test'),
      'live' => t('Live'),
    ),
    '#required' => TRUE,
  );
  $form['Ds_MerchantName'] = array(
    '#type' => 'textfield',
    '#title' => t('Merchant Name'),
    '#default_value' => $settings['Ds_MerchantName'],
    '#size' => 80,
    '#maxlength' => Sermepa::getMerchantNameMaxLength(),
    '#required' => TRUE,
  );
  $form['Ds_MerchantCode'] = array(
    '#type' => 'textfield',
    '#title' => t('Merchant Code'),
    '#default_value' => $settings['Ds_MerchantCode'],
    '#size' => 80,
    '#maxlength' => Sermepa::getMerchantCodeMaxLength(),
    '#required' => TRUE,
  );
  $form['Ds_MerchantPassword'] = array(
    '#type' => 'textfield',
    '#title' => t('SHA256 Merchant Password'),
    '#default_value' => $settings['Ds_MerchantPassword'],
    '#size' => 80,
    '#maxlength' => Sermepa::getMerchantPasswordMaxLength(),
    '#required' => TRUE,
  );
  $form['Ds_Merchant_Terminal'] = array(
    '#type' => 'textfield',
    '#title' => t('Merchant Terminal'),
    '#default_value' => $settings['Ds_Merchant_Terminal'],
    '#size' => 5,
    '#maxlength' => Sermepa::getMerchantTerminalMaxLength(),
    '#required' => TRUE,
  );
  $form['Ds_Merchant_PayMethods'] = array(
    '#type' => 'select',
    '#multiple' => TRUE,
    '#title' => t('Merchant Consumer Language'),
    '#default_value' => $settings['Ds_Merchant_PayMethods'],
    '#options' => Sermepa::getAvailablePaymentMethods(),
    '#required' => FALSE,
  );
  $form['Ds_Merchant_ConsumerLanguage'] = array(
    '#type' => 'select',
    '#title' => t('Merchant Consumer Language'),
    '#default_value' => $settings['Ds_Merchant_ConsumerLanguage'],
    '#options' => Sermepa::getAvailableConsumerLanguages(),
    '#required' => TRUE,
  );
  $form['currency'] = array(
    '#type' => 'select',
    '#title' => t('Currency'),
    '#default_value' => $settings['currency'],
    '#options' => Sermepa::getAvailableCurrencies(),
    '#required' => TRUE,
  );
  $form['description'] = array(
    '#type' => 'textarea',
    '#title' => t('Payment instructions'),
    '#description' => t('Instructions for customers on the checkout page. Use <br /> for line break.'),
    '#default_value' => isset($settings['description']) ? $settings['description'] : '',
    '#required' => FALSE,
    '#rows' => 3,
  );
  $form['advanced'] = array(
    '#type' => 'fieldset',
    '#title' => t('Advanced options'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $form['advanced']['override_url'] = array(
    '#type' => 'textfield',
    '#title' => t('Override bank connect url'),
    '#default_value' => $settings['advanced']['override_url'],
    '#size' => 80,
    '#maxlength' => 255,
    '#element_validate' => array(
      'commerce_sermepa_settings_override_url_validate',
    ),
  );
  return $form;
}