Um Ihre Zahlungen vor unbefugten Änderungen zu schützen, müssen Sie die Schritte auf dieser Seite befolgen, um einen Sicherheits-Hash für die Website zu berechnen, der in ein Feld namens sitesecurity auf Ihrem server-seitigen Zahlungsformular. Der Hash wird aus einer Auswahl bestimmter Felder generiert, darunter ein Passwort, das mit unserem Support-Team vereinbart wird. Bei der Erstellung des Hashes müssen Sie sicherstellen, dass Sie die in Ihrer eigenen Serversitzung vorhandenen Werte verwenden und nicht die eingestellten Werte.
Brauche ich das?
Die auf dieser Seite dokumentierte Konfiguration ist für den folgenden Anwendungsfall geeignet:
- Neue Integrationen mit Payment Pages
Dadurch wird verhindert, dass der Kunde wichtige Aspekte der Transaktion (z. B. den Betrag und Währung) ändern kann, bevor die Anfrage Autorisierung an uns übermittelt wird.
Wie es funktioniert
Wir lesen die Felder in Ihrer Anfrage vor der Verarbeitung einer Autorisierung und generieren den Hash auf unseren Servern neu. Bei gültigen Anfragen muss der von uns generierte Sicherheits-Hash mit dem in Ihrer Anfrage angegebenen Wert übereinstimmen. Dies zeigt an, dass die Anfrage nicht durch den Kunden oder einen Dritten geändert worden ist.
Wenn jemand versucht, den Wert eines der von Ihnen angegebenen Felder zu ändern, stimmt der Hash, den wir auf unseren Servern berechnen, nicht mit dem in der Anfrage übermittelten Hash überein. In diesem Fall wird die Zahlung nicht abgeschlossen und dem Kunden wird eine Fehlermeldung angezeigt.
Bevor Sie fortfahren, kontaktieren Sie bitte unser Support-Team
- Unser Support-Team wird die Sicherheit Ihrer Website auf Website-Referenz aktivieren und Sie beraten, wie Sie Ihr Konto am besten konfigurieren.
- Im Rahmen dieses Prozesses müssen Sie sich auf die Felder einigen, die in den generierten Hash aufgenommen werden sollen (die Liste der Standardfelder finden Sie in der folgenden Tabelle).
- Außerdem müssen Sie mit unserem Support-Team ein Passwort vereinbaren, das bei der Erstellung des Hashes ebenfalls berücksichtigt wird. Wenn Sie dieses Kennwort ändern müssen, wenden Sie sich bitte an den Support, um dies zu veranlassen.
Geben Sie das Sicherheitspasswort Ihrer Website niemals an Dritte weiter. Bewahren Sie keine Kopien dieses Passworts auf.
Wenn die Sicherheit der Website aktiviert ist, werden die folgenden Standardfelder bei der Erstellung des Hashes verwendet:
Hinweis: Unterhalb dieser Tabelle finden Sie ein Beispiel für die Erstellung des Hashes.
Bestellung | Name des Feldes | Typ | Länge | Beschreibung |
1 | currencyiso3a | Alpha | 3 |
Die Währung , in der die Transaktion abgewickelt werden soll. Klicken Sie hier für eine vollständige Liste der verfügbaren Währungen. |
2 | mainamount | Numerisch | 14 |
Der Betrag der Transaktion in Haupteinheiten, wobei ein Dezimalpunkt zur Kennzeichnung von Dezimalwerten verwendet wird, so dass €10 als 10.00 zurückgegeben wird.
Achten Sie darauf, dieses Feld nicht zu verwechseln mit baseamount, die wir in unserer API-Dokumentation ausgiebig verwenden, die stattdessen in Basiseinheiten formatiert ist und auf den Dezimalpunkt verzichtet. |
3 | sitereference |
Alphanumerisch einschließlich Unterstrich |
50 | Die eindeutige Trust Payments Website-Referenz , die sich auf Ihr individuelles Konto bei uns bezieht. Wenn Sie Ihre Website-Referenz nicht kennen, wenden Sie sich bitte an unser Support-Team. |
4 | settlestatus | Numerisch | 3 |
Ein numerischer Wert, der zur Definition der Anweisung Abrechnung verwendet wird. Wenn Sie hier keinen Wert angeben, wird die settlestatus ist standardmäßig auf "0" eingestellt. Klicken Sie hier für eine vollständige Liste der settlestatus Werte. |
5 | settleduedate | Datum JJJJ-MM-TT | 10 | Sie können dieses Feld in der Anfrage ausfüllen, um das Datum anzugeben, an dem Sie Ihre Transaktion abrechnen möchten. Dieses Datum muss innerhalb von 7 Tagen nach dem Datum von Autorisierung liegen. Dieses Datum wird in der Antwort zurückgegeben. |
6 | authmethod | Alpha | 5 |
Entweder: |
7 | paypaladdressoverride | Numerisch | 1 | Gilt nur für Payment Pages Integrationen: Legen Sie fest, wie die Lieferadresse bei der Verarbeitung von Zahlungen mit PayPal eingegeben werden soll. |
8 | strequiredfields | Alphanumerisch | Nicht definiert |
Geben Sie Felder an, die vom Kunden eingegeben werden müssen. Mehrere Felder werden unterstützt. Wenn der Kunde nicht alle erforderlichen Felder ausfüllt oder ungültige Informationen eingibt, wird die Zahlung nicht abgeschlossen. |
9 | version | Numerisch | 1 | Gilt nur für Payment Pages Integrationen: Dieser Wert wird auf 2 gesetzt. |
10 | stprofile | Alphanumerisch | Nicht definiert | Gilt nur für Payment Pages Integrationen: Wird verwendet, um das Styling für die Darstellung von Payment Pages festzulegen. Bei Verwendung des Standardaussehens wird dies auf "" gesetzt.default" (Klicken Sie hier für weitere Informationen über Profile). |
11 | ruleidentifier | Alphanumerisch mit Bindestrichen | Nicht definiert |
Sie können eindeutige Bezeichner für die auf diese Anfrage anzuwendenden Regeln angeben (z. B. STR-1). |
12 | stdefaultprofile | Alphanumerisch | Nicht definiert |
Gilt nur für Payment Pages Integrationen: Wir bieten eine Reihe von Standardprofilen, die auf jede Sitzung angewendet werden können. |
13 | successfulurlredirect | URL | Nicht definiert | Gilt nur für Payment Pages Integrationen: Dies ist die URL, an die der Browser des Kunden nach einer erfolgreichen Transaktion weitergeleitet wird, wenn STR-6 aktiviert ist. |
14 | declinedurlredirect | URL | Nicht definiert | Gilt nur für Payment Pages Integrationen: Dies ist die URL, zu der der Browser des Kunden nach einer abgelehnten Transaktion umgeleitet wird, wenn STR-7 aktiviert ist. |
15 | successfulurlnotification | URL | Nicht definiert | Dies ist die URL, an die die Benachrichtigung nach einer erfolgreichen Transaktion gesendet wird, wenn STR-8 aktiviert ist. |
16 | declinedurlnotification | URL | Nicht definiert | Dies ist die URL, an die die Benachrichtigung nach einer abgelehnten Transaktion gesendet wird, wenn STR-9 aktiviert ist. |
17 | merchantemail | E-Mail-Adresse | 255 |
Dies ist die E-Mail-Adresse, an die alle E-Mail-Benachrichtigungen des Händlers gesendet werden, wenn STR-4 und/oder STR-5 aktiviert sind.
Maximale Länge von 255 (maximal 64 Zeichen vor dem "@"-Symbol). |
18 | allurlnotification | URL | Nicht definiert | Dies ist die URL, an die die Benachrichtigung nach jeder Anfrage gesendet wird, wenn STR-10 aktiviert ist. |
19 | stextraurlnotifyfields | Alphanumerisch | Nicht definiert | Dies wird verwendet, um zusätzliche Felder in URL-Benachrichtigungen. |
20 | stextraurlredirectfields | Alphanumerisch | Nicht definiert | Dies wird verwendet, um zusätzliche Felder in URL-Weiterleitungen aufzunehmen. |
21 | credentialsonfile | Numerisch | 1 |
Dies ist erforderlich für Visa und Mastercard Transaktionen, bei denen der Händler die Funktion Daten Hinterlegt (CoF) nutzt. Wenn die Transaktion nicht für CoF in Frage kommt oder Sie die Anmeldeinformationen nicht für zukünftige Transaktionen verwenden möchten, können Sie dieses Feld auslassen.
Die zulässigen Werte für dieses Feld sind 0, 1 und 2. 0 - Keine Berechtigung für CoF, oder keine Absicht, die Berechtigungsnachweise zu einem späteren Zeitpunkt wieder zu verwenden. 1 - Transaktionsnachweise als verfügbar für zukünftige Verwendung gekennzeichnet. 2 - Zahlung mit zuvor gespeicherten Anmeldeinformationen. Die obigen Angaben gelten für Händler mit einem Trust Payments Acquiring-Konto. Wenn Sie eine andere Acquiring-Bank verwenden, müssen Sie unser Support-Team kontaktieren, um zu prüfen, ob diese Funktion unterstützt wird, bevor Sie fortfahren. |
22 |
requesttypedescriptions |
Liste |
Liste der requesttypedescriptions in dem Antrag eingereicht.
Nur anwendbar bei Verwendung von Erweitertes Post. |
|
23 | sitesecuritytimestamp | Datum JJJJ-MM-TT hh:mm:ss |
(Erforderlich im Hash - muss auch im Antrag angegeben werden) Möglichst genaue Angabe des Zeitstempels, der angibt, wann der Zahlungsvorgang des Kunden eingeleitet wurde. Der Kunde hat ab dem angegebenen Zeitpunkt 3 Stunden Zeit, um die Zahlung abzuschließen.
Zusätzliche Überlegungen:
|
|
24 | password | Alphanumerisch einschließlich Symbole | 255 |
(im Hash erforderlich - muss NICHT in der Anfrage angegeben werden) Dies ist das Sicherheitspasswort für die Website, wie mit unserem Support-Team vereinbart.
Gültige Zeichen:
|
Wenn Sie Felder aus dieser Liste hinzufügen oder entfernen möchten, wenden Sie sich bitte an unser Support-Team. Wenn Sie ein Feld in Ihren generierten Hash aufnehmen, kann dieses Feld weder vom Kunden noch von einem unbefugten Dritten geändert werden. Wir empfehlen, so viele eindeutige Felder wie möglich aufzunehmen. Wir unterstützen die Aufnahme von benutzerdefinierten Feldern in Ihre Liste der vorgesehenen Felder.
Sie dürfen keine Felder einfügen, die der Kunde nach dem Absenden des Beitrags ändern kann, z. B. in den meisten Fällen Name, Rechnungs- und Lieferdaten. Dies kann dazu führen, dass rechtmäßige Transaktionen nicht bearbeitet werden können.
Die IP-Adresse des Kunden kann sich während der Bearbeitung einer Transaktion ändern, insbesondere wenn er von einem mobilen Gerät aus surft. Aus diesem Grund empfehlen wir, dieses Feld nicht als eines der von Ihnen festgelegten Felder zu verwenden.
Beispiel für einen Durchgang
Klicken Sie auf die Überschriften unten, um die einzelnen Schritte zu erweitern.
Fügen Sie die Werte der angegebenen Felder in der oben gezeigten Reihenfolge. Nehmen wir zum Beispiel eine Anfrage mit den folgenden Feldern:
currencyiso3a = GBP
mainamount = 100.00
sitereference = test_site12345
sitesecuritytimestamp = 2019-05-28 14:22:37
password = PASSWORD
In diesem Beispiel würde die folgende Zeichenkette erzeugt werden:
GBP100.00test_site123452019-05-28 14:22:37PASSWORD
(Alle leeren Felder werden in der Hash nicht berücksichtigt)
Achten Sie beim Anhängen der Feldwerte darauf, dass keine Leerzeichen in der Zeichenkette ausgelassen werden.
Zeitstempel für die Sicherheit der Website
Dieser Zeitstempel sollte so genau wie möglich den Zeitpunkt wiedergeben, zu dem der Kunde seine Zahlungssitzung beginnt. (Dieser Zeitstempelwert darf NICHT in der Zukunft liegen)
Der Wert in diesem Feld muss im Format JJJJ-MM-TT hh:mm:ss angegeben werden.
Der Zeitstempel muss in der UTC-Zeitzone angegeben werden. (z. B. "2019-05-28 14:22:37")
Der Kunde hat 3 Stunden ab dem angegebenen Zeitpunkt, um die Transaktion abzuschließen, sonst werden wir den Antrag ablehnen.
Reihenfolge der Felder
Bei der Erstellung des Hashes müssen die Felder in der oben aufgeführten Reihenfolge sein. Wenn die Felder nicht in der richtigen Reihenfolge sind, schlägt die Anfrage fehl.
Die Reihenfolge, in der die Felder gehasht werden, kann bei Bedarf geändert werden. Bitte wenden Sie sich an das Support-Team, wenn Sie Hilfe benötigen.
Die sitesecuritytimestamp und password Felder muss sind immer die letzten beiden Felder in der Zeichenkette, die zur Erzeugung des Hash verwendet wird. Sie können nicht zwischen den anderen Feldern neu positioniert oder ganz entfernt werden.
Felder mit mehreren Werten
Wenn ein Feld in der Hash-Datei mehrere Werte enthält, werden diese Werte in der Reihenfolge der POST-Übertragung aneinandergereiht.
Beachten Sie die folgenden zusätzlichen Felder:
ruleidentifier=STR-7&ruleidentifier=STR-6
Wenn sie in die oben erzeugte Zeichenfolge eingefügt wird, wird sie zu:
GBP100.00test_site12345STR-7STR-62019-05-28 14:22:37PASSWORD
Sie müssen Ihr System so einrichten, dass der Hash mit dem Algorithmus SHA-256 erzeugt wird. Bei der Generierung des Hashwerts werden nur die Feldwerte verwendet.
Beispiel-String:
GBP100.00test_site123452019-05-28 14:22:37PASSWORD
Beim Hashing mit SHA-256 ergibt sich der folgende Hash:
d08761660c77014d2a41d7dee54c2160863e2e560388601b71bae059d7f456ca
Sie können die folgenden Code-Beispiele als Referenz für die Erstellung Ihres Hashes verwenden:
#!/usr/bin/python
import hashlib
stringToHash= "GBP100.00test_site123452019-05-28 14:22:37PASSWORD"
print hashlib.sha256(stringToHash).hexdigest()
<?php
echo hash("sha256", "GBP100.00test_site123452019-05-28 14:22:37PASSWORD");
?>
import java.math.BigInteger;
import java.security.MessageDigest;
public class mysha256 {
public static void main(String args[]) throws Exception {
String stringToHash = "GBP100.00test_site123452019-05-28 14:22:37PASSWORD";
MessageDigest digestObj = MessageDigest.getInstance("SHA-256");
digestObj.update(stringToHash.getBytes("UTF-8"));
String merchantHash = String.format("%064x",new BigInteger(1,digestObj.digest()));
System.out.println(merchantHash);
}
}
#!/usr/bin/perl
use Digest::SHA qw(sha256_hex);
$stringToHash = "GBP100.00test_site123452019-05-28 14:22:37PASSWORD";
$merchantHash = sha256_hex($stringToHash);
print $merchantHash;
Stellen Sie sicher, dass Ihr System den Hash in Kleinbuchstaben überträgt
Andernfalls könnte der Hash ungültig werden und legitime Transaktionen verhindern.
Beispiel:
hd08761660c77014d2a41d7dee54c2160863e2e560388601b71bae059d7f456ca
Dies ist der endgültige Wert, der in der sitesecurity Feld für diese Transaktion.
Es ist wichtig, dass dem erzeugten Hash der Buchstabe "h" vorangestellt wird.
Damit soll sichergestellt werden, dass die neueste Version der Sicherheitsfunktion der Website verwendet wird.
Andernfalls könnte der Hash ungültig werden und rechtmäßige Transaktionen verhindert werden.
Sie müssen sicherstellen, dass Sie niemals das rohe (nicht gehashte) Sicherheitspasswort der Website POSTEN, da dies ein gemeinsames Geheimnis zwischen Ihnen und Trust Payments ist.
Ratschläge zur Fehlerbehebung für gehostete Payment Pages
Wenn Sie Ihre Website-Sicherheitsimplementierung testen und Payment Pages die Fehlermeldung "Bei Ihrer Zahlung ist ein Problem aufgetreten - Ungültige Angaben" (Es gab ein Problem mit Ihrer Zahlung - Ungültige Details) zurückgibt, bedeutet dies, dass es eine Diskrepanz zwischen dem von Ihrem System generierten Hash und dem von Trust Payments erwarteten Wert gibt. Bitte stellen Sie sicher, dass Sie alle oben genannten Anweisungen befolgt haben. Wenn Sie immer noch Probleme haben, wenden Sie sich bitte an unser Support-Team, um Hilfe zu erhalten.