class Sberbank::Acquiring::AbstractChecksumValidator

Public Class Methods

new(key, digest = digest_class.new) click to toggle source
# File lib/sberbank/acquiring/abstract_checksum_validator.rb, line 6
def initialize(key, digest = digest_class.new)
  @key = key
  @digest = digest
end

Public Instance Methods

valid?(params) click to toggle source
# File lib/sberbank/acquiring/abstract_checksum_validator.rb, line 15
def valid?(params)
  params_to_validate = params.dup
  validate(params_to_validate.delete('checksum'), params_to_validate)
end
validate(checksum, params) click to toggle source
# File lib/sberbank/acquiring/abstract_checksum_validator.rb, line 11
def validate(checksum, params)
  raise NotImplementedError
end

Private Instance Methods

digest_class() click to toggle source
# File lib/sberbank/acquiring/abstract_checksum_validator.rb, line 22
def digest_class
  OpenSSL::Digest::SHA256
end
generate_digest_data(params) click to toggle source
# File lib/sberbank/acquiring/abstract_checksum_validator.rb, line 26
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