function commerce_robokassa_order_form in Commerce robokassa 7.2
Builds a robokassa form from an order object.
1 call to commerce_robokassa_order_form()
- commerce_robokassa_redirect_form in ./
commerce_robokassa.module - Payment method callback: redirect form, building a robokassa form.
File
- ./
commerce_robokassa.module, line 458 - Drupal Commerce Robokassa payment method.
Code
function commerce_robokassa_order_form($form, &$form_state, $order, $settings) {
$form['#action'] = commerce_robokassa_server_url($settings['server']);
$form['#attributes'] = array(
'name' => 'payment',
'accept-charset' => 'UTF-8',
);
$form['#method'] = 'post';
$transaction = $order->data['active_transaction'];
$amount = commerce_currency_amount_to_decimal($transaction->amount, $transaction->currency_code);
$settings["OutSum"] = $amount;
$settings["InvId"] = $order->order_id;
$settings["shp_trx_id"] = $transaction->remote_id;
// For test transactions.
if ($settings['server'] == 'test') {
$settings['IsTest'] = '1';
}
$signature_data = array(
$settings['MrchLogin'],
$amount,
$settings["InvId"],
$settings['pass1'],
'shp_trx_id=' . $settings["shp_trx_id"],
);
// Calculate signature.
$settings['SignatureValue'] = hash($settings['hash_type'], implode(':', $signature_data));
$inv_desc_params = array(
'!orderid' => $order->order_id,
'!mail' => $order->mail,
);
$inv_desc = t('Order ID: !orderid, User mail: !mail', $inv_desc_params);
$settings['InvDesc'] = truncate_utf8($inv_desc, 100);
$skiped_settings = array(
'server',
'show_robokassa_fee_message',
'pass1',
'pass2',
'hash_type',
'allowed_currencies',
);
if (isset($order->data['commerce_robokassa']['IncCurrLabel'])) {
$settings['IncCurrLabel'] = $order->data['commerce_robokassa']['IncCurrLabel'];
}
foreach ($settings as $name => $value) {
if (empty($value) || in_array($name, $skiped_settings)) {
continue;
}
$form[$name] = array(
'#type' => 'hidden',
'#value' => $value,
);
}
$form['process'] = array(
'#type' => 'submit',
'#value' => t('Proceed to robokassa'),
);
return $form;
}