Class: Gateway::WebmoneyController

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

Instance Method Summary collapse

Instance Method Details

#failObject



43
44
45
46
47
48
# File 'app/controllers/gateway/webmoney_controller.rb', line 43

def fail
  @order = Order.find_by_id(@payment_params[:payment_no])
  flash.now[:error] = t("payment_fail")
  redirect_to @order.blank? ? root_url : edit_order_checkout_url(@order, :step => "payment")
    return
end

#resultObject

Raises:

  • (GatewayError)


20
21
22
23
24
25
26
27
28
29
30
# File 'app/controllers/gateway/webmoney_controller.rb', line 20

def result
  raise GatewayError, "Not found order" unless @order
  payment = @order.payments.first
  payment.state = "completed"
  payment.amount = @payment_params[:payment_amount].to_f
  payment.save
  @order.save!
  @order.next! until @order.state == "complete"

  render :text => "YES"
end

#showObject



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/controllers/gateway/webmoney_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 }
  @order.payments.destroy_all
  payment = @order.payments.create!(:amount => 0,  :payment_method_id => @gateway.id)

  if @order.blank? || @gateway.blank?
    flash[:error] = I18n.t("Invalid arguments")
    redirect_to :back
  else
    render :action => :show
  end
end

#successObject



32
33
34
35
36
37
38
39
40
41
# File 'app/controllers/gateway/webmoney_controller.rb', line 32

def success
  @order =  Order.find_by_id(@payment_params[:payment_no])
  if @order && @order.complete?
    session[:order_id] = nil
    redirect_to order_path(@order)
  else
    flash[:error] =  t("payment_fail")
    redirect_to root_url
  end
end