diff --git a/app/controllers/checkout_controller.rb b/app/controllers/checkout_controller.rb index 5c23fd9304..aa4c60c605 100644 --- a/app/controllers/checkout_controller.rb +++ b/app/controllers/checkout_controller.rb @@ -40,7 +40,7 @@ class CheckoutController < Spree::StoreController end def update - params_adapter = CheckoutFormDataAdapter.new(params) + params_adapter = CheckoutFormDataAdapter.new(params, @order, spree_current_user) return update_failed unless @order.update_attributes(params_adapter.order_params) fire_event('spree.checkout.update') @@ -196,7 +196,7 @@ class CheckoutController < Spree::StoreController end def update_result - if @order.completed? + if @order.state == "complete" || @order.completed? update_succeeded else update_failed diff --git a/app/services/checkout_form_data_adapter.rb b/app/services/checkout_form_data_adapter.rb index b08111e755..fbaf5ea5da 100644 --- a/app/services/checkout_form_data_adapter.rb +++ b/app/services/checkout_form_data_adapter.rb @@ -4,8 +4,10 @@ class CheckoutFormDataAdapter attr_reader :shipping_method_id - def initialize(params) + def initialize(params, order, current_user) @params = params + @order = order + @current_user = current_user move_payment_source_to_payment_attributes! @@ -55,7 +57,7 @@ class CheckoutFormDataAdapter def move_to_payment_attributes(existing_card_id) credit_card = Spree::CreditCard.find(existing_card_id) - if credit_card.try(:user_id).blank? || credit_card.user_id != spree_current_user.try(:id) + if credit_card.try(:user_id).blank? || credit_card.user_id != @current_user.try(:id) raise Spree::Core::GatewayError, I18n.t(:invalid_credit_card) end