function commerce_sermepa_order_form in Commerce sermepa 7
Build the order form for the sermepa.
Parameters
commerce_order $order: The fully loaded order being paid for.
array $settings: An array of the current settings.
Return value
array Form elements that should be submitted to the redirected payment service.
1 call to commerce_sermepa_order_form()
- commerce_sermepa_redirect_form in ./
commerce_sermepa.module - Payment method callback: redirect form to sermepa gateway.
File
- ./
commerce_sermepa.module, line 386 - Provides a payment method for Drupal Commerce using Sermepa/Redsys gateway.
Code
function commerce_sermepa_order_form($form, &$form_state, $order, $settings) {
// Create a sermepa instance.
if (!($gateway = commerce_sermepa_library_initialize($settings))) {
return FALSE;
}
// Prepare transaction data.
// Set Authorization trasaction type.
// See \CommerceRedsys\Payment\Sermepa::getAvailableTransactionTypes() for full list.
$gateway
->setTransactionType('0')
->setOrder(substr(date('ymdHis') . $order->order_id, -12, 12))
->setAmount($order->commerce_order_total[LANGUAGE_NONE][0]['amount'])
->setCurrency($settings['currency'])
->setMerchantURL($settings['merchant_url'])
->setUrlOK($settings['return'])
->setUrlKO($settings['cancel_return'])
->setConsumerLanguage($settings['Ds_Merchant_ConsumerLanguage'])
->setMerchantData($order->order_id);
// Set payment methods.
if (!empty($settings['Ds_Merchant_PayMethods'])) {
$gateway
->setPaymentMethod(implode('', $settings['Ds_Merchant_PayMethods']));
}
// Allow user to make changes in the gateway configuration data.
rules_invoke_all('commerce_sermepa_gateway', $gateway, $order);
$form['#action'] = $gateway
->getEnvironment();
// Force rebuild the form.
$form_sate['rebuild'] = TRUE;
// Create hidden fields.
$parameters = $gateway
->composeMerchantParameters();
if ($parameters) {
$form['Ds_SignatureVersion'] = array(
'#type' => 'hidden',
'#value' => $gateway
->getSignatureVersion(),
);
$form['Ds_MerchantParameters'] = array(
'#type' => 'hidden',
'#value' => $parameters,
);
$form['Ds_Signature'] = array(
'#type' => 'hidden',
'#value' => $gateway
->composeMerchantSignature(),
);
}
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Redirect to Redsys platform'),
);
return $form;
}