Class: WirecardCheckoutPage::RequestChecksum

Inherits:
Object
  • Object
show all
Includes:
Utils, ValueHandling
Defined in:
lib/wirecard_checkout_page/request_checksum.rb

Constant Summary collapse

FINGERPRINT_KEYS =
%w[
  secret
  customerId
  amount
  paymentType
  currency
  language
  orderDescription
  serviceURL
  successURL
  cancelURL
  failureURL
  confirmURL
  orderReference
  requestFingerprintOrder
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ValueHandling

#add_missing_key, #missing_keys, #missing_keys?, #reset_missing_keys

Methods included from Utils

#stringify_keys

Constructor Details

#initialize(values = {}) ⇒ RequestChecksum

Returns a new instance of RequestChecksum.



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/wirecard_checkout_page/request_checksum.rb', line 25

def initialize(values = {})
  @values = stringify_keys(values)
  @fingerprint_keys = @values.delete('fingerprint_keys') || FINGERPRINT_KEYS
  @secret = @values.delete('secret') or
    raise WirecardCheckoutPage::ValueMissing, 'value "secret" is missing'
  @values = add_some_defaults @values
  @values.freeze
  @fingerprint_keys = fingerprint_keys
  @secret = @secret
  reset_missing_keys
end

Instance Attribute Details

#fingerprint_keysObject (readonly)

Returns the value of attribute fingerprint_keys.



37
38
39
# File 'lib/wirecard_checkout_page/request_checksum.rb', line 37

def fingerprint_keys
  @fingerprint_keys
end

#valuesObject (readonly)

Returns the value of attribute values.



39
40
41
# File 'lib/wirecard_checkout_page/request_checksum.rb', line 39

def values
  @values
end

Instance Method Details

#request_parametersObject



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/wirecard_checkout_page/request_checksum.rb', line 41

def request_parameters
  reset_missing_keys
  parameters = @values.dup
  parameters['requestFingerprintOrder'] = requestFingerprintOrder
  parameters['requestFingerprint'] = fingerprint
  if missing_keys?
    raise WirecardCheckoutPage::ValueMissing,
      "values #{missing_keys * ', ' } are missing"
  end
  parameters
end