class Redex::Request::TransactionRequest

Attributes

amount[RW]
auto_capture[RW]
card_cvv[RW]
card_expiration_month[RW]
card_expiration_year[RW]
card_holder_name[RW]
card_number[RW]
installments[RW]
invoice_note[RW]
order_id[RW]
origin[R]
recorrence[R]

Public Class Methods

new(params = {}) click to toggle source
# File lib/redex/request/transaction_request.rb, line 10
def initialize(params = {})
                    @order_id = params[:order_id]
                    @amount = params[:amount]
                    @installments = params.fetch(:installments, 1)
                    @invoice_note = params[:invoice_note]
                    @card_number = params[:card_number]
                    @card_cvv = params[:card_cvv]
                    @card_holder_name = params[:card_holder_name]
                    @card_expiration_month = params[:card_expiration_month]
                    @card_expiration_year = params[:card_expiration_year]
                    @auto_capture = params.fetch(:auto_capture, true)
  @recorrence = params.fetch(:recorrence, false)
  @origin = 1
end

Public Instance Methods

sanitized_fields() click to toggle source
# File lib/redex/request/transaction_request.rb, line 25
def sanitized_fields
        {
                NumPedido: sanitize(:order_id),
                Total: sanitize(:amount),
                Parcelas: sanitize(:installments),
                IdentificacaoFatura: sanitize(:invoice_note),
                Nrcartao: sanitize(:card_number),
                Cvc2: sanitize(:card_cvv),
                Portador: sanitize(:card_holder_name),
                Mes: sanitize(:card_expiration_month),
                Ano: sanitize(:card_expiration_year),
                Recorrente: sanitize(:recorrence),
                Origem: sanitize(:origin),
                Transacao: transaction_type
        }.merge(authorization_params).sort.to_h.select { |k, v| !v.to_s.empty?  }
end

Private Instance Methods

card_expiration_year_sanitized() click to toggle source
# File lib/redex/request/transaction_request.rb, line 55
def card_expiration_year_sanitized
        year = card_expiration_year.to_i
        year += 2000 if year < 100
        year.to_s
end
do_request() click to toggle source
# File lib/redex/request/transaction_request.rb, line 44
def do_request
        raw_response = BaseRequest.client.GetAuthorizedCredit(request: sanitized_fields)
        Redex::Response::TransactionResponse.new(raw_response.result)
end
transaction_type() click to toggle source
# File lib/redex/request/transaction_request.rb, line 49
def transaction_type
        return "74" unless @auto_capture
        return "08" if installments.to_i > 1
        "04"
end