Sha256: 978d518f811710eb4065030842cb7e739e25f03c415b47e096e28dd9830f7a6d
Contents?: true
Size: 1.69 KB
Versions: 4
Compression:
Stored size: 1.69 KB
Contents
module MyMoip class CreditCardPayment attr_accessor :credit_card, :installments def initialize(credit_card, opts = {}) self.credit_card = credit_card # Backward compatibility. See 0.2.3 CHANGELOG self.installments = if opts.kind_of?(Integer) opts else opts[:installments] || 1 end end def to_json(formatter = MyMoip::Formatter) raise InvalidCreditCard, 'No credit card provided.' if credit_card.nil? raise InvalidCreditCard if credit_card.invalid? json = { Forma: "CartaoCredito", Parcelas: @installments, CartaoCredito: { Numero: credit_card.card_number, Expiracao: credit_card.expiration_date, CodigoSeguranca: credit_card.security_code } } json[:CartaoCredito][:Portador] = { Nome: credit_card.owner_name, DataNascimento: (credit_card.owner_birthday and formatter.date(credit_card.owner_birthday)), Telefone: (credit_card.owner_phone and formatter.phone(credit_card.owner_phone)), Identidade: (credit_card.owner_cpf and formatter.cpf(credit_card.owner_cpf)) } json[:Instituicao] = { american_express: "AmericanExpress", diners: "Diners", hipercard: "Hipercard", mastercard: "Mastercard", visa: "Visa" }.fetch(credit_card.logo) if cash? json[:Recebimento] = "AVista" end json end def cash? @installments == 1 end end end
Version data entries
4 entries across 4 versions & 1 rubygems