Sha256: 9604fe968292ef0e881957f32d9a81232a9a0b8656c63a629ae2c08e163e22c6

Contents?: true

Size: 1.36 KB

Versions: 45

Compression:

Stored size: 1.36 KB

Contents

module ActiveMerchant #:nodoc:
  module Billing #:nodoc:
    module Integrations #:nodoc:
      module PayFast
        module Common
          def generate_signature(type)
            string = case type
            when :request
              request_signature_string
            when :notify
              notify_signature_string
            end

            Digest::MD5.hexdigest(string)
          end

          def request_attributes
            [:merchant_id, :merchant_key, :return_url, :cancel_url,
             :notify_url, :name_first, :name_last, :email_address,
             :payment_id, :amount, :item_name, :item_description,
             :custom_str1, :custom_str2, :custom_str3, :custom_str4,
             :custom_str5, :custom_int1, :custom_int2, :custom_int3,
             :custom_int4, :custom_int5, :email_confirmation,
             :confirmation_address]
          end

          def request_signature_string
            request_attributes.map do |attr|
              "#{mappings[attr]}=#{CGI.escape(@fields[mappings[attr]])}" if @fields[mappings[attr]].present?
            end.compact.join('&')
          end

          def notify_signature_string
            params.map do |key, value|
              "#{key}=#{CGI.escape(value)}" unless key == PayFast.signature_parameter_name
            end.compact.join('&')
          end
        end
      end
    end
  end
end

Version data entries

45 entries across 45 versions & 3 rubygems

Version Path
tanga_activemerchant-1.38.0.5 lib/active_merchant/billing/integrations/pay_fast/common.rb
tanga_activemerchant-1.38.0.4 lib/active_merchant/billing/integrations/pay_fast/common.rb
tanga_activemerchant-1.38.0.3 lib/active_merchant/billing/integrations/pay_fast/common.rb
tanga_activemerchant-1.38.0.2 lib/active_merchant/billing/integrations/pay_fast/common.rb
tanga_activemerchant-1.38.0.1 lib/active_merchant/billing/integrations/pay_fast/common.rb
tanga_activemerchant-1.38.0 lib/active_merchant/billing/integrations/pay_fast/common.rb
tanga_activemerchant-1.37.0 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.43.3 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.43.1 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.43.0 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.9 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.8 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.7 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.6 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.5 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.4 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.3 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.2 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.1 lib/active_merchant/billing/integrations/pay_fast/common.rb
activemerchant-1.42.0 lib/active_merchant/billing/integrations/pay_fast/common.rb