You are here

function commerce_payflow_link_capture_void_access in Commerce PayPal 7.2

Determines access to the prior authorization capture form or void form for Payflow Link credit card transactions.

Parameters

$order: The order the transaction is on.

$transaction: The payment transaction object to be captured.

Return value

TRUE or FALSE indicating access.

1 string reference to 'commerce_payflow_link_capture_void_access'
commerce_payflow_menu in modules/payflow/commerce_payflow.module
Implements hook_menu().

File

modules/payflow/commerce_payflow.module, line 83
Implements PayPal Payments Advanced (U.S. only) and Payflow Link Hosted Checkout pages and Transparent Redirect.

Code

function commerce_payflow_link_capture_void_access($order, $transaction) {

  // Return FALSE if the transaction isn't for Payflow Link or isn't awaiting capture.
  $valid_types = array(
    'A',
    'Pending',
  );
  if (!in_array($transaction->payment_method, array(
    'payflow_link',
    'paypal_ppa',
  )) || !in_array($transaction->remote_status, $valid_types)) {
    return FALSE;
  }

  // Return FALSE if the transaction is not pending.
  if ($transaction->status != COMMERCE_PAYMENT_STATUS_PENDING) {
    return FALSE;
  }

  // Return FALSE if the transaction was created through Express Checkout.
  if (!empty($transaction->data['commerce_payflow']['tender']) && $transaction->data['commerce_payflow']['tender'] == 'P') {
    return FALSE;
  }

  // Return FALSE if it is more than 29 days past the original authorization.
  if (REQUEST_TIME - $transaction->created > 86400 * 29) {
    return FALSE;
  }

  // Allow access if the user can update payments on this transaction.
  return commerce_payment_transaction_access('update', $transaction);
}