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::COUNTRY_PHONE_NUMBERS, 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

#add_field, #adjust_phone_number_length, #copy_billing_address, #create_signature, #extract_address_match_indicator, #extract_avs_code, #extract_digits, #format_amount, #format_amount_as_float, #format_phone_number, #get_message, #get_pattern, #lookup_state_code, #validate

Methods inherited from Notification

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

Constructor Details

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

Returns a new instance of Notification.



713
714
715
716
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 713

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

Instance Method Details

#acknowledge(authcode = nil) ⇒ Object

Required Notification methods to define



719
720
721
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 719

def acknowledge(authcode = nil)
  verified?
end

#authcodeObject



782
783
784
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 782

def authcode
  params['AUTHCODE']
end

#avs_address_resultObject



808
809
810
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 808

def avs_address_result
  params['AVSADDRESSRESULT']
end

#avs_postcode_resultObject



804
805
806
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 804

def avs_postcode_result
  params['AVSPOSTCODERESULT']
end

#calculated_signatureObject



790
791
792
793
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 790

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

#cavvObject



820
821
822
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 820

def cavv
  params['CAVV']
end

#checkout_idObject



766
767
768
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 766

def checkout_id
  params['CHECKOUT_ID']
end

#complete?Boolean

Returns:

  • (Boolean)


753
754
755
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 753

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

#currencyObject

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



745
746
747
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 745

def currency
  params['X-CURRENCY']
end

#cvn_resultObject

Extra data (available from Realex)



800
801
802
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 800

def cvn_result
  params['CVNRESULT']
end

#eciObject



816
817
818
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 816

def eci
  params['ECI']
end

#grossObject



749
750
751
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 749

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

#item_idObject



723
724
725
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 723

def item_id
  checkout_id
end

#merchant_idObject



762
763
764
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 762

def merchant_id
  params['MERCHANT_ID']
end

#messageObject



778
779
780
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 778

def message
  params['MESSAGE']
end

#order_idObject



770
771
772
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 770

def order_id
  params['ORDER_ID']
end

#pasrefObject



812
813
814
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 812

def pasref
  params['PASREF']
end

#resultObject



774
775
776
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 774

def result
  params['RESULT']
end

#signatureObject



786
787
788
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 786

def signature
  params['SHA1HASH']
end

#statusObject



735
736
737
738
739
740
741
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 735

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

#test?Boolean

Returns:

  • (Boolean)


731
732
733
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 731

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

#timestampObject

Fields for Realex signature verification



758
759
760
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 758

def timestamp
  params['TIMESTAMP']
end

#transaction_idObject



727
728
729
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 727

def transaction_id
  pasref
end

#verified?Boolean

Returns:

  • (Boolean)


795
796
797
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 795

def verified?
  signature == calculated_signature
end

#xidObject



824
825
826
# File 'lib/offsite_payments/integrations/realex_offsite.rb', line 824

def xid
  params['XID']
end