class OffsitePayments::Integrations::Directebanking::Notification

Constants

PAYMENT_HOOK_IGNORE_AT_METHOD_CREATION_FIELDS
PAYMENT_HOOK_SIGNATURE_FIELDS

for verifying the signature of the URL parameters

Public Class Methods

new(data, options) click to toggle source
Calls superclass method OffsitePayments::Notification::new
# File lib/offsite_payments/integrations/directebanking.rb, line 123
def initialize(data, options)
  if options[:credential4].nil?
    raise ArgumentError, "You need to provide the notification password (SH1) as the option :credential4 to verify that the notification originated from Directebanking (Payment Networks AG)"
  end
  super
end

Public Instance Methods

acknowledge(authcode = nil) click to toggle source
# File lib/offsite_payments/integrations/directebanking.rb, line 227
def acknowledge(authcode = nil)
  # signature_is_valid?
  generate_signature.to_s == params['hash'].to_s
end
complete?() click to toggle source
# File lib/offsite_payments/integrations/directebanking.rb, line 130
def complete?
  status == 'Completed'
end
currency() click to toggle source
# File lib/offsite_payments/integrations/directebanking.rb, line 156
def currency
  params['currency_id']
end
generate_signature() click to toggle source
# File lib/offsite_payments/integrations/directebanking.rb, line 223
def generate_signature
  Digest::SHA1.hexdigest(generate_signature_string)
end
generate_signature_string() click to toggle source
# File lib/offsite_payments/integrations/directebanking.rb, line 218
def generate_signature_string
  #format is: transaction|user_id|project_id|sender_holder|sender_account_number|sender_bank_code|sender_bank_name|sender_bank_bic|sender_iban|sender_country_id|recipient_holder|recipient_account_number|recipient_bank_code|recipient_bank_name|recipient_bank_bic|recipient_iban|recipient_country_id|international_transaction|amount|currency_id|reason_1|reason_2|security_criteria|user_variable_0|user_variable_1|user_variable_2|user_variable_3|user_variable_4|user_variable_5|created|notification_password
  PAYMENT_HOOK_SIGNATURE_FIELDS.map {|key| params[key.to_s]} * "|" + "|#{@options[:credential4]}"
end
gross() click to toggle source

the money amount we received in X.2 decimal.

# File lib/offsite_payments/integrations/directebanking.rb, line 148
def gross
  "%.2f" % params['amount'].to_f
end
item_id() click to toggle source
# File lib/offsite_payments/integrations/directebanking.rb, line 134
def item_id
  params['user_variable_0']
end
received_at() click to toggle source

When was this payment received by the client.

# File lib/offsite_payments/integrations/directebanking.rb, line 143
def received_at
  Time.parse(params['created']) if params['created']
end
status() click to toggle source
# File lib/offsite_payments/integrations/directebanking.rb, line 152
def status
  'Completed'
end
test?() click to toggle source
# File lib/offsite_payments/integrations/directebanking.rb, line 160
def test?
  params['sender_bank_name'] == 'Testbank'
end
transaction_id() click to toggle source
# File lib/offsite_payments/integrations/directebanking.rb, line 138
def transaction_id
  params['transaction']
end