Sha256: 791bc41bd0c5e95f4d6d44f0028c7631b540db5ce613dee1383c14d866ede2de

Contents?: true

Size: 1.12 KB

Versions: 5

Compression:

Stored size: 1.12 KB

Contents

require 'net/http'

module ActiveMerchant #:nodoc:
  module Billing #:nodoc:
    module Integrations #:nodoc:
      module Universal
        class Notification < ActiveMerchant::Billing::Integrations::Notification
          def initialize(post, options = {})
            super
            @key = options[:credential2]
          end

          def acknowledge(authcode = nil)
            signature = @params.delete('x_signature')
            signature && signature.casecmp(generate_signature) == 0
          end

          def item_id
            @params['x_reference']
          end

          def currency
            @params['x_currency']
          end

          def gross
            @params['x_amount']
          end

          def transaction_id
            @params['x_gateway_reference']
          end

          def status
            result = @params['x_result']
            result && result.capitalize
          end

          def test?
            @params['x_test'] == 'true'
          end

          private

          def generate_signature
            Universal.sign(@params, @key)
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
activemerchant-1.43.3 lib/active_merchant/billing/integrations/universal/notification.rb
activemerchant-1.43.1 lib/active_merchant/billing/integrations/universal/notification.rb
activemerchant-1.43.0 lib/active_merchant/billing/integrations/universal/notification.rb
activemerchant-1.42.9 lib/active_merchant/billing/integrations/universal/notification.rb
activemerchant-1.42.8 lib/active_merchant/billing/integrations/universal/notification.rb