class AdyenHppHmacCalculator
Calculates merchant signature for Adyen payment serivce (www.adyen.com). It is based on documentation from: docs.adyen.com/pages/viewpage.action?pageId=5376964
@example Calculating merchant signature using AdyenHppHmacCalculator::calculate
:
hmac_key = "4468D9782DEF54FCD706C9100C71EC43932B1EBC2ACF6BA0560C05AAA7550C48" params = { "merchantAccount" => "TestMerchant", "currencyCode" => "EUR", "paymentAmount" => "199", "sessionValidity" => "2015-06-25T10:31:06Z", "shipBeforeDate" => "2015-07-01", "shopperLocale" => "en_GB", "merchantReference" => "SKINTEST-1435226439255", "skinCode" => "X7hsNDWp" } AdyenHppHmacCalculator.calculate(hamc_key, params) #=> "GJ1asjR5VmkvihDJxCd8yE2DGYOKwWwJCBiV3R51NFg="
Public Class Methods
calculate(hmac_key, params)
click to toggle source
Calculates merchant signatre for specified hmac key and params docs.adyen.com/pages/viewpage.action?pageId=5376964
@param hmac_key [String] key for HMAC algorithm @param params [Hash] key/value pairs to calculate merchant signature @return [String] HMAC SHA-256 Base64 signature encoded
# File lib/adyen_hpp_hmac_calculator.rb, line 41 def self.calculate hmac_key, params self.new(hmac_key).calculate params end
new(hmac_key)
click to toggle source
# File lib/adyen_hpp_hmac_calculator.rb, line 21 def initialize hmac_key @hmac_key = hmac_key.clone.freeze end
Public Instance Methods
calculate(params)
click to toggle source
Calculates merchant signature for specified params using hmac key specified on initialization
@param params [Hash] key/value pairs to calculate merchant signature @return [String] HMAC SHA-256 Base64 signature encoded
# File lib/adyen_hpp_hmac_calculator.rb, line 29 def calculate params merchant_string = generate_merchant_string params hmac = hmac_calculator.calculate merchant_string base64_encode hmac end
Private Instance Methods
base64_encode(string)
click to toggle source
# File lib/adyen_hpp_hmac_calculator.rb, line 55 def base64_encode string Base64.strict_encode64 string end
generate_merchant_string(params)
click to toggle source
# File lib/adyen_hpp_hmac_calculator.rb, line 47 def generate_merchant_string params MerchantStringGenerator.generate params end
hmac_calculator()
click to toggle source
# File lib/adyen_hpp_hmac_calculator.rb, line 51 def hmac_calculator @hmac_calculator ||= HmacCalculator.new @hmac_key end