0

我一直在亞馬遜的Producct Advertising API工作一段時間。我在我的應用程序中成功整合了這個功能。但唯一剩下的就是購物車創建操作,該操作需要生成HMAC-SHA256簽名並用於所有要執行的購物車操作。我已經閱讀了關於這個問題的文檔和所有可用的線索,但對我而言似乎沒有任何工作。紅寶石方式爲亞馬遜產品廣告API生成HMAC-SHA256簽名

我甚至經歷了多個寶石,但沒有人提供瞭解決方案。我目前使用Vacuum寶石與Ruby 2.2.3,Rails 4.2.5。

問題:我主要需要了解如何產生這個HMAC簽名這樣我就可以在所有的購物車相關的操作使用。

回答

1

HMAC簽名可以使用Ruby的OpenSSL支持創建。這必須是Base64編碼,以便它可以通過電線發送。其基本前提是如下

require 'openssl' 
require 'Base64' 

key = "your-secret-access-key" 
data = "data you want signed" 

signature = Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), key, data)).strip() 

適應上述您的需求,該key是你的AWS訪問密鑰,data是您要發送請求的字符串表示,如所描述here

如何構建data字符串是實現特定的,但常用的方法是從實際的請求對象(最常見的是Net::HTTP:HTTPRequest)構建規範字符串。希望這可以幫助。