Sha256: 8bd30d13fa5188a941dbd383695ed280f656c2c3ab00b5e268d8d5638f5234b0

Contents?: true

Size: 772 Bytes

Versions: 33

Compression:

Stored size: 772 Bytes

Contents

require "openssl"

module ActiveMerchant #:nodoc:
  module Billing #:nodoc:
    module Integrations #:nodoc:
      module Dwolla
        module Common
          def verify_signature(checkoutId, amount, notification_signature, secret)
            if secret.nil?
              raise ArgumentError, "You need to provide the Application secret as the option :credential3 to verify that the notification originated from Dwolla"
            end

            expected_signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA1.new, secret, "%s&%.2f" % [checkoutId, amount])

            if notification_signature != expected_signature
              raise StandardError, "Dwolla signature verification failed."
            end
          end
        end
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 2 rubygems

Version Path
activemerchant-1.41.0 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.40.0 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.39.2 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.39.1 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.39.0 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.38.1 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.38.0 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.37.0 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.36.0 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.35.0 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.35.1 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.34.1 lib/active_merchant/billing/integrations/dwolla/common.rb
activemerchant-1.34.0 lib/active_merchant/billing/integrations/dwolla/common.rb