Sha256: 2f8ce009df58b3948206a17cbd703a4e4a282722394e2f54af22c3ef3949fa81

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

module Spree
  class PagseguroController < Spree::StoreController
    skip_before_action :verify_authenticity_token, only: :notify

    def callback
      @order = Spree::Order.find_by_number(params[:order])

      pagseguro_transaction = Spree::PagseguroTransaction.find_by_order_id(@order.number)
      pagseguro_transaction.update_attribute :state, 'waiting'

      redirect_to spree.order_path(@order)
    end

    def notify
      logger.info "[PAGSEGURO] Gateway is calling /notify"
      logger.info params

      #notification = Spree::PagseguroTransaction.update_last_transaction(params)
      #payment_method = Spree::PaymentMethod.where(type: 'Spree::Gateway::PagSeguro').first

      @order = Spree::Order.find_by_number(notification.reference)
      payment = @order.payments.where(:state => "checkout",
                                      :payment_method_id => payment_method.id).last

      if notification.approved?
        logger.info "[PAGSEGURO] Order #{@order.number} approved"
        payment.complete!
      else
        logger.info "[PAGSEGURO] Order #{@order.number} failed"
        payment.failure!
      end

      render nothing: true, head: :ok
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spree_pagseguro_simple-0.9 app/controllers/spree/pagseguro_controller.rb