Sha256: 6cfda11ce43f8c3e97f4f24b34892941b1450f85c99ee266c4e8de64eb4545e1

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

module Spree
  CheckoutController.class_eval do
    before_filter :confirm_skrill, :only => [:update]

    def skrill_return

      unless @order.payments.where(:source_type => 'Spree::SkrillTransaction').present?
        payment_method = PaymentMethod.find(params[:payment_method_id])
        skrill_transaction = SkrillTransaction.new

        payment = @order.payments.create(:amount => @order.total,
                                         :source => skrill_transaction,
                                         :payment_method => payment_method)
        payment.started_processing!
        payment.pend!
      end

      until @order.state == "complete"
        if @order.next!
          @order.update!
          state_callback(:after)
        end
      end
      flash.notice = t(:order_processed_successfully)
      redirect_to completion_route
    end

    def skrill_cancel
      flash[:error] = t(:payment_has_been_cancelled)
      redirect_to edit_order_path(@order)
    end

    private
    def confirm_skrill
      return unless (params[:state] == "payment") && params[:order][:payments_attributes]

      payment_method = PaymentMethod.find(params[:order][:payments_attributes].first[:payment_method_id])
      if payment_method.kind_of?(BillingIntegration::Skrill::QuickCheckout)
        #TODO confirming payment method
        redirect_to edit_order_checkout_url(@order, :state => 'payment'),
                    :notice => t(:complete_skrill_checkout)
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spree_skrill-1.0.2 app/controllers/spree/checkout_controller_decorator.rb
spree_skrill-1.0.1 app/controllers/spree/checkout_controller_decorator.rb
spree_skrill-1.0.0 app/controllers/spree/checkout_controller_decorator.rb