class OffsitePayments::Integrations::Migs::SecureHash

Constants

DIGEST

Public Class Methods

calculate(secure_hash, post) click to toggle source
# File lib/offsite_payments/integrations/migs.rb, line 149
def self.calculate(secure_hash, post)
  post_without_secure_hash = post.reject { |k, _v| [:SecureHash, :SecureHashType].include? k }
  sorted_values = post_without_secure_hash.sort_by(&:to_s).map { |key, value| "vpc_#{key}=#{value}"}
  input = sorted_values.join('&')
  OpenSSL::HMAC.hexdigest(DIGEST, [secure_hash].pack('H*'), input).upcase
end