module Barzahlen::Middleware

Public Class Methods

generate_bz_signature( payment_key, request_host_header, request_method, request_date_header, request_host_path = "", request_query_string = "", request_body = "", request_idempotency_key = "") click to toggle source
# File lib/barzahlen/middleware.rb, line 46
def self.generate_bz_signature(
  payment_key,
  request_host_header,
  request_method,
  request_date_header,
  request_host_path = "",
  request_query_string = "",
  request_body = "",
  request_idempotency_key = "")

  request_body_digest = OpenSSL::Digest.hexdigest("SHA256", request_body.to_s || "")

  raw_signature = "#{request_host_header}\n"\
                  "#{request_method.upcase}\n"\
                  "#{request_host_path}\n"\
                  "#{request_query_string}\n"\
                  "#{request_date_header}\n"\
                  "#{request_idempotency_key}\n"\
                  "#{request_body_digest}"

  OpenSSL::HMAC.hexdigest("SHA256", payment_key, raw_signature)
end