commerce_payleap.admin.inc in Commerce Payleap 7
Administrative forms for the Authorize.Net module.
File
includes/commerce_payleap.admin.incView source
<?php
/**
* @file
* Administrative forms for the Authorize.Net module.
*/
/**
* Form callback: allows the user to capture a prior authorization.
*/
function commerce_payleap_capture_form($form, &$form_state, $order, $transaction) {
$form_state['order'] = $order;
$form_state['transaction'] = $transaction;
// Load and store the payment method instance for this transaction.
$payment_method = commerce_payment_method_instance_load($transaction->instance_id);
$form_state['payment_method'] = $payment_method;
$balance = commerce_payment_order_balance($order);
if ($balance['amount'] > 0 && $balance['amount'] < $transaction->amount) {
$default_amount = $balance['amount'];
}
else {
$default_amount = $transaction->amount;
}
// Convert the price amount to a user friendly decimal value.
$default_amount = commerce_currency_amount_to_decimal($default_amount, $transaction->currency_code);
$description = implode('<br />', array(
t('Authorization: @amount', array(
'@amount' => commerce_currency_format($transaction->amount, $transaction->currency_code),
)),
t('Order balance: @balance', array(
'@balance' => commerce_currency_format($balance['amount'], $balance['currency_code']),
)),
));
$form['amount'] = array(
'#type' => 'textfield',
'#title' => t('Capture amount'),
'#description' => $description,
'#default_value' => $default_amount,
'#field_suffix' => check_plain($transaction->currency_code),
'#size' => 16,
);
$form = confirm_form($form, t('What amount do you want to capture?'), 'admin/commerce/orders/' . $order->order_id . '/payment', '', t('Capture'), t('Cancel'), 'confirm');
return $form;
}
/**
* Validate handler: ensure a valid amount is given.
*/
function commerce_payleap_capture_form_validate($form, &$form_state) {
$transaction = $form_state['transaction'];
$amount = $form_state['values']['amount'];
// Ensure a positive numeric amount has been entered for capture.
if (!is_numeric($amount) || $amount <= 0) {
form_set_error('amount', t('You must specify a positive numeric amount to capture.'));
}
// Ensure the amount is less than or equal to the authorization amount.
if ($amount > commerce_currency_amount_to_decimal($transaction->amount, $transaction->currency_code)) {
form_set_error('amount', t('You cannot capture more than you authorized through Payleap.'));
}
// If the authorization has expired, display an error message and redirect.
if (time() - $transaction->created > 86400 * 30) {
drupal_set_message(t('This authorization has passed its 30 day limit cannot be captured.'), 'error');
drupal_goto('admin/commerce/orders/' . $form_state['order']->order_id . '/payment');
}
}
/**
* Submit handler: process a prior authorization capture via AIM.
*/
function commerce_payleap_capture_form_submit($form, &$form_state) {
$transaction = $form_state['transaction'];
$amount = $form_state['values']['amount'];
$payment_method = $form_state['payment_method'];
// Send request to payleap.
$result = commerce_payleap_transaction_request($transaction, $payment_method, $amount, 'Force');
$form_state['redirect'] = 'admin/commerce/orders/' . $form_state['order']->order_id . '/payment';
}
Functions
Name | Description |
---|---|
commerce_payleap_capture_form | Form callback: allows the user to capture a prior authorization. |
commerce_payleap_capture_form_submit | Submit handler: process a prior authorization capture via AIM. |
commerce_payleap_capture_form_validate | Validate handler: ensure a valid amount is given. |