Sha256: 0fcfb9ccbf8360e0769baba83c5c9da0ff90ca33ec3be6e68e7aa44db51df4f0

Contents?: true

Size: 1.94 KB

Versions: 18

Compression:

Stored size: 1.94 KB

Contents

require 'net/http'

module ActiveMerchant #:nodoc:
  module Billing #:nodoc:
    module Integrations #:nodoc:
      module Dotpay
        class Notification < ActiveMerchant::Billing::Integrations::Notification
          def complete?
            status == 'OK' && %w(2 4 5).include?(t_status)
          end

          def currency
            orginal_amount.split(' ')[1]
          end

          # the money amount we received in X.2 decimal.
          def gross
            params['amount']
          end

          def pin=(value)
            @options[:pin] = value
          end

          def status
            params['status']
          end

          def test?
            params['t_id'].match('.*-TST\d+') ? true : false
          end

          PAYMENT_HOOK_FIELDS = [
            :id,
            :control,
            :t_id,
            :orginal_amount,
            :email,
            :service,
            :code,
            :username,
            :password,
            :t_status,
            :description,
            :md5,
            :p_info,
            :p_email,
            :t_date
          ]

          PAYMENT_HOOK_SIGNATURE_FIELDS = [
            :id,
            :control,
            :t_id,
            :amount,
            :email,
            :service,
            :code,
            :username,
            :password,
            :t_status
          ]

          # Provide access to raw fields
          PAYMENT_HOOK_FIELDS.each do |key|
            define_method(key.to_s) do
               params[key.to_s]
            end
          end

          def generate_signature_string
            "#{@options[:pin]}:" + PAYMENT_HOOK_SIGNATURE_FIELDS.map {|key| params[key.to_s]} * ":"
          end

          def generate_signature
            Digest::MD5.hexdigest(generate_signature_string)
          end

          def acknowledge(authcode = nil)      
            generate_signature.to_s == md5.to_s
          end
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
activemerchant-1.43.3 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.43.1 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.43.0 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.9 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.8 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.7 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.6 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.5 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.4 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.3 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.2 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.1 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.42.0 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.41.0 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.40.0 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.39.2 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.39.1 lib/active_merchant/billing/integrations/dotpay/notification.rb
activemerchant-1.39.0 lib/active_merchant/billing/integrations/dotpay/notification.rb