Class: Braintree::CreditCard
- Inherits:
-
Object
- Object
- Braintree::CreditCard
- Includes:
- BaseModule, Util::TokenEquality
- Defined in:
- lib/braintree/credit_card.rb
Defined Under Namespace
Modules: CardType, CardTypeIndicator, CustomerLocation, DebitNetwork
Constant Summary collapse
- Commercial =
Debit = DurbinRegulated = Healthcare = Payroll = Prepaid = ProductId = IssuingBank = CountryOfIssuance = CardTypeIndicator
Instance Attribute Summary collapse
-
#billing_address ⇒ Object
readonly
Returns the value of attribute billing_address.
-
#bin ⇒ Object
readonly
Returns the value of attribute bin.
-
#card_type ⇒ Object
readonly
Returns the value of attribute card_type.
-
#cardholder_name ⇒ Object
readonly
Returns the value of attribute cardholder_name.
-
#commercial ⇒ Object
readonly
Returns the value of attribute commercial.
-
#country_of_issuance ⇒ Object
readonly
Returns the value of attribute country_of_issuance.
-
#created_at ⇒ Object
readonly
Returns the value of attribute created_at.
-
#customer_id ⇒ Object
readonly
Returns the value of attribute customer_id.
-
#debit ⇒ Object
readonly
Returns the value of attribute debit.
-
#durbin_regulated ⇒ Object
readonly
Returns the value of attribute durbin_regulated.
-
#expiration_month ⇒ Object
readonly
Returns the value of attribute expiration_month.
-
#expiration_year ⇒ Object
readonly
Returns the value of attribute expiration_year.
-
#healthcare ⇒ Object
readonly
Returns the value of attribute healthcare.
-
#image_url ⇒ Object
readonly
Returns the value of attribute image_url.
-
#issuing_bank ⇒ Object
readonly
Returns the value of attribute issuing_bank.
-
#last_4 ⇒ Object
readonly
Returns the value of attribute last_4.
-
#payroll ⇒ Object
readonly
Returns the value of attribute payroll.
-
#prepaid ⇒ Object
readonly
Returns the value of attribute prepaid.
-
#product_id ⇒ Object
readonly
Returns the value of attribute product_id.
-
#subscriptions ⇒ Object
readonly
Returns the value of attribute subscriptions.
-
#token ⇒ Object
readonly
Returns the value of attribute token.
-
#unique_number_identifier ⇒ Object
readonly
Returns the value of attribute unique_number_identifier.
-
#updated_at ⇒ Object
readonly
Returns the value of attribute updated_at.
-
#verification ⇒ Object
readonly
Returns the value of attribute verification.
Class Method Summary collapse
- ._attributes ⇒ Object
- ._new(*args) ⇒ Object
- .create(*args) ⇒ Object
- .create!(*args) ⇒ Object
-
.credit(token, transaction_attributes) ⇒ Object
NEXT_MAJOR_VERSION remove this method CreditCard.credit has been deprecated in favor of Transaction.credit.
-
.credit!(token, transaction_attributes) ⇒ Object
NEXT_MAJOR_VERSION remove this method CreditCard.credit has been deprecated in favor of Transaction.credit.
- .delete(*args) ⇒ Object
- .expired(*args) ⇒ Object
- .expiring_between(*args) ⇒ Object
- .find(*args) ⇒ Object
- .from_nonce(*args) ⇒ Object
-
.sale(token, transaction_attributes) ⇒ Object
NEXT_MAJOR_VERSION remove this method CreditCard.sale has been deprecated in favor of Transaction.sale.
-
.sale!(token, transaction_attributes) ⇒ Object
NEXT_MAJOR_VERSION remove this method CreditCard.sale has been deprecated in favor of Transaction.sale.
- .update(*args) ⇒ Object
- .update!(*args) ⇒ Object
Instance Method Summary collapse
- #_most_recent_verification(attributes) ⇒ Object
- #default? ⇒ Boolean
-
#expiration_date ⇒ Object
Expiration date formatted as MM/YYYY.
- #expired? ⇒ Boolean
-
#initialize(gateway, attributes) ⇒ CreditCard
constructor
A new instance of CreditCard.
- #inspect ⇒ Object
- #is_network_tokenized? ⇒ Boolean
- #masked_number ⇒ Object
- #nonce ⇒ Object
-
#venmo_sdk? ⇒ Boolean
NEXT_MAJOR_VERSION can this be removed? Venmo SDK integration is no more Returns true if the card is associated with Venmo SDK NEXT_MAJOR_VERSION Remove this method The old venmo SDK class has been deprecated.
Methods included from Util::TokenEquality
Methods included from BaseModule
Methods included from BaseModule::Methods
#copy_instance_variables_from_object, #return_object_or_raise, #set_instance_variables_from_hash, #singleton_class
Constructor Details
#initialize(gateway, attributes) ⇒ CreditCard
Returns a new instance of CreditCard.
140 141 142 143 144 145 146 |
# File 'lib/braintree/credit_card.rb', line 140 def initialize(gateway, attributes) @gateway = gateway set_instance_variables_from_hash(attributes) @billing_address = attributes[:billing_address] ? Address._new(@gateway, attributes[:billing_address]) : nil @subscriptions = (@subscriptions || []).map { |subscription_hash| Subscription._new(@gateway, subscription_hash) } @verification = _most_recent_verification(attributes) end |
Instance Attribute Details
#billing_address ⇒ Object (readonly)
Returns the value of attribute billing_address.
51 52 53 |
# File 'lib/braintree/credit_card.rb', line 51 def billing_address @billing_address end |
#bin ⇒ Object (readonly)
Returns the value of attribute bin.
52 53 54 |
# File 'lib/braintree/credit_card.rb', line 52 def bin @bin end |
#card_type ⇒ Object (readonly)
Returns the value of attribute card_type.
53 54 55 |
# File 'lib/braintree/credit_card.rb', line 53 def card_type @card_type end |
#cardholder_name ⇒ Object (readonly)
Returns the value of attribute cardholder_name.
54 55 56 |
# File 'lib/braintree/credit_card.rb', line 54 def cardholder_name @cardholder_name end |
#commercial ⇒ Object (readonly)
Returns the value of attribute commercial.
55 56 57 |
# File 'lib/braintree/credit_card.rb', line 55 def commercial @commercial end |
#country_of_issuance ⇒ Object (readonly)
Returns the value of attribute country_of_issuance.
56 57 58 |
# File 'lib/braintree/credit_card.rb', line 56 def country_of_issuance @country_of_issuance end |
#created_at ⇒ Object (readonly)
Returns the value of attribute created_at.
57 58 59 |
# File 'lib/braintree/credit_card.rb', line 57 def created_at @created_at end |
#customer_id ⇒ Object (readonly)
Returns the value of attribute customer_id.
58 59 60 |
# File 'lib/braintree/credit_card.rb', line 58 def customer_id @customer_id end |
#debit ⇒ Object (readonly)
Returns the value of attribute debit.
59 60 61 |
# File 'lib/braintree/credit_card.rb', line 59 def debit @debit end |
#durbin_regulated ⇒ Object (readonly)
Returns the value of attribute durbin_regulated.
60 61 62 |
# File 'lib/braintree/credit_card.rb', line 60 def durbin_regulated @durbin_regulated end |
#expiration_month ⇒ Object (readonly)
Returns the value of attribute expiration_month.
61 62 63 |
# File 'lib/braintree/credit_card.rb', line 61 def expiration_month @expiration_month end |
#expiration_year ⇒ Object (readonly)
Returns the value of attribute expiration_year.
62 63 64 |
# File 'lib/braintree/credit_card.rb', line 62 def expiration_year @expiration_year end |
#healthcare ⇒ Object (readonly)
Returns the value of attribute healthcare.
63 64 65 |
# File 'lib/braintree/credit_card.rb', line 63 def healthcare @healthcare end |
#image_url ⇒ Object (readonly)
Returns the value of attribute image_url.
64 65 66 |
# File 'lib/braintree/credit_card.rb', line 64 def image_url @image_url end |
#issuing_bank ⇒ Object (readonly)
Returns the value of attribute issuing_bank.
65 66 67 |
# File 'lib/braintree/credit_card.rb', line 65 def issuing_bank @issuing_bank end |
#last_4 ⇒ Object (readonly)
Returns the value of attribute last_4.
66 67 68 |
# File 'lib/braintree/credit_card.rb', line 66 def last_4 @last_4 end |
#payroll ⇒ Object (readonly)
Returns the value of attribute payroll.
67 68 69 |
# File 'lib/braintree/credit_card.rb', line 67 def payroll @payroll end |
#prepaid ⇒ Object (readonly)
Returns the value of attribute prepaid.
68 69 70 |
# File 'lib/braintree/credit_card.rb', line 68 def prepaid @prepaid end |
#product_id ⇒ Object (readonly)
Returns the value of attribute product_id.
69 70 71 |
# File 'lib/braintree/credit_card.rb', line 69 def product_id @product_id end |
#subscriptions ⇒ Object (readonly)
Returns the value of attribute subscriptions.
70 71 72 |
# File 'lib/braintree/credit_card.rb', line 70 def subscriptions @subscriptions end |
#token ⇒ Object (readonly)
Returns the value of attribute token.
71 72 73 |
# File 'lib/braintree/credit_card.rb', line 71 def token @token end |
#unique_number_identifier ⇒ Object (readonly)
Returns the value of attribute unique_number_identifier.
72 73 74 |
# File 'lib/braintree/credit_card.rb', line 72 def unique_number_identifier @unique_number_identifier end |
#updated_at ⇒ Object (readonly)
Returns the value of attribute updated_at.
73 74 75 |
# File 'lib/braintree/credit_card.rb', line 73 def updated_at @updated_at end |
#verification ⇒ Object (readonly)
Returns the value of attribute verification.
74 75 76 |
# File 'lib/braintree/credit_card.rb', line 74 def verification @verification end |
Class Method Details
._attributes ⇒ Object
200 201 202 203 204 205 206 |
# File 'lib/braintree/credit_card.rb', line 200 def self._attributes [ :billing_address, :bin, :card_type, :cardholder_name, :created_at, :customer_id, :expiration_month, :expiration_year, :last_4, :token, :updated_at, :prepaid, :payroll, :product_id, :commercial, :debit, :durbin_regulated, :healthcare, :country_of_issuance, :issuing_bank, :image_url, :is_network_tokenized? ] end |
._new(*args) ⇒ Object
208 209 210 |
# File 'lib/braintree/credit_card.rb', line 208 def self._new(*args) self.new(*args) end |
.create(*args) ⇒ Object
76 77 78 |
# File 'lib/braintree/credit_card.rb', line 76 def self.create(*args) Configuration.gateway.credit_card.create(*args) end |
.create!(*args) ⇒ Object
80 81 82 |
# File 'lib/braintree/credit_card.rb', line 80 def self.create!(*args) Configuration.gateway.credit_card.create!(*args) end |
.credit(token, transaction_attributes) ⇒ Object
NEXT_MAJOR_VERSION remove this method CreditCard.credit has been deprecated in favor of Transaction.credit
86 87 88 89 |
# File 'lib/braintree/credit_card.rb', line 86 def self.credit(token, transaction_attributes) warn "[DEPRECATED] CreditCard.credit is deprecated. Use Transaction.credit instead" Transaction.credit(transaction_attributes.merge(:payment_method_token => token)) end |
.credit!(token, transaction_attributes) ⇒ Object
NEXT_MAJOR_VERSION remove this method CreditCard.credit has been deprecated in favor of Transaction.credit
93 94 95 96 |
# File 'lib/braintree/credit_card.rb', line 93 def self.credit!(token, transaction_attributes) warn "[DEPRECATED] CreditCard.credit is deprecated. Use Transaction.credit instead" return_object_or_raise(:transaction) { credit(token, transaction_attributes) } end |
.delete(*args) ⇒ Object
98 99 100 |
# File 'lib/braintree/credit_card.rb', line 98 def self.delete(*args) Configuration.gateway.credit_card.delete(*args) end |
.expired(*args) ⇒ Object
102 103 104 |
# File 'lib/braintree/credit_card.rb', line 102 def self.expired(*args) Configuration.gateway.credit_card.expired(*args) end |
.expiring_between(*args) ⇒ Object
106 107 108 |
# File 'lib/braintree/credit_card.rb', line 106 def self.expiring_between(*args) Configuration.gateway.credit_card.expiring_between(*args) end |
.find(*args) ⇒ Object
110 111 112 |
# File 'lib/braintree/credit_card.rb', line 110 def self.find(*args) Configuration.gateway.credit_card.find(*args) end |
.from_nonce(*args) ⇒ Object
114 115 116 |
# File 'lib/braintree/credit_card.rb', line 114 def self.from_nonce(*args) Configuration.gateway.credit_card.from_nonce(*args) end |
.sale(token, transaction_attributes) ⇒ Object
NEXT_MAJOR_VERSION remove this method CreditCard.sale has been deprecated in favor of Transaction.sale
120 121 122 123 |
# File 'lib/braintree/credit_card.rb', line 120 def self.sale(token, transaction_attributes) warn "[DEPRECATED] CreditCard.sale is deprecated. Use Transaction.sale instead" Configuration.gateway.transaction.sale(transaction_attributes.merge(:payment_method_token => token)) end |
.sale!(token, transaction_attributes) ⇒ Object
NEXT_MAJOR_VERSION remove this method CreditCard.sale has been deprecated in favor of Transaction.sale
127 128 129 130 |
# File 'lib/braintree/credit_card.rb', line 127 def self.sale!(token, transaction_attributes) warn "[DEPRECATED] CreditCard.sale is deprecated. Use Transaction.sale instead" return_object_or_raise(:transaction) { sale(token, transaction_attributes) } end |
.update(*args) ⇒ Object
132 133 134 |
# File 'lib/braintree/credit_card.rb', line 132 def self.update(*args) Configuration.gateway.credit_card.update(*args) end |
.update!(*args) ⇒ Object
136 137 138 |
# File 'lib/braintree/credit_card.rb', line 136 def self.update!(*args) Configuration.gateway.credit_card.update!(*args) end |
Instance Method Details
#_most_recent_verification(attributes) ⇒ Object
148 149 150 151 |
# File 'lib/braintree/credit_card.rb', line 148 def _most_recent_verification(attributes) sorted_verifications = (attributes[:verifications] || []).sort_by { |verification| verification[:created_at] }.reverse.first CreditCardVerification._new(sorted_verifications) if sorted_verifications end |
#default? ⇒ Boolean
153 154 155 |
# File 'lib/braintree/credit_card.rb', line 153 def default? @default end |
#expiration_date ⇒ Object
Expiration date formatted as MM/YYYY
158 159 160 |
# File 'lib/braintree/credit_card.rb', line 158 def expiration_date "#{expiration_month}/#{expiration_year}" end |
#expired? ⇒ Boolean
162 163 164 |
# File 'lib/braintree/credit_card.rb', line 162 def expired? @expired end |
#inspect ⇒ Object
166 167 168 169 170 171 172 173 |
# File 'lib/braintree/credit_card.rb', line 166 def inspect first = [:token] order = first + (self.class._attributes - first) nice_attributes = order.map do |attr| "#{attr}: #{send(attr).inspect}" end "#<#{self.class} #{nice_attributes.join(', ')}>" end |
#is_network_tokenized? ⇒ Boolean
192 193 194 |
# File 'lib/braintree/credit_card.rb', line 192 def is_network_tokenized? @is_network_tokenized end |
#masked_number ⇒ Object
175 176 177 |
# File 'lib/braintree/credit_card.rb', line 175 def masked_number "#{bin}******#{last_4}" end |
#nonce ⇒ Object
179 180 181 |
# File 'lib/braintree/credit_card.rb', line 179 def nonce @nonce ||= PaymentMethodNonce.create(token) end |
#venmo_sdk? ⇒ Boolean
NEXT_MAJOR_VERSION can this be removed? Venmo SDK integration is no more Returns true if the card is associated with Venmo SDK NEXT_MAJOR_VERSION Remove this method The old venmo SDK class has been deprecated
187 188 189 190 |
# File 'lib/braintree/credit_card.rb', line 187 def venmo_sdk? warn "[DEPRECATED] The Venmo SDK integration is Unsupported. Please update your integration to use Pay with Venmo instead." @venmo_sdk end |