Class: SpreeStripe::ConfirmPaymentsController

Inherits:
Object
  • Object
show all
Includes:
Spree::CheckoutAnalyticsHelper
Defined in:
app/controllers/spree_stripe/confirm_payments_controller.rb

Instance Method Summary collapse

Instance Method Details

#showObject

GET /stripe/confirm_payment/:id?session=ps_...&redirect_status=...



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/controllers/spree_stripe/confirm_payments_controller.rb', line 10

def show
  @order = current_store.orders.find_by_prefix_id!(params[:id])

  return redirect_to_cart_canceled if @order.canceled?
  return redirect_to_complete if @order.completed?

  payment_session = @order.payment_sessions.find_by_prefix_id!(params[:session])
  payment_session.payment_method.complete_payment_session(
    payment_session: payment_session,
    params: { session_result: params[:redirect_status] }
  )

  return handle_failure(payment_session.errors.full_messages.to_sentence) unless payment_session.completed?

  Spree::Dependencies.carts_complete_service.constantize.call(cart: @order) unless @order.completed?

  if @order.reload.completed?
    track_checkout_completed if respond_to?(:track_checkout_completed)
    redirect_to_complete
  else
    handle_failure
  end
rescue Spree::Core::GatewayError => e
  handle_failure(e.message)
end