You are here

function commerce_cardonfile_testing_payment_transaction in Commerce Card on File 7.2

Creates a payment transaction with the specified transaction status.

2 calls to commerce_cardonfile_testing_payment_transaction()
commerce_cardonfile_testing_payment_cardonfile_charge in tests/commerce_cardonfile_testing/commerce_cardonfile_testing.module
Card on File callback: charge credit card.
commerce_cardonfile_testing_payment_submit_form_submit in tests/commerce_cardonfile_testing/commerce_cardonfile_testing.module
Payment method callback: submit form submission.

File

tests/commerce_cardonfile_testing/commerce_cardonfile_testing.module, line 119
Provides a test payment method implementing the Card on File API.

Code

function commerce_cardonfile_testing_payment_transaction($payment_method, $order, $charge) {
  $transaction_status_overall = TRUE;
  $transaction_status = variable_get('commerce_cardonfile_testing_next_transaction_status', COMMERCE_PAYMENT_STATUS_SUCCESS);
  if (!in_array($transaction_status, array(
    COMMERCE_PAYMENT_STATUS_SUCCESS,
    COMMERCE_PAYMENT_STATUS_PENDING,
  ))) {

    // Consider the transaction failed unless the selected status is "success"
    // or "pending".
    $transaction_status_overall = FALSE;
  }
  $transaction = commerce_payment_transaction_new('commerce_cardonfile_testing_payment', $order->order_id);
  $transaction->instance_id = $payment_method['instance_id'];
  $transaction->amount = $transaction_status_overall ? $charge['amount'] : 0;
  $transaction->currency_code = $charge['currency_code'];
  $transaction->status = $transaction_status;
  $transaction->remote_id = rand(1000, 9999);
  $transaction->message = 'Name: @name. Transaction status: !status.';
  $transaction->message_variables = array(
    '@name' => 'Commerce Card on File Test Payment',
    '!status' => $transaction_status,
  );
  commerce_payment_transaction_save($transaction);
  return $transaction_status;
}