Sha256: b2db66af2d2a31133255a936ad725a9f2a95c3b50fe18c1c817b252762221965
Contents?: true
Size: 1.98 KB
Versions: 2
Compression:
Stored size: 1.98 KB
Contents
module Spree CheckoutController.class_eval do before_action :confirm_sisow, only: [:update] def sisow_return handle_sisow_response # We call +next+, not +next!+ because we don't want this to raise # exceptions when the callback has already processed and completed the # order. @order.reload.next if @order.complete? flash.notice = Spree.t(:order_processed_successfully) redirect_to order_path(@order, number: @order.number) else redirect_to checkout_state_path(@order.state) end end def sisow_cancel handle_sisow_response redirect_to checkout_state_path(@order.state) end private def handle_sisow_response sisow = PaymentMethod::SisowBilling.new(@order) sisow.process_response(params) if sisow.cancelled? flash.alert = Spree.t(:payment_has_been_cancelled) end end def confirm_sisow return unless confirm_params_valid? return unless sisow_payment_method?(payment_method) if payment_method.is_a?(PaymentMethod::SisowBilling::Ideal) return_url_opts[:issuer_id] = params[:issuer_id] end redirect_to payment_method.redirect_url(@order, return_url_opts) end def return_url_opts @return_url_opts ||= { return_url: sisow_return_order_checkout_url(@order), cancel_url: sisow_cancel_order_checkout_url(@order), notify_url: sisow_status_update_url(@order), callback_url: sisow_status_update_url(@order), } end def payment_method_id_param params[:order][:payments_attributes].first[:payment_method_id] end def confirm_params_valid? (params[:state] == "payment") && params[:order][:payments_attributes] end def sisow_payment_method?(payment_method) payment_method.is_a?(PaymentMethod::SisowBilling::SisowPaymentMethod) end def payment_method @payment_method ||= PaymentMethod.find(payment_method_id_param) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
spree_billing_sisow-0.9.2 | app/controllers/spree/checkout_controller_decorator.rb |
spree_billing_sisow-0.9.1 | app/controllers/spree/checkout_controller_decorator.rb |