Sha256: 0ed7aa088d9bcf788ef2a303aa9d407f4a61b030446781c74f30b716f298a6ae

Contents?: true

Size: 600 Bytes

Versions: 1

Compression:

Stored size: 600 Bytes

Contents

# frozen_string_literal: true

module Sberbank
  module Acquiring
    class AbstractChecksumValidator
      def initialize(key, digest = digest_class.new)
        @key = key
        @digest = digest
      end

      def validate(checksum, params)
        raise NotImplementedError
      end

      private

      def digest_class
        OpenSSL::Digest::SHA256
      end

      def generate_digest_data(params)
        params.
          keys.
          sort { |a, b| a.to_s <=> b.to_s }.
          map { |param_key| "#{param_key};#{params[param_key]};" }.
          join
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sberbank-acquiring-0.2.0 lib/sberbank/acquiring/abstract_checksum_validator.rb