Sha256: d38274c1c47ea1814528b2661b56bd3a027586565d367e380ca6eb90013f43ba

Contents?: true

Size: 1.62 KB

Versions: 18

Compression:

Stored size: 1.62 KB

Contents

class CheckoutController < ApplicationController
  def create
    # O modo como você irá armazenar os produtos que estão sendo comprados
    # depende de você. Neste caso, temos um modelo Order que referência os
    # produtos que estão sendo comprados.
    order = Order.find(params[:id])

    payment = PagSeguro::PaymentRequest.new

    # Você também pode fazer o request de pagamento usando credenciais
    # diferentes, como no exemplo abaixo

    payment = PagSeguro::PaymentRequest.new(email: 'abc@email', token: 'token')

    payment.reference = order.id
    payment.notification_url = notifications_url
    payment.redirect_url = processing_url

    order.products.each do |product|
      payment.items << {
        id: product.id,
        description: product.title,
        amount: product.price,
        weight: product.weight
      }
    end

    # Caso você precise passar parâmetros para a api que ainda não foram
    # mapeados na gem, você pode fazer de maneira dinâmica utilizando um
    # simples hash.
    payment.extra_params << { paramName: 'paramValue' }
    payment.extra_params << { senderBirthDate: '07/05/1981' }
    payment.extra_params << { extraAmount: '-15.00' }

    response = payment.register

    # Caso o processo de checkout tenha dado errado, lança uma exceção.
    # Assim, um serviço de rastreamento de exceções ou até mesmo a gem
    # exception_notification poderá notificar sobre o ocorrido.
    #
    # Se estiver tudo certo, redireciona o comprador para o PagSeguro.
    if response.errors.any?
      raise response.errors.join("\n")
    else
      redirect_to response.url
    end
  end
end

Version data entries

18 entries across 10 versions & 1 rubygems

Version Path
e4commerce-0.7.0 lib/e4commerce/ps_checkout_template.rb
e4commerce-0.6.1 lib/e4commerce/ps_checkout_template.rb
e4commerce-0.6.0 lib/e4commerce/ps_checkout_template.rb
e4commerce-0.6.0 lib/pagseguro/checkout_controller.rb
e4commerce-0.5.0 lib/pagseguro/checkout_controller.rb
e4commerce-0.5.0 lib/e4commerce/ps_checkout_template.rb
e4commerce-0.4.1 lib/e4commerce/ps_checkout_template.rb
e4commerce-0.4.1 lib/pagseguro/checkout_controller.rb
e4commerce-0.4.0 lib/pagseguro/checkout_controller.rb
e4commerce-0.4.0 lib/e4commerce/ps_checkout_template.rb
e4commerce-0.3.3 lib/pagseguro/checkout_controller.rb
e4commerce-0.3.3 lib/e4commerce/ps_checkout_template.rb
e4commerce-0.3.2 lib/pagseguro/checkout_controller.rb
e4commerce-0.3.2 lib/e4commerce/ps_checkout_template.rb
e4commerce-0.3.1 lib/e4commerce/ps_checkout_template.rb
e4commerce-0.3.1 lib/pagseguro/checkout_controller.rb
e4commerce-0.3.0 lib/pagseguro/checkout_controller.rb
e4commerce-0.3.0 lib/e4commerce/ps_checkout_template.rb