Class: OffsitePayments::Integrations::RealexOffsite::Notification

Inherits:
Notification
  • Object
show all
Includes:
Common
Defined in:
lib/offsite_payments/integrations/realex_offsite.rb

Constant Summary

Constants included from Common

Common::CANADIAN_STATES, Common::CURRENCY_SPECIAL_MINOR_UNITS, Common::US_STATES

Instance Attribute Summary

Attributes inherited from Notification

#params, #raw

Instance Method Summary collapse

Methods included from Common

#copy_billing_address, #create_signature, #extract_address_match_indicator, #extract_avs_code, #extract_digits, #format_amount, #format_amount_as_float, #format_phone_number, #lookup_state_code

Methods inherited from Notification

#amount, #empty!, #gross_cents, #iso_currency, #valid_sender?

Constructor Details

#initialize(post, options = {}) ⇒ Notification

Returns a new instance of Notification.



358
359
360
361
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 358

def initialize(post, options={})
  super
  @secret = options[:credential3]
end

Instance Method Details

#acknowledge(authcode = nil) ⇒ Object

Required Notification methods to define



364
365
366
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 364

def acknowledge(authcode = nil)
  verified?
end

#authcodeObject



427
428
429
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 427

def authcode
  params['AUTHCODE']
end

#avs_address_resultObject



453
454
455
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 453

def avs_address_result
  params['AVSADDRESSRESULT']
end

#avs_postcode_resultObject



449
450
451
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 449

def avs_postcode_result
  params['AVSPOSTCODERESULT']
end

#calculated_signatureObject



435
436
437
438
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 435

def calculated_signature
  fields = [timestamp, merchant_id, order_id, result, message, pasref, authcode]
  create_signature(fields, @secret)
end

#cavvObject



465
466
467
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 465

def cavv
  params['CAVV']
end

#checkout_idObject



411
412
413
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 411

def checkout_id
  params['CHECKOUT_ID']
end

#complete?Boolean

Returns:

  • (Boolean)


398
399
400
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 398

def complete?
  verified? && status == 'Completed'
end

#currencyObject

Realex does not send back the currency param by default we have sent this additional parameter



390
391
392
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 390

def currency
  params['X-CURRENCY']
end

#cvn_resultObject

Extra data (available from Realex)



445
446
447
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 445

def cvn_result
  params['CVNRESULT']
end

#eciObject



461
462
463
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 461

def eci
  params['ECI']
end

#grossObject



394
395
396
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 394

def gross
  format_amount_as_float(params['AMOUNT'], currency)
end

#item_idObject



368
369
370
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 368

def item_id
  checkout_id
end

#merchant_idObject



407
408
409
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 407

def merchant_id
  params['MERCHANT_ID']
end

#messageObject



423
424
425
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 423

def message
  params['MESSAGE']
end

#order_idObject



415
416
417
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 415

def order_id
  params['ORDER_ID']
end

#pasrefObject



457
458
459
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 457

def pasref
  params['PASREF']
end

#resultObject



419
420
421
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 419

def result
  params['RESULT']
end

#signatureObject



431
432
433
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 431

def signature
  params['SHA1HASH']
end

#statusObject



380
381
382
383
384
385
386
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 380

def status
  if result == '00'
    'Completed'
  else
    'Invalid'
  end
end

#test?Boolean

Returns:

  • (Boolean)


376
377
378
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 376

def test?
  params['X-TEST']
end

#timestampObject

Fields for Realex signature verification



403
404
405
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 403

def timestamp
  params['TIMESTAMP']
end

#transaction_idObject



372
373
374
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 372

def transaction_id
  pasref
end

#verified?Boolean

Returns:

  • (Boolean)


440
441
442
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 440

def verified?
  signature == calculated_signature
end

#xidObject



469
470
471
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 469

def xid
  params['XID']
end