Extract #process_payment_completion!

This commit is contained in:
Matt-Yorkley
2021-12-06 00:01:08 +00:00
parent 76647863e8
commit daee5b49b5
3 changed files with 17 additions and 25 deletions

View File

@@ -50,6 +50,21 @@ module OrderCompletion
redirect_to main_app.shop_path
end
def process_payment_completion!
return processing_failed unless @order.process_payments!
if OrderWorkflow.new(@order).next && @order.complete?
processing_succeeded
redirect_to order_completion_route
else
processing_failed
redirect_to order_failed_route
end
rescue Spree::Core::GatewayError => e
gateway_error(e)
processing_failed
end
def processing_succeeded
Checkout::PostCheckoutActions.new(@order).success(params, spree_current_user)
order_completion_reset(@order)

View File

@@ -49,16 +49,8 @@ module PaymentGateways
amount: @order.total,
payment_method: payment_method
)
@order.process_payments!
@order.next
if @order.complete?
processing_succeeded
redirect_to order_completion_route
else
processing_failed
redirect_to order_failed_route
end
process_payment_completion!
end
def cancel

View File

@@ -9,7 +9,7 @@ class StripeController < BaseController
def confirm
return processing_failed unless valid_payment_intent?
process_payment_completion
process_payment_completion!
end
private
@@ -34,21 +34,6 @@ class StripeController < BaseController
end
end
def process_payment_completion
return processing_failed unless @order.process_payments!
if OrderWorkflow.new(@order).next && @order.complete?
processing_succeeded
redirect_to order_completion_route
else
processing_failed
redirect_to order_failed_route
end
rescue Spree::Core::GatewayError => e
gateway_error(e)
processing_failed
end
def cancel_incomplete_payments
# The checkout could not complete due to stock running out. We void any pending (incomplete)
# Stripe payments here as the order will need to be changed and resubmitted (or abandoned).