2017-11-03 11 views
0

現時点では、Amazon MWSのHMACの生成に少し苦労しています。Amazon MWS - HMACの生成方法を理解していません

私はそれがどのように動作するのか理解していると思いました。

私はScratchpadでリクエストを生成しました。 ScratchpadはSHA 256 HMACとBase64 HMACに署名する文字列を表示します。 署名する文字列は、docuで説明されているように4行から構成されます。

HMACのためのいくつかのOnlineconverterがあります。私が試した:

https://www.freeformatter.com/hmac-generator.html

https://codebeautify.org/hmac-generator

私はスクラッチパッド(4行)を生成した署名文字列を変換すると、私は、スクラッチパッドを生成し、他のSHA 256 HMACを得ます。

Base64用のOnlineconverterもいくつかあります。私が試した:

https://www.freeformatter.com/base64-encoder.html

https://www.base64encode.org

を私はスクラッチパッドが生成さSHA 256 HMACを変換すると、私はその後、Scrathpadが生成され、他のBase64で文字列を取得します。

これは私を混乱させます。私は何を理解していないのですか?

その他のポイント:

後、私は私がPOST GETしていない使用したいと思います。私はこの権利を得ますか?GETのために署名する文字列は、後で実行されるように4行で1行ではなくてはなりませんか?それが私が文書を理解する方法です。

私はこれらのリンクを使用:私自身の質問に答えるために http://docs.developer.amazonservices.com/en_US/dev_guide/DG_QueryString.html http://docs.developer.amazonservices.com/en_US/dev_guide/DG_SigningQueryRequest.html https://mws.amazonservices.com/scratchpad/index.html

+0

ここには、RFC2104に準拠した(MWSのコンテキストでの)HMAC署名実装があります。 https://github.com/integration-technology/amazon-mws-orders/blob/042e8cd5b10588a30150222bf9c91faf4f130b3c/src/main/java/com/amazonservices/mws/client/MwsUtl.java#L246-L270 ます。https:/ /github.com/czpython/python-amazon-mws/blob/master/mws/mws.py#L225-L229 https://github.com/eibbors/mws-js/blob/master/lib/mws。 js#L114-L151 https://github.com/CPIGroup/phpAmazonMWS/blob/ddede7112bba41b9e6d837ec02b2d1309cd2f720/includes/classes/AmazonCore.php#L897-L922 –

+0

なぜHMACを生成しようとしていますか?スクラッチパッドを使用するには、販売者ID、アクセスキー、および秘密鍵(APIエンドポイントに応じて任意のリクエストデータ)が必要です。 Sendボタンを押した後、ScratchpadがHMACを計算します。何か不足していますか? –

+0

MWSを使用するプログラムを作成する必要があり、Javaや例を見つけるための言語を使用できません。だから私は最初にそれがどのように動作するのか理解したかった。 – nuely

答えて

0

を。


OnlineconverterとSHA256を生成します。

私は問題がLFであると仮定します。 Onlineconverterに問題があるかもしれません。たぶん彼らはCRLFを使うでしょう。 OnlineconvertersであなたのSHA256をチェックしようとしないでください。


OnlineconverterとBASE64の生成:スクラッチパッドを示し

SHA256を使用すると、BASE64で変換した値ではありません。 SHA256の16進値を変換する必要があります。


GETに署名するためのクエリ:

あなたがGETを使用する場合は、署名するクエリは、POSTのために署名するために、クエリのように見えるように持っています。また、4行。 GETでPOSTを交換するだけです。

関連する問題