Class: CyberSourceMergedSpec::Surcharge
- Inherits:
-
BaseModel
- Object
- CoreLibrary::BaseModel
- BaseModel
- CyberSourceMergedSpec::Surcharge
- Defined in:
- lib/cyber_source_merged_spec/models/surcharge.rb
Overview
Surcharge Model.
Instance Attribute Summary collapse
-
#amount ⇒ String
The surcharge amount is included in the total transaction amount but is passed in a separate field to the issuer and acquirer for tracking.
-
#description ⇒ String
Merchant-defined field for describing the surcharge amount.
Class Method Summary collapse
- .from_element(root) ⇒ Object
-
.from_hash(hash) ⇒ Object
Creates an instance of the object from a hash.
-
.names ⇒ Object
A mapping from model property names to API property names.
-
.nullables ⇒ Object
An array for nullable fields.
-
.optionals ⇒ Object
An array for optional fields.
Instance Method Summary collapse
-
#initialize(amount: SKIP, description: SKIP, additional_properties: nil) ⇒ Surcharge
constructor
A new instance of Surcharge.
-
#inspect ⇒ Object
Provides a debugging-friendly string with detailed object information.
-
#to_s ⇒ Object
Provides a human-readable string representation of the object.
- #to_xml_element(doc, root_name) ⇒ Object
Methods inherited from BaseModel
#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json
Constructor Details
#initialize(amount: SKIP, description: SKIP, additional_properties: nil) ⇒ Surcharge
Returns a new instance of Surcharge.
54 55 56 57 58 59 60 61 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 54 def initialize(amount: SKIP, description: SKIP, additional_properties: nil) # Add additional model properties to the instance additional_properties = {} if additional_properties.nil? @amount = amount unless amount == SKIP @description = description unless description == SKIP @additional_properties = additional_properties end |
Instance Attribute Details
#amount ⇒ String
The surcharge amount is included in the total transaction amount but is passed in a separate field to the issuer and acquirer for tracking. The issuer can provide information about the surcharge amount to the customer. If the amount is positive, then it is a debit for the customer. If the amount is negative, then it is a credit for the customer. NOTE: This field is supported only for CyberSource through VisaNet (CtV) for Payouts. For CtV, the maximum string length is 8.
PIN debit
Surcharge amount that you are charging the customer for this transaction.
If you include a surcharge amount
in the request, you must also include the surcharge amount in the value
for orderInformation.amountDetails.totalAmount.
Optional field for transactions that use PIN debit credit or PIN debit
purchase.
27 28 29 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 27 def amount @amount end |
#description ⇒ String
Merchant-defined field for describing the surcharge amount.
31 32 33 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 31 def description @description end |
Class Method Details
.from_element(root) ⇒ Object
84 85 86 87 88 89 90 91 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 84 def self.from_element(root) amount = XmlUtilities.from_element(root, 'amount', String) description = XmlUtilities.from_element(root, 'description', String) new(amount: amount, description: description, additional_properties: additional_properties) end |
.from_hash(hash) ⇒ Object
Creates an instance of the object from a hash.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 64 def self.from_hash(hash) return nil unless hash # Extract variables from the hash. amount = hash.key?('amount') ? hash['amount'] : SKIP description = hash.key?('description') ? hash['description'] : SKIP # Create a new hash for additional properties, removing known properties. new_hash = hash.reject { |k, _| names.value?(k) } additional_properties = APIHelper.get_additional_properties( new_hash, proc { |value| value } ) # Create object from extracted values. Surcharge.new(amount: amount, description: description, additional_properties: additional_properties) end |
.names ⇒ Object
A mapping from model property names to API property names.
34 35 36 37 38 39 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 34 def self.names @_hash = {} if @_hash.nil? @_hash['amount'] = 'amount' @_hash['description'] = 'description' @_hash end |
.nullables ⇒ Object
An array for nullable fields
50 51 52 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 50 def self.nullables [] end |
.optionals ⇒ Object
An array for optional fields
42 43 44 45 46 47 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 42 def self.optionals %w[ amount description ] end |
Instance Method Details
#inspect ⇒ Object
Provides a debugging-friendly string with detailed object information.
112 113 114 115 116 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 112 def inspect class_name = self.class.name.split('::').last "<#{class_name} amount: #{@amount.inspect}, description: #{@description.inspect},"\ " additional_properties: #{@additional_properties}>" end |
#to_s ⇒ Object
Provides a human-readable string representation of the object.
105 106 107 108 109 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 105 def to_s class_name = self.class.name.split('::').last "<#{class_name} amount: #{@amount}, description: #{@description}, additional_properties:"\ " #{@additional_properties}>" end |
#to_xml_element(doc, root_name) ⇒ Object
93 94 95 96 97 98 99 100 101 102 |
# File 'lib/cyber_source_merged_spec/models/surcharge.rb', line 93 def to_xml_element(doc, root_name) root = doc.create_element(root_name) XmlUtilities.add_as_subelement(doc, root, 'amount', amount) XmlUtilities.add_as_subelement(doc, root, 'description', description) XmlUtilities.add_as_subelement(doc, root, 'additional_properties', additional_properties) root end |