Class: KambaSignatureGeneration::API

Inherits:
Object
  • Object
show all
Defined in:
lib/kamba_signature_generation/api.rb

Class Method Summary collapse

Class Method Details

.generate_md5(checkout) ⇒ Object



14
15
16
# File 'lib/kamba_signature_generation/api.rb', line 14

def self.generate_md5(checkout)
  Digest::MD5.base64digest(checkout)
end

.generate_signature(checkout) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/kamba_signature_generation/api.rb', line 3

def self.generate_signature(checkout)
  time = Time.now.utc.httpdate
  secret_key = KambaSignatureGeneration.secret_key

  json_string = checkout.to_json
  canonical_string = "POST,application/json,#{generate_md5(json_string)},/v1/checkouts,#{time}"
  digest = OpenSSL::Digest.new('sha1')
  hmac_signature = OpenSSL::HMAC.hexdigest(digest, secret_key, canonical_string)
  time + '.' + Base64.strict_encode64(hmac_signature)
end