Hash MAC-Authentisierung in der Anfrage

Zum Schutz vor unbefugter Manipulation Ihrer Zahlungstransaktionen prüft das Computop Paygate mit Hilfe eines Hash Message Authentication Code (HMAC), ob Ihre Zahlungsanfrage echt ist und nicht manipuliert wurde. Dazu übergeben Sie bei jeder Transaktion im Parameter MAC einen HMAC-Wert an das Paygate.

Hintergrund: Im Gegensatz zum HMAC-Verfahren hat jedes Codierverfahen den Nachteil, dass es ein passendes Decodierverfahren gibt. Jeder, der den richtigen Schlüssel besitzt oder die Verschlüsselung knackt, kann die Daten lesen und manipulieren. Daher ist keine Verschlüsselungsmethode jemals 100% sicher. Beim Hash-Verfahren ist hingegen keine Dekodierung möglich, so dass ein Hash-Wert die Authentizität der Nachricht zweifelsfrei bestätigen kann.

Das Computop Paygate nutzt einen Hash Message Authentication Code (HMAC), um die Authentizität Ihrer Zahlungen zu prüfen. Dazu wird der MAC SHA-256-Algorithmus mit einer 32-stelligen Schlüssellänge (256 Bit) verwendet. Das zusätzliche Kennwort macht das HMAC-Verfahren besonders sicher.

Folgende Tabelle beschreibt, wie Sie die Hash-Werte für Ihre Zahlung erzeugen:

Schritt

Aufgabe

1

Melden Sie sie bitte beim Computop Helpdesk an, der Ihnen das Hash-Kennwort mitteilt.

2

Der HMAC-Wert wird mit Hilfe des Kennworts und mehrerer Parameterwerte berechnet. Zur Berechnung werden die Parameter PayID, TransID, MerchantID, Amount and Currency verwendet und mit Sternchen getrennt:

PayID*TransID*MerchantID*Amount*Currency 

KeyWertAnmerkungen
PayIDReferenzierte PayIDKann leer sein, z.B. zum Erstellen eines anfänglichen Zahlungsvorgangs oder einer Risikomanagement-Anfrage; wird bei nachfolgenden Anfragen wie Erfassung/Erstattung verwendet.
TransIDIhre Transaktions-ID zur Referenzierung / Identifikation Ihrer AnfrageIhre eigene Referenz zur Identifikation jeder Anfrage / jedes Zahlungsvorgangs.
MerchantIDIhre von Computop vergebene MerchantIDIhre MerchantID zur Identifikation dieser Anfrage.
AmountBetrag in der kleinsten Währungseinheit, z.B.123=1,23Betrag dieser Anfrage; kann leer sein, falls der Wert z.B. für Statusanfragen nicht verwendet wird.
CurrencyWährung des Zahlungsvorgangs gemäß ISO 4217, z.B. EUR, USD, GBPWährung dieser Anfrage; kann leer sein, falls der Wert z.B. für Statusanfragen nicht verwendet wird.
YourHmacPasswortIhr von Computop zugeteiltes HMAC-KennwortIhr zu einer bestimmten MID zugeordnetes HMAC-Kennwort; falls Sie mehrere MIDs haben, haben Sie auch verschiedene HMAC-Kennwörter.

Hinweis: Falls eine Transaktion nicht alle diese Parameter unterstützt, können Sie die fehlenden Werte einfach weglassen.

Beispielsweise liegt bei der ersten Transaktion noch keine PayID vor, sodass Sie diese nicht übertragen müssen. Die PayID ist Bestandteil der Hash-Berechnung bei nachfolgenden Transaktionen:

Beispiele zur MAC-BerechnungFormelErgebnis
ohne PayID, mit Betrag/Währung
HmacSHA256("*TID-4453732122167114558*YourMerchantID*1234*EUR", "mySecret")
0522F1AF6A88597D396A5A877499F3C9087EBCF103B1B47D7E4D13421CC7EA36
ohne PayID, ohne TransID, mit Betrag/WährungHmacSHA256("**YourMerchantID*1234*EUR", "mySecret")1427748D983478080F22BE0878BD99AF7BE3E1C4B19C07AFD1B372BA552ADC08
mit PayID, ohne Betrag/WährungHmacSHA256("fe3f002e19814eea8aa733ec4fdacafe*TID-4453732122167114558*YourMerchantID**", "mySecret")6ED0CFDCE92CE13399552C4221B44E5B036DE943D7F84E33D1E73DF9871AE7C8

3

Verwenden Sie den HMAC SHA-256-Algorithmus, den fast alle Programmiersprachen unterstützen, um den Hash-Wert mit dem Kennwort und den Parameterwerten zu berechnen.

4

Verwenden Sie den Parameter MAC, um den hexadezimal codierten Hash-Wert bei jeder Transaktion im codierten Datenfeld an das Paygate zu übertragen.

 

Ihre Implementierung prüfen

Eine einfache Anwendung zur Überprüfung der Umsetzung Ihrer HMAC-Berechnung finden Sie hier: https://computop.com/paygate-test

Mit der Anwendung können Sie mit unserer Paygate API spielen – verwenden Sie einfach Ihre MerchantID und Ihr Blowfish-Kennwort, die Sie bereits erhalten haben.


Hinweis: Beachten Sie, dass der Parameter MAC für alle nachfolgenden Transaktionen (z. B. Buchung, Gutschrift) obligatorisch ist, wenn er mit der ersten Transaktion (z. B. Autorisierung) übertragen wurde.

Wichtig: Das Paygate lehnt Transaktionen mit falschen oder fehlenden HMAC-Werten sofort ohne weitere Verarbeitung ab, weil das ein Hinweis auf Hackerangriffe ist. Deshalb erscheinen Transaktionen, die das Paygate mit den Fehlercodes 20100044 oder 20120044 ablehnt, nicht in Computop Analytics.

Wichtig: Die MerchantID, welche in der HMAC Berechnung verwendet wird, muss identisch mit der MerchantID im unverschlüsselten Request sein (Parameter MerchantID). Bei der Verarbeitung der "MerchantID" muss die Groß- und Kleinschreibung beachten werden. "YourMerchantId" und "YourMerchantID" dürfen nicht vermischt werden.


Listing mit HMAC-Beispielen

Anfrage ohne PayID:

MerchantID=YourMerchantID&TransID=100000001&Amount=11&Currency=EUR&URLSuccess=https://www.shop.de/ok.html&URLFailure=https://www.shop.de/failed.html&OrderDesc=My purchase

String zur MAC-Erzeugung:

*100000001*YourMerchantID*11*EUR

Anfrage mit MAC-Parameter (Secret: "mySecret"):

MerchantID=YourMerchantID&TransID=100000001&Amount=11&Currency=EUR&URLSuccess=https://www.shop.de/ok.html&URLFailure=https://www.shop.de/failed.html&OrderDesc=My purchase&MAC=0A125E070BD4D7AE614BCB2D5A48FB80E1C4441E262A1024AE7F2A1819052A6F

Anfrage ohne TransID:

MerchantID=YourMerchantID&PayID=8ee4e922c39446ac9ee66095a4a4b475&Amount=100&Currency=USD

String zur MAC-Erzeugung:

8ee4e922c39446ac9ee66095a4a4b475**YourMerchantID*100*USD

Anfrage mit MAC-Parameter (Secret: "mySecret"):

MerchantID=YourMerchantID&PayID=8ee4e922c39446ac9ee66095a4a4b475&Amount=100&Currency=USD&MAC=4016FD6C705399A024D8B4CCB0018814E05A5490DDEBEC04909E6DA138CB5AF8



  • No labels