· 4 years ago · May 25, 2021, 09:24 AM
1 signature_text = """host: #{host}
2date: #{date}
3(request-target): post #{@api_version + @payment_endpoint}
4digest: #{"SHA-256=" + digest_64}
5v-c-merchant-id: #{mymerchantid}"""
6
7 secret_key = "ryDW4H+AQkLOb9PXutdX5ZJ1MObgeXV/RCoMWVhvvsU="
8
9 decoded_secret_key = Base64.decode64(secret_key)
10
11 signature_plain = OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), decoded_secret_key, signature_text)
12
13 signature = Base64.encode64(signature_plain)
14
15 sig = 'keyid="#{key}", algorithm="HmacSHA256", headers="host date (request-target) v-c-merchant-id", signature="#{signature}"'
16
17 headers = {
18 "v-c-merchant-id" => "",
19 "date" => "", #The date in RFC1123 format: Thu, 18 Jul 2019 00:18:03 GMT
20 "Host" => host,
21 "Digest" => "SHA-256=" + digest_64,
22 "Signature" => sig,
23 "Content-Type" => "application/json",
24 }