附加評論
我知道這是一個月後,你已經有你的程序想通了,但如果你需要一些幫助,這些部件或其他人呢,我想我將包括我在沃爾瑪API上的以下信息。
1.您可能會考慮在ruby中構建一個方法,因爲它會與您的其他ruby程序更具互動性,這很困難,但是當我做這件事時,最困難的部分是包裝字符串在用SHA256字符串摘要簽名。所以我扔在一起的一些方法和它的作品:
pem = make_pem('PRIVATE KEY', encodedKeyBytes)
digest = OpenSSL::Digest::SHA256.new
pkey = OpenSSL::PKey::RSA.new(pem)
signature = pkey.sign(digest, stringToSign)
def make_pem(tag, der)
box tag, Base64.strict_encode64(der).scan(/.{1,64}/)
end
def box(tag, lines)
lines.unshift "-----BEGIN #{tag}-----"
lines.push "-----END #{tag}-----"
lines.join("\n")
end
它並不完美,但紅寶石並沒有真正具備的功能內置,你必須改變周圍它才能正常工作。如果這仍然不起作用,請隨時與我聯繫,但我開始使用它們提供的jar,並且我保證,當您每天使用不同的參數進行數千次不同的調用時,必須能夠找到點的失敗,如果它不是紅寶石,它會變得更難以處理和修復。
2/3。您已經回答說,這些需要包含在對API的每次調用中,除了不嘗試找到解決此問題的方法之外,我沒有其他任何要添加的內容,例如爲一批調用提交相同的時間戳。即使它可能在某個時間窗口內進行呼叫,沃爾瑪也會使用時間戳來確定哪個呼叫來自哪個呼叫,這對於他們的價格API等事情尤其重要。再次隨時給我發電子郵件的任何問題,我會嘗試在這裏迴應,但我不經常這個網站。