Создание подписи для amazon fps

Я работаю над интеграцией Amazon FPS в веб-сайт моей компании, но, похоже, у меня проблемы с созданием правильной подписи. Вот что говорится в документации Amazon: http://docs.amazonwebservices.com/AmazonFPS/latest/FPSAdvancedGuide/APPNDX_GeneratingaSignature.html

Вот моя строка, которую я хеширую:

GET\nfps.sandbox.amazonaws.com\n/\nAction=Reserve&AWSAccessKeyId=REMOVED&CallerDescription=Reserve&CallerReference=CallerReference05&RecipientTokenId=254656Example83987&SenderTokenId=553IPMACGAZ2J4N1L7BJ3UMNRFTQU4V9NT4RJCTVADDJKXQ6L1ZAKSIUNPIRTTI1&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-09-12T22%3A29%3A07.623Z&TransactionAmount.CurrencyCode=USD&TransactionAmount.Value=1.00&Version=2010-08-28

и вот HTTP-запрос, который я отправляю:

https://fps.sandbox.amazonaws.com?Action=Reserve&AWSAccessKeyId=REMOVED&CallerDescription=Reserve&CallerReference=CallerReference05&RecipientTokenId=254656Example83987&SenderTokenId=553IPMACGAZ2J4N1L7BJ3UMNRFTQU4V9NT4RJCTVADDJKXQ6L1ZAKSIUNPIRTTI1&Signature=t5r%2BWmV9PdoOGfHhtwLJ5nJ8zo%2BIJL4uWB6MOMpkZLw%3D&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-09-12T22%3A29%3A07.623Z&TransactionAmount.CurrencyCode=USD&TransactionAmount.Value=1.00&Version=2010-08-28

Также вот точная ошибка, которую я получаю обратно:

SignatureDoesNotMatch The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details. RequestID - ac476abb-2bc6-4891-8854-e52cf33f8716

Я пишу это в coffeescript с бэкэндом node.js. Может ли кто-нибудь найти, что я делаю неправильно? Я могу опубликовать свой код, если это необходимо.


person koruptpaintbaler    schedule 12.09.2012    source источник


Ответы (2)


Я понял, что я делаю неправильно. Мои поля запроса не имели естественного порядка байтов. AWSAccessKey предшествует действию. Пример Amazon показал им, как я пытался это сделать, а не правильно.

person koruptpaintbaler    schedule 13.09.2012

Я написал небольшую библиотеку, чтобы помочь с подписанием запросов. возможно, это может быть вам полезно https://github.com/theRemix/aws_signature_utils_js

person theRemix    schedule 22.05.2014
comment
Привет, theRemix, рассмотрите возможность добавления примера использования, сообщения только со ссылками на самом деле не являются ответами и не добавляют ценности сайту. - person edi9999; 22.05.2014