Class: PaypalServerSdk::CardStoredCredential

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/paypal_server_sdk/models/card_stored_credential.rb

Overview

Provides additional details to process a payment using a ‘card` that has been stored or is intended to be stored (also referred to as stored_credential or card-on-file). Parameter compatibility: `payment_type=ONE_TIME` is compatible only with `payment_initiator=CUSTOMER`. `usage=FIRST` is compatible only with `payment_initiator=CUSTOMER`. `previous_transaction_reference` or `previous_network_transaction_reference` is compatible only with `payment_initiator=MERCHANT`. Only one of the parameters - `previous_transaction_reference` and `previous_network_transaction_reference` - can be present in the request.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

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

Constructor Details

#initialize(payment_initiator:, payment_type:, usage: StoredPaymentSourceUsageType::DERIVED, previous_network_transaction_reference: SKIP) ⇒ CardStoredCredential

Returns a new instance of CardStoredCredential.



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 62

def initialize(payment_initiator:, payment_type:,
               usage: StoredPaymentSourceUsageType::DERIVED,
               previous_network_transaction_reference: SKIP)
  @payment_initiator = payment_initiator
  @payment_type = payment_type
  @usage = usage unless usage == SKIP
  unless previous_network_transaction_reference == SKIP
    @previous_network_transaction_reference =
      previous_network_transaction_reference
  end
end

Instance Attribute Details

#payment_initiatorPaymentInitiator

The person or party who initiated or triggered the payment.

Returns:



23
24
25
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 23

def payment_initiator
  @payment_initiator
end

#payment_typeStoredPaymentSourcePaymentType

Indicates the type of the stored payment_source payment.



27
28
29
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 27

def payment_type
  @payment_type
end

#previous_network_transaction_referenceNetworkTransactionReference

Reference values used by the card network to identify a transaction.



36
37
38
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 36

def previous_network_transaction_reference
  @previous_network_transaction_reference
end

#usageStoredPaymentSourceUsageType

Indicates if this is a ‘first` or `subsequent` payment using a stored payment source (also referred to as stored credential or card on file).



32
33
34
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 32

def usage
  @usage
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 75

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  payment_initiator =
    hash.key?('payment_initiator') ? hash['payment_initiator'] : nil
  payment_type = hash.key?('payment_type') ? hash['payment_type'] : nil
  usage = hash['usage'] ||= StoredPaymentSourceUsageType::DERIVED
  if hash['previous_network_transaction_reference']
    previous_network_transaction_reference = NetworkTransactionReference.from_hash(hash['previous_network_transaction_reference'])
  end

  # Create object from extracted values.
  CardStoredCredential.new(payment_initiator: payment_initiator,
                           payment_type: payment_type,
                           usage: usage,
                           previous_network_transaction_reference: previous_network_transaction_reference)
end

.namesObject

A mapping from model property names to API property names.



39
40
41
42
43
44
45
46
47
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 39

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['payment_initiator'] = 'payment_initiator'
  @_hash['payment_type'] = 'payment_type'
  @_hash['usage'] = 'usage'
  @_hash['previous_network_transaction_reference'] =
    'previous_network_transaction_reference'
  @_hash
end

.nullablesObject

An array for nullable fields



58
59
60
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 58

def self.nullables
  []
end

.optionalsObject

An array for optional fields



50
51
52
53
54
55
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 50

def self.optionals
  %w[
    usage
    previous_network_transaction_reference
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



103
104
105
106
107
108
109
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 103

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} payment_initiator: #{@payment_initiator.inspect}, payment_type:"\
  " #{@payment_type.inspect}, usage: #{@usage.inspect},"\
  ' previous_network_transaction_reference:'\
  " #{@previous_network_transaction_reference.inspect}>"
end

#to_sObject

Provides a human-readable string representation of the object.



95
96
97
98
99
100
# File 'lib/paypal_server_sdk/models/card_stored_credential.rb', line 95

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} payment_initiator: #{@payment_initiator}, payment_type: #{@payment_type},"\
  " usage: #{@usage}, previous_network_transaction_reference:"\
  " #{@previous_network_transaction_reference}>"
end