Class: Gateway::MainpayController

Inherits:
Spree::BaseController
  • Object
show all
Defined in:
app/controllers/gateway/mainpay_controller.rb

Instance Method Summary collapse

Instance Method Details

#failObject



46
47
48
49
# File 'app/controllers/gateway/mainpay_controller.rb', line 46

def fail
  flash[:error] = t('.payment_fail')
  redirect_to @order.blank? ? root_url : checkout_state_path('payment')
end

#handlerObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/controllers/gateway/mainpay_controller.rb', line 17

def handler
 if @order && @gateway && response_valid?
   payment = @order.payments.build(:payment_method => @order.payment_method)
   payment.state  = 'completed'
   payment.amount = params[:system_income].to_f
   payment.save

   @order.save!
   @order.next! until @order.state == 'complete'
   @order.update!

   render :text => "OK#{@order.id}"

 else
   render :text => 'Bad response'
 end

end

#showObject



6
7
8
9
10
11
12
13
14
15
# File 'app/controllers/gateway/mainpay_controller.rb', line 6

def show
  @order = Order.find(params[:order_id])
  @gateway = @order.available_payment_methods.find { |x| x.id == params[:gateway_id].to_i }

  unless @order || @gateway
    flash[:error] = t('.invalid_arguments')
    redirect_to :back
  end

end

#successObject



36
37
38
39
40
41
42
43
44
# File 'app/controllers/gateway/mainpay_controller.rb', line 36

def success
  if @order && @gateway && response_valid? && @order.complete?
    session[:order_id] = nil
    redirect_to order_path(@order), t('.payment_success')
  else
    flash[:error] = t('.payment_fail')
    redirect_to root_url
  end
end