From 95ec46beac867e1b7df17ba8a72367bbe0b140a9 Mon Sep 17 00:00:00 2001 From: jessib Date: Thu, 28 Mar 2013 11:23:14 -0700 Subject: Let users select amount for payments. --- billing/app/controllers/payments_controller.rb | 12 ++---------- billing/app/views/payments/new.html.haml | 6 ++++-- 2 files changed, 6 insertions(+), 12 deletions(-) (limited to 'billing/app') diff --git a/billing/app/controllers/payments_controller.rb b/billing/app/controllers/payments_controller.rb index 79a6433..bd01fea 100644 --- a/billing/app/controllers/payments_controller.rb +++ b/billing/app/controllers/payments_controller.rb @@ -1,19 +1,18 @@ class PaymentsController < ApplicationController def new - @amount = calculate_amount if current_user if @customer = Customer.find_by_user_id(current_user.id) @braintree_data = Braintree::Customer.find(@customer.braintree_customer_id) @default_cc = @braintree_data.credit_cards.find { |cc| cc.default? } @tr_data = Braintree::TransparentRedirect.transaction_data(:redirect_url => confirm_payment_url, - :transaction => {:type => "sale", :amount => @amount, :customer_id => @customer.braintree_customer_id, :options => {:submit_for_settlement => true } }) + :transaction => {:type => "sale", :customer_id => @customer.braintree_customer_id, :options => {:submit_for_settlement => true } }) else redirect_to new_customer_path end else # anonymous payment not attributed to any user (ie, donation) @tr_data = Braintree::TransparentRedirect.transaction_data(:redirect_url => confirm_payment_url, - :transaction => {:type => "sale", :amount => @amount, :options => {:submit_for_settlement => true } }) + :transaction => {:type => "sale", :options => {:submit_for_settlement => true } }) end end @@ -23,15 +22,8 @@ class PaymentsController < ApplicationController if @result.success? render :action => "confirm" else - @amount = calculate_amount render :action => "new" end end - protected - - def calculate_amount - # in a real app this be calculated from a shopping cart, determined by the product, etc. - "100.00" - end end diff --git a/billing/app/views/payments/new.html.haml b/billing/app/views/payments/new.html.haml index d9c41ce..1d958b9 100644 --- a/billing/app/views/payments/new.html.haml +++ b/billing/app/views/payments/new.html.haml @@ -1,10 +1,12 @@ %h1 - Payment: $#{h @amount} + Payment - if @result %div{:style => "color: red;"} = h @result.errors.size error(s) -= form_for :transaction, :params => @result && @result.params[:transaction], :errors => @result && @result.errors.for(:transaction), :builder => BraintreeHelper::BraintreeFormBuilder, :url => Braintree::TransparentRedirect.url, :html => {:autocomplete => "off"} do |f| += form_for :transaction, :params => @result && @result.params[:transaction], :errors => @result && @result.errors.for(:transaction), :builder => BraintreeFormHelper::BraintreeFormBuilder, :url => Braintree::TransparentRedirect.url, :html => {:autocomplete => "off"} do |f| #TODO: add helper + = f.label :amount, "Amount" + = f.text_field :amount - if !@customer = render :partial => 'non_customer_fields', :locals => {:f => f} - else -- cgit v1.2.3