diff --git a/app/controllers/spree/orders_controller.rb b/app/controllers/spree/orders_controller.rb index 345ca4a2c3..40c315400c 100644 --- a/app/controllers/spree/orders_controller.rb +++ b/app/controllers/spree/orders_controller.rb @@ -25,8 +25,8 @@ module Spree before_action :check_at_least_one_line_item, only: :update def show - ProcessPaymentIntent.new(params["payment_intent"], params[:id]).call! @order = Spree::Order.find_by!(number: params[:id]) + ProcessPaymentIntent.new(params["payment_intent"], @order).call! end def empty diff --git a/app/services/process_payment_intent.rb b/app/services/process_payment_intent.rb index a4932159ca..28b7636868 100644 --- a/app/services/process_payment_intent.rb +++ b/app/services/process_payment_intent.rb @@ -1,10 +1,10 @@ # frozen_string_literal: true class ProcessPaymentIntent - def initialize(payment_intent, order_number) + def initialize(payment_intent, order) @payment_intent = payment_intent - @order = Spree::Order.find_by!(number: order_number) - @last_payment = OrderPaymentFinder.new(@order).last_payment + @order = order + @last_payment = OrderPaymentFinder.new(order).last_payment end def call! @@ -16,8 +16,10 @@ class ProcessPaymentIntent private + attr_reader :order + def valid? - @order.present? && valid_intent_string? && matches_last_payment? + order.present? && valid_intent_string? && matches_last_payment? end def valid_intent_string?