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