class CheckoutController

Public Instance Methods

abandoned_transactions() click to toggle source
# File lib/pagseguro/consults_controller.rb, line 3
def abandoned_transactions
  report = PagSeguro::Transaction.find_abandoned

  while report.next_page?
    report.next_page!
    puts "=> Page #{report.page}"

    abort "=> Errors: #{report.errors.join("\n")}" unless report.valid?

    puts "=> Report was created at: #{report.created_at}"
    puts

    report.transactions.each do |transaction|
      puts "=> Abandoned transaction"
      puts "   created at: #{transaction.created_at}"
      puts "   code: #{transaction.code}"
      puts "   type_id: #{transaction.type_id}"
      puts "   gross amount: #{transaction.gross_amount}"
      puts
    end
  end
end
create() click to toggle source
# File lib/e4commerce/ps_checkout_template.rb, line 2
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
transaction_history() click to toggle source
# File lib/pagseguro/consults_controller.rb, line 26
def  transaction_history

  report = PagSeguro::Transaction.find_by_date

  while report.next_page?
    report.next_page!
    puts "== Page #{report.page}"
    abort "=> Errors: #{report.errors.join("\n")}" unless report.valid?
    puts "Report created on #{report.created_at}"
    puts

    report.transactions.each do |transaction|
      puts "=> Transaction"
      puts "   created_at: #{transaction.created_at}"
      puts "   code: #{transaction.code}"
      puts "   cancellation_source: #{transaction.cancellation_source}"
      puts "   payment method: #{transaction.payment_method.type}"
      puts "   gross amount: #{transaction.gross_amount}"
      puts "   updated at: #{transaction.updated_at}"
      puts
    end
  end
end