Sha256: db5a6782ffc291fa1fafa502eb5ba60c7cd51b3ad96d9b49f4b60e15863c4df1
Contents?: true
Size: 1.08 KB
Versions: 6
Compression:
Stored size: 1.08 KB
Contents
module MyMoip class Purchase attr_accessor :id, :price, :credit_card, :payer, :reason attr_reader :code def initialize(attrs) @id = attrs.fetch(:id) { rand } @price = attrs.fetch(:price) @credit_card = MyMoip::CreditCard.new(attrs.fetch(:credit_card)) @payer = MyMoip::Payer.new(attrs.fetch(:payer)) @reason = attrs.fetch(:reason) end def checkout! authorization = get_authorization! payment = MyMoip::CreditCardPayment.new(@credit_card, installments: 1) request = MyMoip::PaymentRequest.new(@id) request.api_call(payment, token: authorization.token) @code = request.code request.success? end private def get_authorization! instruction = MyMoip::Instruction.new( id: @id, payment_reason: @reason, values: [@price], payer: @payer ) request = MyMoip::TransparentRequest.new(@id) request.api_call(instruction) request end end end
Version data entries
6 entries across 6 versions & 2 rubygems