class PayuPayments::CreditCard

Public Class Methods

create(customer_id, params) click to toggle source
# File lib/payu_payments/credit_card.rb, line 48
def self.create(customer_id, params)
    url = "#{API_PATH}/customers/#{attr.customerId}/#{@resource}"
    self.base.marshal_load params
    resp = http_call("post", url, attr.marshal_dump) 
    base.marshal_load resp
end
new(params={}) click to toggle source
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Credit Card attributes from Payu documentation
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Token     Longitud = [0,36]   String    Token asociado a una tarjeta de crédito.
customerId        Longitud = #[0,64]     String      Código de identificación del cliente al cual pertenece la tarjeta de crédito
Number    Longitud = [13,20] # Patrón = [0-9]*{13,20}        String Número de la tarjeta de crédito
expMonth  Min = 1,#Máx = 12        Integer        Mes de expiración de la tarjeta de crédito.
expYear   Min= 0, 
Max = 2999        Integer        Año de expiración de la tarjeta de crédito.
            Si el valor es de dos dígitos corresponde al año comprendido entre 2000 (00) y 2099 (99).
            Si el valor es de más de dos dígitos se toma literal, siendo el año 2000 como mínimo posible.
Type              Enumeration Corresponde a la franquicia o tipo de tarjeta de crédito. Los posibles valores son:
        VISA, AMEX, DINERS, MASTERCARD, ELO, SHOPPING, NARANJA, CABAL y ARGENCARD.
Name      255  String   Nombre del tarjeta habiente.
document  Longitud = #[5, 30]      String       Número del documento de identificad del tarjeta habiente.
address   - Address Dirección de correspondencia del tarjeta habiente asociado con la tarjeta de crédito.
issuerBank        255    String     Nombre del banco emisor de la tarjeta de crédito.

City            Longitud = [0, 50]     String      Nombre de la ciudad.
country       Longitud = [2, 2]     String      Código ISO 3166 (2 letras – Alpha 2) del país de la dirección.

Ver países soportados

linea1        Longitud = [0, 100]    String     Primera línea de la dirección.
linea2        Longitud = [0, 100]    String     Segunda línea de la dirección o número de la dirección.
linea3        Longitud = [0, 100]    String     Tercera línea de la dirección o complemento de la dirección.
phone           Longitud = [0, 20]    String     Teléfono asociado a la dirección.
postalCode        Longitud = [0, 20]     String      Código postal de la dirección.
State           Longitud = [0, 40]    String     Nombre del estado de la dirección.
Calls superclass method PayuPayments::Caller::new
# File lib/payu_payments/credit_card.rb, line 34
def initialize(params={})
    super
    @resource = "creditCards"
end

Public Instance Methods

destroy(customer_id, id) click to toggle source
Calls superclass method Model#destroy
# File lib/payu_payments/credit_card.rb, line 55
def destroy(customer_id, id)
    customer_id = self.attr.customerId
    id = self.attr.id
    @url = "#{API_PATH}/customers/#{customer_id}/#{@resource}/#{id}}"
    super
end
save() click to toggle source
Calls superclass method Model#save
# File lib/payu_payments/credit_card.rb, line 39
def save
    if valid?
      @url = new? ? "#{API_PATH}/customers/#{attr.customerId}/#{@resource}" : "#{API_PATH}/#{@resource}/#{base.id}"
      super
    else
      false
    end
end
valid?() click to toggle source
# File lib/payu_payments/credit_card.rb, line 62
def valid?
    self.validate
    self.errors.count == 0
end
validate() click to toggle source
# File lib/payu_payments/credit_card.rb, line 67
def validate
    self.errors = []
    [:customerId, :number, :expMonth, :expYear, :type, :document, :address, :name].each do |field|
      validate_presence_of(field)
    end

    validate_lenght_of(:expYear, 4)
end