Class: AdvancedBilling::CreditCardPaymentProfile

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/advanced_billing/models/credit_card_payment_profile.rb

Overview

CreditCardPaymentProfile Model.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #get_additional_properties, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(payment_type: PaymentType::CREDIT_CARD, id: SKIP, first_name: SKIP, last_name: SKIP, masked_card_number: SKIP, card_type: SKIP, expiration_month: SKIP, expiration_year: SKIP, customer_id: SKIP, current_vault: SKIP, vault_token: SKIP, billing_address: SKIP, billing_city: SKIP, billing_state: SKIP, billing_zip: SKIP, billing_country: SKIP, customer_vault_token: SKIP, billing_address_2: SKIP, disabled: SKIP, chargify_token: SKIP, site_gateway_setting_id: SKIP, gateway_handle: SKIP, created_at: SKIP, updated_at: SKIP, additional_properties: {}) ⇒ CreditCardPaymentProfile

Returns a new instance of CreditCardPaymentProfile.



196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 196

def initialize(payment_type: PaymentType::CREDIT_CARD, id: SKIP,
               first_name: SKIP, last_name: SKIP, masked_card_number: SKIP,
               card_type: SKIP, expiration_month: SKIP,
               expiration_year: SKIP, customer_id: SKIP,
               current_vault: SKIP, vault_token: SKIP,
               billing_address: SKIP, billing_city: SKIP,
               billing_state: SKIP, billing_zip: SKIP,
               billing_country: SKIP, customer_vault_token: SKIP,
               billing_address_2: SKIP, disabled: SKIP,
               chargify_token: SKIP, site_gateway_setting_id: SKIP,
               gateway_handle: SKIP, created_at: SKIP, updated_at: SKIP,
               additional_properties: {})
  # Add additional model properties to the instance.
  additional_properties.each do |_name, _value|
    instance_variable_set("@#{_name}", _value)
  end

  @id = id unless id == SKIP
  @first_name = first_name unless first_name == SKIP
  @last_name = last_name unless last_name == SKIP
  @masked_card_number = masked_card_number unless masked_card_number == SKIP
  @card_type = card_type unless card_type == SKIP
  @expiration_month = expiration_month unless expiration_month == SKIP
  @expiration_year = expiration_year unless expiration_year == SKIP
  @customer_id = customer_id unless customer_id == SKIP
  @current_vault = current_vault unless current_vault == SKIP
  @vault_token = vault_token unless vault_token == SKIP
  @billing_address = billing_address unless billing_address == SKIP
  @billing_city = billing_city unless billing_city == SKIP
  @billing_state = billing_state unless billing_state == SKIP
  @billing_zip = billing_zip unless billing_zip == SKIP
  @billing_country = billing_country unless billing_country == SKIP
  @customer_vault_token = customer_vault_token unless customer_vault_token == SKIP
  @billing_address_2 = billing_address_2 unless billing_address_2 == SKIP
  @payment_type = payment_type
  @disabled = disabled unless disabled == SKIP
  @chargify_token = chargify_token unless chargify_token == SKIP
  @site_gateway_setting_id = site_gateway_setting_id unless site_gateway_setting_id == SKIP
  @gateway_handle = gateway_handle unless gateway_handle == SKIP
  @created_at = created_at unless created_at == SKIP
  @updated_at = updated_at unless updated_at == SKIP
end

Instance Attribute Details

#billing_addressString

The current billing street address for the card.

Returns:

  • (String)


62
63
64
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 62

def billing_address
  @billing_address
end

#billing_address_2String

The current billing street address, second line, for the card.

Returns:

  • (String)


87
88
89
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 87

def billing_address_2
  @billing_address_2
end

#billing_cityString

The current billing address city for the card.

Returns:

  • (String)


66
67
68
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 66

def billing_city
  @billing_city
end

#billing_countryString

The current billing address country for the card.

Returns:

  • (String)


78
79
80
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 78

def billing_country
  @billing_country
end

#billing_stateString

The current billing address state for the card.

Returns:

  • (String)


70
71
72
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 70

def billing_state
  @billing_state
end

#billing_zipString

The current billing address zip code for the card.

Returns:

  • (String)


74
75
76
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 74

def billing_zip
  @billing_zip
end

#card_typeCardType

The type of card used.

Returns:



34
35
36
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 34

def card_type
  @card_type
end

#chargify_tokenString

Token received after sending billing information using chargify.js. This token will only be received if passed as a sole attribute of credit_card_attributes (i.e. tok_9g6hw85pnpt6knmskpwp4ttt)

Returns:

  • (String)


101
102
103
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 101

def chargify_token
  @chargify_token
end

#created_atDateTime

A timestamp indicating when this payment profile was created

Returns:

  • (DateTime)


115
116
117
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 115

def created_at
  @created_at
end

#current_vaultCreditCardVault

The vault that stores the payment profile with the provided ‘vault_token`. Use `bogus` for testing.

Returns:



53
54
55
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 53

def current_vault
  @current_vault
end

#customer_idInteger

The Chargify-assigned id for the customer record to which the card belongs.

Returns:

  • (Integer)


48
49
50
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 48

def customer_id
  @customer_id
end

#customer_vault_tokenString

(only for Authorize.Net CIM storage): the customerProfileId for the owner of the customerPaymentProfileId provided as the vault_token.

Returns:

  • (String)


83
84
85
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 83

def customer_vault_token
  @customer_vault_token
end

#disabledTrueClass | FalseClass

The current billing street address, second line, for the card.

Returns:

  • (TrueClass | FalseClass)


95
96
97
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 95

def disabled
  @disabled
end

#expiration_monthInteger

An integer representing the expiration month of the card(1 – 12).

Returns:

  • (Integer)


38
39
40
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 38

def expiration_month
  @expiration_month
end

#expiration_yearInteger

An integer representing the 4-digit expiration year of the card(i.e. ‘2012’).

Returns:

  • (Integer)


43
44
45
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 43

def expiration_year
  @expiration_year
end

#first_nameString

The first name of the card holder.

Returns:

  • (String)


21
22
23
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 21

def first_name
  @first_name
end

#gateway_handleString

An identifier of connected gateway.

Returns:

  • (String)


111
112
113
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 111

def gateway_handle
  @gateway_handle
end

#idInteger

The Chargify-assigned ID of the stored card. This value can be used as an input to payment_profile_id when creating a subscription, in order to re-use a stored payment profile for the same customer.

Returns:

  • (Integer)


17
18
19
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 17

def id
  @id
end

#last_nameString

The last name of the card holder.

Returns:

  • (String)


25
26
27
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 25

def last_name
  @last_name
end

#masked_card_numberString

A string representation of the credit card number with all but the last 4 digits masked with X’s (i.e. ‘XXXX-XXXX-XXXX-1234’).

Returns:

  • (String)


30
31
32
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 30

def masked_card_number
  @masked_card_number
end

#payment_typePaymentType

The current billing street address, second line, for the card.

Returns:



91
92
93
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 91

def payment_type
  @payment_type
end

#site_gateway_setting_idInteger

Token received after sending billing information using chargify.js. This token will only be received if passed as a sole attribute of credit_card_attributes (i.e. tok_9g6hw85pnpt6knmskpwp4ttt)

Returns:

  • (Integer)


107
108
109
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 107

def site_gateway_setting_id
  @site_gateway_setting_id
end

#updated_atDateTime

A timestamp indicating when this payment profile was last updated

Returns:

  • (DateTime)


119
120
121
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 119

def updated_at
  @updated_at
end

#vault_tokenString

The “token” provided by your vault storage for an already stored payment profile.

Returns:

  • (String)


58
59
60
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 58

def vault_token
  @vault_token
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 240

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  payment_type = hash['payment_type'] ||= PaymentType::CREDIT_CARD
  id = hash.key?('id') ? hash['id'] : SKIP
  first_name = hash.key?('first_name') ? hash['first_name'] : SKIP
  last_name = hash.key?('last_name') ? hash['last_name'] : SKIP
  masked_card_number =
    hash.key?('masked_card_number') ? hash['masked_card_number'] : SKIP
  card_type = hash.key?('card_type') ? hash['card_type'] : SKIP
  expiration_month =
    hash.key?('expiration_month') ? hash['expiration_month'] : SKIP
  expiration_year =
    hash.key?('expiration_year') ? hash['expiration_year'] : SKIP
  customer_id = hash.key?('customer_id') ? hash['customer_id'] : SKIP
  current_vault = hash.key?('current_vault') ? hash['current_vault'] : SKIP
  vault_token = hash.key?('vault_token') ? hash['vault_token'] : SKIP
  billing_address =
    hash.key?('billing_address') ? hash['billing_address'] : SKIP
  billing_city = hash.key?('billing_city') ? hash['billing_city'] : SKIP
  billing_state = hash.key?('billing_state') ? hash['billing_state'] : SKIP
  billing_zip = hash.key?('billing_zip') ? hash['billing_zip'] : SKIP
  billing_country =
    hash.key?('billing_country') ? hash['billing_country'] : SKIP
  customer_vault_token =
    hash.key?('customer_vault_token') ? hash['customer_vault_token'] : SKIP
  billing_address_2 =
    hash.key?('billing_address_2') ? hash['billing_address_2'] : SKIP
  disabled = hash.key?('disabled') ? hash['disabled'] : SKIP
  chargify_token =
    hash.key?('chargify_token') ? hash['chargify_token'] : SKIP
  site_gateway_setting_id =
    hash.key?('site_gateway_setting_id') ? hash['site_gateway_setting_id'] : SKIP
  gateway_handle =
    hash.key?('gateway_handle') ? hash['gateway_handle'] : SKIP
  created_at = if hash.key?('created_at')
                 (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
               else
                 SKIP
               end
  updated_at = if hash.key?('updated_at')
                 (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
               else
                 SKIP
               end

  # Clean out expected properties from Hash.
  additional_properties = hash.reject { |k, _| names.value?(k) }

  # Create object from extracted values.
  CreditCardPaymentProfile.new(payment_type: payment_type,
                               id: id,
                               first_name: first_name,
                               last_name: last_name,
                               masked_card_number: masked_card_number,
                               card_type: card_type,
                               expiration_month: expiration_month,
                               expiration_year: expiration_year,
                               customer_id: customer_id,
                               current_vault: current_vault,
                               vault_token: vault_token,
                               billing_address: billing_address,
                               billing_city: billing_city,
                               billing_state: billing_state,
                               billing_zip: billing_zip,
                               billing_country: billing_country,
                               customer_vault_token: customer_vault_token,
                               billing_address_2: billing_address_2,
                               disabled: disabled,
                               chargify_token: chargify_token,
                               site_gateway_setting_id: site_gateway_setting_id,
                               gateway_handle: gateway_handle,
                               created_at: created_at,
                               updated_at: updated_at,
                               additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 122

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['id'] = 'id'
  @_hash['first_name'] = 'first_name'
  @_hash['last_name'] = 'last_name'
  @_hash['masked_card_number'] = 'masked_card_number'
  @_hash['card_type'] = 'card_type'
  @_hash['expiration_month'] = 'expiration_month'
  @_hash['expiration_year'] = 'expiration_year'
  @_hash['customer_id'] = 'customer_id'
  @_hash['current_vault'] = 'current_vault'
  @_hash['vault_token'] = 'vault_token'
  @_hash['billing_address'] = 'billing_address'
  @_hash['billing_city'] = 'billing_city'
  @_hash['billing_state'] = 'billing_state'
  @_hash['billing_zip'] = 'billing_zip'
  @_hash['billing_country'] = 'billing_country'
  @_hash['customer_vault_token'] = 'customer_vault_token'
  @_hash['billing_address_2'] = 'billing_address_2'
  @_hash['payment_type'] = 'payment_type'
  @_hash['disabled'] = 'disabled'
  @_hash['chargify_token'] = 'chargify_token'
  @_hash['site_gateway_setting_id'] = 'site_gateway_setting_id'
  @_hash['gateway_handle'] = 'gateway_handle'
  @_hash['created_at'] = 'created_at'
  @_hash['updated_at'] = 'updated_at'
  @_hash
end

.nullablesObject

An array for nullable fields



181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 181

def self.nullables
  %w[
    vault_token
    billing_address
    billing_city
    billing_state
    billing_zip
    billing_country
    customer_vault_token
    billing_address_2
    site_gateway_setting_id
    gateway_handle
  ]
end

.optionalsObject

An array for optional fields



152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 152

def self.optionals
  %w[
    id
    first_name
    last_name
    masked_card_number
    card_type
    expiration_month
    expiration_year
    customer_id
    current_vault
    vault_token
    billing_address
    billing_city
    billing_state
    billing_zip
    billing_country
    customer_vault_token
    billing_address_2
    disabled
    chargify_token
    site_gateway_setting_id
    gateway_handle
    created_at
    updated_at
  ]
end

.validate(value) ⇒ Object

Validates an instance of the object from a given value.

Parameters:



328
329
330
331
332
333
334
335
336
337
338
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 328

def self.validate(value)
  if value.instance_of? self
    return APIHelper.valid_type?(value.payment_type,
                                 ->(val) { PaymentType.validate(val) })
  end

  return false unless value.instance_of? Hash

  APIHelper.valid_type?(value['payment_type'],
                        ->(val) { PaymentType.validate(val) })
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 357

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} id: #{@id.inspect}, first_name: #{@first_name.inspect}, last_name:"\
  " #{@last_name.inspect}, masked_card_number: #{@masked_card_number.inspect}, card_type:"\
  " #{@card_type.inspect}, expiration_month: #{@expiration_month.inspect}, expiration_year:"\
  " #{@expiration_year.inspect}, customer_id: #{@customer_id.inspect}, current_vault:"\
  " #{@current_vault.inspect}, vault_token: #{@vault_token.inspect}, billing_address:"\
  " #{@billing_address.inspect}, billing_city: #{@billing_city.inspect}, billing_state:"\
  " #{@billing_state.inspect}, billing_zip: #{@billing_zip.inspect}, billing_country:"\
  " #{@billing_country.inspect}, customer_vault_token: #{@customer_vault_token.inspect},"\
  " billing_address_2: #{@billing_address_2.inspect}, payment_type: #{@payment_type.inspect},"\
  " disabled: #{@disabled.inspect}, chargify_token: #{@chargify_token.inspect},"\
  " site_gateway_setting_id: #{@site_gateway_setting_id.inspect}, gateway_handle:"\
  " #{@gateway_handle.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
  " #{@updated_at.inspect}, additional_properties: #{get_additional_properties}>"
end

#to_custom_created_atObject



318
319
320
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 318

def to_custom_created_at
  DateTimeHelper.to_rfc3339(created_at)
end

#to_custom_updated_atObject



322
323
324
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 322

def to_custom_updated_at
  DateTimeHelper.to_rfc3339(updated_at)
end

#to_sObject

Provides a human-readable string representation of the object.



341
342
343
344
345
346
347
348
349
350
351
352
353
354
# File 'lib/advanced_billing/models/credit_card_payment_profile.rb', line 341

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} id: #{@id}, first_name: #{@first_name}, last_name: #{@last_name},"\
  " masked_card_number: #{@masked_card_number}, card_type: #{@card_type}, expiration_month:"\
  " #{@expiration_month}, expiration_year: #{@expiration_year}, customer_id: #{@customer_id},"\
  " current_vault: #{@current_vault}, vault_token: #{@vault_token}, billing_address:"\
  " #{@billing_address}, billing_city: #{@billing_city}, billing_state: #{@billing_state},"\
  " billing_zip: #{@billing_zip}, billing_country: #{@billing_country}, customer_vault_token:"\
  " #{@customer_vault_token}, billing_address_2: #{@billing_address_2}, payment_type:"\
  " #{@payment_type}, disabled: #{@disabled}, chargify_token: #{@chargify_token},"\
  " site_gateway_setting_id: #{@site_gateway_setting_id}, gateway_handle: #{@gateway_handle},"\
  " created_at: #{@created_at}, updated_at: #{@updated_at}, additional_properties:"\
  " #{get_additional_properties}>"
end