diff options
author | jessib <jessib@leap.se> | 2013-04-23 11:47:09 -0700 |
---|---|---|
committer | Azul <azul@leap.se> | 2013-07-17 10:47:13 +0200 |
commit | c2330394daf004974656d8240ca6c83567401595 (patch) | |
tree | bbf9dace2344efc68c3a6b97921309caeed922e4 /billing/app/controllers | |
parent | 416ae5da6b87c78fcf49592885a916e9ce4f0904 (diff) |
Basic functionality to edit credit card on file.
Diffstat (limited to 'billing/app/controllers')
-rw-r--r-- | billing/app/controllers/credit_card_info_controller.rb | 27 |
1 files changed, 27 insertions, 0 deletions
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 |