Sha256: d2caf2d6835c01942bb3c555121d6b7c3855c3095f970db53b48ed0077acd4bd

Contents?: true

Size: 420 Bytes

Versions: 2

Compression:

Stored size: 420 Bytes

Contents

# frozen_string_literal: true

module Cardknox
  module Webhook
    class << self
      def verify_signature(params:, secret_key:, signature:)
        sorted_values = params.to_h.sort_by do |key, _value|
          key.downcase
        end.map(&:last).join

        hexdigest = Digest::MD5.hexdigest(
          "#{sorted_values}#{secret_key}",
        ).upcase

        hexdigest == signature
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cardknox-0.3.0 lib/cardknox/webhook.rb
cardknox-0.2.0 lib/cardknox/webhook.rb