Class: SpreeAdyen::PaymentSessionsController
- Inherits:
-
Object
- Object
- SpreeAdyen::PaymentSessionsController
- Includes:
- Spree::CheckoutAnalyticsHelper
- Defined in:
- app/controllers/spree_adyen/payment_sessions_controller.rb
Instance Method Summary collapse
-
#redirect ⇒ Object
GET /adyen/payment_sessions/redirect.
-
#show ⇒ Object
GET /adyen/payment_sessions.
Instance Method Details
#redirect ⇒ Object
GET /adyen/payment_sessions/redirect
9 10 11 12 |
# File 'app/controllers/spree_adyen/payment_sessions_controller.rb', line 9 def redirect @payment_session = SpreeAdyen::PaymentSession.find_by(adyen_id: params[:sessionId]) render layout: 'spree_adyen/default' end |
#show ⇒ Object
GET /adyen/payment_sessions
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/controllers/spree_adyen/payment_sessions_controller.rb', line 15 def show @payment_session = SpreeAdyen::PaymentSession.find_by!(adyen_id: params[:sessionId]) @order = @payment_session.order # handle duplicated requests or already processed through webhook if @payment_session.canceled? || @order.canceled? redirect_to spree.cart_path, status: :see_other return elsif @order.completed? redirect_to spree.checkout_complete_path(@order.token), status: :see_other return end SpreeAdyen::PaymentSessions::ProcessWithResult.new(payment_session: @payment_session, session_result: params[:sessionResult]).call if @payment_session.completed? handle_success elsif @payment_session.pending? handle_pending_payment elsif @payment_session.canceled? redirect_to spree.checkout_path(@order.token), status: :see_other elsif @payment_session.refused? handle_failure end rescue Spree::Core::GatewayError => e handle_failure(e.) end |