2016-11-22 159 views
0

我正在使用Amazon API在iOS上編寫應用程序以顯示產品的類別列表。亞馬遜產品廣告API登錄

我遇到的問題是在簽署API。我在印度使用廣告API,並且正在使用便箋簿來測試api調用。

對於亞馬遜的劃痕產生的無符號的URL我:

http://webservices.amazon.in/onca/xml?Service=AWSECommerceService&Operation=BrowseNodeLookup&SubscriptionId=IAMHIDINGTHISINFO&AssociateTag=HIDINGTHIS-XX&BrowseNodeId=1350388031&ResponseGroup=BrowseNodeInfo 

對於簽約我:

http://webservices.amazon.in/onca/xml?AWSAccessKeyId= IAMHIDINGTHISINFO&AssociateTag=HIDINGTHIS-XX&BrowseNodeId=1350388031&Operation=BrowseNodeLookup&ResponseGroup=BrowseNodeInfo&Service=AWSECommerceService&Timestamp=2016-11-21T16%3A06%3A05.000Z&Signature=LETSSAYITGENERATEDTHIS 

繼簽署亞馬遜的文檔的步驟,我得到的最終規範形式如下:

GET webservices.amazon.co.in/onca/xml AWSAccessKeyId= IAMHIDINGTHISINFO&AssociateTag=HIDINGTHIS-XX&BrowseNodeId=1350388031&Operation=BrowseNodeLookup&ResponseGroup=BrowseNodeInfo&Service=AWSECommerceService&Timestamp=2016-11-20T22%3A55%3A41.000Z 

哪一個正在遵循他們的步驟。我在GET\nwebservices.amazon.co.in\n/onca/xml\n的前面加上字節順序,然後用HMAC SHA-256獲得簽名。儘管如此,我得到了一個不正確的簽名生成。我知道我使用的哈希算法是正確的,因爲當我散列他們在文檔中給出的示例時,它會生成確切的哈希(我正在使用iOS SDK中的AWSSignatureSignerUtility)。

有人可以告訴我,如果我不應該預先GET\nwebservices.amazon.co.in\n/onca/xml\n或如果它應該是別的東西?

+0

我主要是需要搞清楚我的規範形式是否正確與否幫助,我的散列正常工作按他們的文檔,但我不確定我簽名的規範形式是否正確。 – Kunal

回答

0

剛纔在Signed Requests Helper的幫助下發現了這個問題。

很顯然,我本來是要在前面加上

GET\nwebservices.amazon.in\n/onca/xml\n 

,而不是

GET\nwebservices.amazon.co.in\n/onca/xml\n