Sha256: 6e565b33f29289253b7db29580d86f192bd256bb4a8d0a8ef303c25091487571
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
class EpayTools::HashCalculatorService < ServicePattern::Service DEFAULT_PARAMETERS = { "merchantnumber" => nil, "accepturl" => nil, "callbackurl" => nil, "orderid" => nil, "amount" => nil, "currency" => "DKK", "ownreceipt" => "1", "windowstate" => "2", "instantcapture" => "1", "paymentcollection" => "1", "lockpaymentcollection" => "1", "subscription" => "0" }.freeze attr_reader :query_parameters, :epay_md5_key def initialize(query_parameters:, epay_md5_key:) @query_parameters = query_parameters @epay_md5_key = epay_md5_key end def execute! ServicePattern::Response.new( result: { calculated_hash: calculated_hash, validated: validated? } ) end private def calculated_hash @_calculated_hash ||= Digest::MD5.hexdigest("#{parameters_to_use.values.join}#{epay_md5_key}") end def parameters_to_use parameters = {} EpayTools::OrderedParameters::ORDERED_PARAMETERS.each do |ordered_parameter| parameters[selected_parameter] = query_parameters.fetch(ordered_parameter) end parameters end def validated? return false unless query_parameters.key?("hash") return true if calculated_hash == query_parameters.fetch("hash") false end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
epay_tools-0.0.0 | lib/epay_tools/hash_calculator_service.rb |