You are here

function _uc_credit_save_cc_data_to_order in Ubercart 7.3

Saves a CC data array to an order's data array.

2 calls to _uc_credit_save_cc_data_to_order()
uc_credit_terminal_form_submit in payment/uc_credit/uc_credit.admin.inc
Submit handler for credit terminal form.
uc_credit_uc_order in payment/uc_credit/uc_credit.module
Implements hook_uc_order().

File

payment/uc_credit/uc_credit.module, line 968
Defines the credit card payment method and hooks in payment gateways.

Code

function _uc_credit_save_cc_data_to_order($cc_data, $order_id) {

  // Save only some limited, PCI compliant data.
  $cc_data['cc_number'] = substr($cc_data['cc_number'], -4);
  unset($cc_data['cc_cvv']);

  // Load up the existing data array.
  $data = db_query("SELECT data FROM {uc_orders} WHERE order_id = :id", array(
    ':id' => $order_id,
  ))
    ->fetchField();
  $data = unserialize($data);

  // Stuff the serialized and encrypted CC details into the array.
  $crypt = new UbercartEncryption();
  $data['cc_data'] = $crypt
    ->encrypt(uc_credit_encryption_key(), base64_encode(serialize($cc_data)));
  uc_store_encryption_errors($crypt, 'uc_credit');

  // Save it again.
  db_update('uc_orders')
    ->fields(array(
    'data' => serialize($data),
  ))
    ->condition('order_id', $order_id)
    ->execute();
}