You are here

function commerce_braintree_update_card in Commerce Braintree 7.2

Same name and namespace in other branches
  1. 7.3 commerce_braintree.module \commerce_braintree_update_card()
  2. 7 commerce_braintree.module \commerce_braintree_update_card()

Menu callback. Get the query from Braintree when updating a credit card.

1 string reference to 'commerce_braintree_update_card'
commerce_braintree_menu in ./commerce_braintree.module
Implements hook_menu().

File

./commerce_braintree.module, line 148
Integrates Braintree Transparent Redirect with Drupal Commerce.

Code

function commerce_braintree_update_card() {
  global $user;
  $feedback = commerce_braintree_get_feedback();
  if (module_exists('commerce_cardonfile') && $feedback) {

    // @todo Do not hardcode a specific payment method instance ID.
    $payment_method = commerce_payment_method_instance_load('braintree_tr|commerce_payment_braintree_tr');
    commerce_braintree_initialize($payment_method);
    $result = Braintree_TransparentRedirect::confirm($feedback);
    $token = $result->creditCard->token;
    $cardholderName = $result->creditCard->cardholderName;
    $expirationMonth = $result->creditCard->expirationMonth;
    $expirationYear = $result->creditCard->expirationYear;
    $last4 = $result->creditCard->last4;
    $cards = commerce_cardonfile_load_multiple(FALSE, array(
      'remote_id' => $token,
    ));
    $card_stored = reset($cards);
    $card_stored->card_name = $cardholderName;
    $card_stored->card_exp_month = $expirationMonth;
    $card_stored->card_exp_year = $expirationYear;
    $card_stored->card_number = $last4;
    commerce_cardonfile_save($card_stored);
    drupal_set_message(t('Thank you for updating your credit card information.'));
  }
  drupal_goto('user/' . $user->uid . '/cards');
}