2017-11-03 7 views
0

Im Moment habe ich ein wenig mit der Erzeugung von HMAC für Amazon MWS kämpfen.Amazon MWS - Ich verstehe nicht, wie man HMAC generiert

Ich dachte, ich verstehe, wie es funktioniert.

Mit dem Scratchpad habe ich eine Anfrage generiert. Scratchpad zeigt die Zeichenkette und auch die SHA 256 HMAC und die Base64 HMAC. Die Zeichenkette besteht aus 4 Zeilen wie in der Doku beschrieben.

Es gibt mehrere Online-Konverter für HMAC. Ich habe versucht:

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

https://codebeautify.org/hmac-generator

Wenn ich die Zeichenfolge konvertieren zu unterzeichnen, die Scratchpad erzeugt (die 4 Zeilen), erhalte ich eine andere SHA 256 HMAC dann Scratchpad erzeugt.

Auch gibt es mehrere Onlineconverter für Base64. Ich habe versucht:

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

https://www.base64encode.org

Wenn ich der SHA 256 HMAC wandeln, das Scratchpad erzeugt, erhalte ich ein anderes Base64-String dann Scrathpad erzeugt.

Das verwirrt mich. Was ich nicht verstehe?

Andere Punkt:

Später denke ich, das ich verwenden möchte POST GET und nicht. Habe ich richtig verstanden, dass die Zeichenkette für GET auch in 4 Zeilen stehen muss und nicht in einer Zeile, wie sie später ausgeführt würde? So verstehe ich die Doku.

benutzte ich diese Links: 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

Hier sind ein paar RFC 2104 konforme HMAC-Signatur-Implementierungen (im Kontext von MWS), die Ihnen helfen könnten. 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

Warum versuchen Sie, den HMAC zu generieren? Um Scratchpad zu verwenden, benötigen Sie lediglich Ihre Verkäufer-ID, den Zugriffsschlüssel und den geheimen Schlüssel (und alle Anfragedaten abhängig vom API-Endpunkt). Scratchpad berechnete den HMAC für Sie, nachdem Sie den Senden-Knopf gedrückt haben. Fehle ich etwas? –

+0

Ich muss ein Programm schreiben, das MWS verwendet und kann Java oder irgendeine Sprache nicht verwenden, für die Sie Beispiele finden können. Also zuerst wollte ich verstehen, wie es funktioniert. – nuely

Antwort

0

Zu meiner eigenen Fragen zu beantworten.


generieren SHA256 mit einem Onlineconverter:

nehme ich an das Problem der LF ist. Der Onlinekonverter hat vielleicht ein Problem damit. Vielleicht benutzen sie CRLF. Versuchen Sie besser nicht, Ihre SHA256 mit Onlineconverter zu überprüfen.


generieren base64 mit einem Onlineconverter:

Die SHA256 Scratchpad zeigt ist nicht der Wert, den Sie mit Base64 konvertieren. Sie müssen den Hex-Wert des SHA256 konvertieren.


Abfrage mit GET zu unterschreiben:

Wenn Sie GET verwenden möchten, die Abfrage zu unterschreiben hat, wie die Abfrage für POST zu unterzeichnen zu suchen. Auch die vier Zeilen. Tauschen Sie POST nur mit GET.