Module: SpreeStripe::PaymentDecorator

Defined in:
app/models/spree_stripe/payment_decorator.rb

Constant Summary collapse

AVS_CODES =
{
  'pass' => {
    'pass' => 'Y',
    'fail' => 'A',
    'unchecked' => 'B'
  },
  'fail' => {
    'pass' => 'Z',
    'fail' => 'N'
  },
  'unchecked' => {
    'pass' => 'P',
    'unchecked' => 'I'
  }
}.freeze
CVV_CODES =
{
  'pass' => 'M',
  'fail' => 'N',
  'unchecked' => 'P'
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



25
26
27
28
29
30
# File 'app/models/spree_stripe/payment_decorator.rb', line 25

def self.prepended(base)
  base.store_accessor :private_metadata, :stripe_charge_id
  base.store_accessor :private_metadata, :stripe_tax_transaction_id

  base.before_save :set_cvv_and_avs_response_from_metadata, if: :credit_card_source?
end

Instance Method Details

#credit_card_source?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'app/models/spree_stripe/payment_decorator.rb', line 40

def credit_card_source?
  source.present? && source.is_a?(Spree::CreditCard)
end

#set_cvv_and_avs_response_from_metadataObject



32
33
34
35
36
37
38
# File 'app/models/spree_stripe/payment_decorator.rb', line 32

def 
  checks = source.[:checks]
  return if checks.blank?

  self.avs_response ||= AVS_CODES.dig(checks[:address_line1_check], checks[:address_postal_code_check])
  self.cvv_response_code ||= CVV_CODES[checks[:cvc_check]]
end