From c2330394daf004974656d8240ca6c83567401595 Mon Sep 17 00:00:00 2001 From: jessib Date: Tue, 23 Apr 2013 11:47:09 -0700 Subject: Basic functionality to edit credit card on file. --- .../app/controllers/credit_card_info_controller.rb | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 billing/app/controllers/credit_card_info_controller.rb (limited to 'billing/app/controllers/credit_card_info_controller.rb') diff --git a/billing/app/controllers/credit_card_info_controller.rb b/billing/app/controllers/credit_card_info_controller.rb new file mode 100644 index 0000000..99bf5cf --- /dev/null +++ b/billing/app/controllers/credit_card_info_controller.rb @@ -0,0 +1,27 @@ +class CreditCardInfoController < ApplicationController + before_filter :authorize + + def edit + @credit_card = Braintree::CreditCard.find(params[:id]) + customer = Customer.find_by_user_id(current_user.id) + if customer and customer.braintree_customer_id == @credit_card.customer_id + @tr_data = Braintree::TransparentRedirect. + update_credit_card_data(:redirect_url => confirm_credit_card_info_url, + :payment_method_token => @credit_card.token) + else + access_denied + end + + end + + def confirm + @result = Braintree::TransparentRedirect.confirm(request.query_string) + if @result.success? + render :action => "confirm" + else + @credit_card = Braintree::CreditCard.find(@result.params[:payment_method_token]) + render :action => "edit" + end + end + +end -- cgit v1.2.3