Om uw betalingen te beschermen tegen ongeoorloofde wijzigingen, moet u de stappen op deze pagina volgen om een site security hash te berekenen, die in een veld met de naam sitesecurity op uw server-side betalingsformulier. De hash wordt gegenereerd uit een selectie van aangewezen velden, inclusief een wachtwoord dat wordt overeengekomen met ons Support Team. Bij het samenstellen van de hash moet u ervoor zorgen dat u de waarden gebruikt die in uw eigen serversessie aanwezig zijn en niet de geposte waarden.
Heb ik het nodig?
De configuratie op deze pagina is geschikt voor het volgende gebruik:
- Nieuwe integraties met Payment Pages
Dit voorkomt dat de klant belangrijke aspecten van de transactie (bv. het bedrag en Munt) wijzigt voordat het autorisatie verzoek bij ons is ingediend.
Hoe het werkt
Wij lezen de velden in uw verzoek vóór de verwerking van een autorisatie en genereren de hash opnieuw op onze servers. Voor geldige verzoeken moet de site security hash die wij genereren overeenkomen met de waarde die in uw verzoek is opgegeven. Dit geeft aan dat het verzoek niet is gewijzigd door de klant of een derde partij.
Als iemand probeert de waarde van een van de aangewezen velden te wijzigen, zal de hash die wij op onze servers berekenen niet overeenkomen met de hash die in het verzoek werd ingediend. In dat geval wordt de betaling niet voltooid en krijgt de klant een foutmelding.
Alvorens verder te gaan, neem contact op met ons Support Team
- Ons Support Team zal de site beveiliging op uw site referentie inschakelen en u adviseren over hoe u uw account het beste kunt configureren.
- Als onderdeel van dit proces moet u overeenstemming bereiken over de aangewezen velden die in de gegenereerde hash moeten worden opgenomen (de lijst met standaardvelden staat in de onderstaande tabel).
- U moet ook een wachtwoord afspreken met ons Support Team, dat ook wordt meegenomen bij het genereren van de hash. Als u dit wachtwoord moet wijzigen, moet u contact opnemen met Support.
Deel uw beveiligingswachtwoord van uw site nooit met derden. Bewaar geen papieren kopieën van dit wachtwoord.
Wanneer sitebeveiliging is ingeschakeld, zijn de standaardvelden die worden gebruikt bij het genereren van de hash de volgende:
Opmerking: We geven een voorbeeld van het genereren van de hash onder deze tabel.
Bestel | Naam van het veld | Type | Lengte | Beschrijving |
1 | currencyiso3a | Alpha | 3 |
De Munt waarin de transactie zal worden verwerkt. Klik hier voor een volledige lijst van beschikbare munteenheden. |
2 | mainamount | Numeriek | 14 |
Het bedrag van de transactie in hoofdeenheden, waarbij een decimale punt wordt gebruikt om decimale waarden aan te geven, zodat €10 wordt teruggegeven als 10.00.
Zorg ervoor dat u dit veld niet verwart met baseamount, die we veelvuldig gebruiken in onze API-documentatie, die in plaats daarvan is geformatteerd in basiseenheden, zonder decimale punt. |
3 | sitereference |
Alfanumeriek met inbegrip van underscore |
50 | De unieke Trust Payments site referentie die betrekking heeft op uw individuele account bij ons. Als u uw site referentie niet kent, neem dan contact op met ons Support Team. |
4 | settlestatus | Numeriek | 3 |
Een numerieke waarde die wordt gebruikt om de instructie afwikkeling te definiëren. Als u hier geen waarde opgeeft, wordt de settlestatus staat standaard op "0". Klik hier voor een volledige lijst van settlestatus waarden. |
5 | settleduedate | Datum JJJJ-MM-DD | 10 | U kunt dit veld in het verzoek opnemen om de datum te specificeren waarop u uw transactie wilt laten afwikkelen. Deze moet binnen 7 dagen van de datum autorisatie liggen. Deze datum wordt teruggestuurd in het antwoord. |
6 | authmethod | Alpha | 5 |
Ofwel: |
7 | paypaladdressoverride | Numeriek | 1 | Alleen van toepassing op Payment Pages integraties: Geef aan hoe het afleveradres wordt ingevoerd bij het verwerken van betalingen met PayPal. |
8 | strequiredfields | Alfanumeriek | Niet gedefinieerd |
Geef aan welke velden de klant moet invoeren. Meerdere velden worden ondersteund. Als de klant niet in alle verplichte velden informatie verstrekt of ongeldige informatie invoert, wordt de betaling niet voltooid. |
9 | version | Numeriek | 1 | Alleen van toepassing op Payment Pages integraties: Deze waarde wordt ingesteld op 2. |
10 | stprofile | Alfanumeriek | Niet gedefinieerd | Alleen van toepassing op Payment Pages integraties: Wordt gebruikt om de styling te specificeren die wordt gebruikt om de Payment Pages weer te geven. Wanneer het standaard uiterlijk wordt gebruikt, wordt dit ingesteld op "default" (klik hier voor meer informatie over profielen). |
11 | ruleidentifier | Alfanumeriek, inclusief koppeltekens | Niet gedefinieerd |
U kunt unieke identificatiecodes opgeven voor regels die op dit verzoek moeten worden toegepast (bv. STR-1). |
12 | stdefaultprofile | Alfanumeriek | Niet gedefinieerd |
Alleen van toepassing op Payment Pages integraties: Wij bieden een aantal standaardprofielen die op elke sessie kunnen worden toegepast. |
13 | successfulurlredirect | URL | Niet gedefinieerd | Alleen van toepassing op Payment Pages integraties: Dit is de URL waarnaar de browser van de klant wordt omgeleid na een succesvolle transactie, wanneer STR-6 is ingeschakeld. |
14 | declinedurlredirect | URL | Niet gedefinieerd | Alleen van toepassing op Payment Pages integraties: Dit is de URL waarnaar de browser van de klant wordt omgeleid na een geweigerde transactie, wanneer STR-7 is ingeschakeld. |
15 | successfulurlnotification | URL | Niet gedefinieerd | Dit is de URL waarnaar de melding wordt gestuurd na een geslaagde transactie, wanneer STR-8 is ingeschakeld. |
16 | declinedurlnotification | URL | Niet gedefinieerd | Dit is de URL waarnaar de melding wordt gestuurd na een geweigerde transactie, wanneer STR-9 is ingeschakeld. |
17 | merchantemail | E-mailadres | 255 |
Dit is het e-mailadres waarnaar de meldingen per e-mail van de handelaar worden gestuurd wanneer STR-4 en/of STR-5 zijn ingeschakeld.
Maximale lengte van 255 (maximaal 64 tekens vóór het "@"-symbool). |
18 | allurlnotification | URL | Niet gedefinieerd | Dit is de URL waarnaar de melding wordt gestuurd na een verzoek, wanneer STR-10 is ingeschakeld. |
19 | stextraurlnotifyfields | Alfanumeriek | Niet gedefinieerd | Dit wordt gebruikt om extra velden op te nemen in URL-kennisgevingen. |
20 | stextraurlredirectfields | Alfanumeriek | Niet gedefinieerd | Dit wordt gebruikt om extra velden op te nemen in URL-omleidingen. |
21 | credentialsonfile | Numeriek | 1 |
Dit is vereist voor Visa en Mastercard transacties waarbij de merchant gebruik maakt van de Gevevens in Bestand (CoF) functie. Als de transactie niet in aanmerking komt voor CoF, of als u de referenties niet wilt gebruiken voor toekomstige transacties, kunt u dit veld weglaten.
De toegestane waarden voor dit veld zijn 0, 1 & 2. 0 - Komt niet in aanmerking voor CoF, of is niet van plan de referenties op een later tijdstip opnieuw te gebruiken. 1 - Transactiegegevens gemarkeerd als beschikbaar voor toekomstig gebruik. 2 - Betaling met behulp van eerder opgeslagen referenties. Het bovenstaande geldt voor winkeliers met een Trust Payments acquiring account. Als u een andere acquiring bank gebruikt, moet u contact opnemen met ons Support Team om te controleren of deze functie wordt ondersteund voordat u verder gaat. |
22 |
requesttypedescriptions |
Lijst |
Lijst van requesttypedescriptions ingediend in het verzoek.
Alleen van toepassing bij gebruik van Geavanceerd Bericht. |
|
23 | sitesecuritytimestamp | Datum JJJJ-MM-DD hh:mm:ss |
(Vereist in de hash - Moet ook worden ingediend in het verzoek) Zo nauwkeurig mogelijk de tijdstempel die weergeeft wanneer de betalingssessie van de klant werd gestart. De klant heeft 3 uur vanaf het opgegeven tijdstip om de betaling te voltooien.
Extra overwegingen:
|
|
24 | password | Alfanumeriek, inclusief symbolen | 255 |
(Vereist in de hash - Moet NIET worden ingediend in de aanvraag) Dit is het beveiligingswachtwoord van de site, zoals overeengekomen met ons Support Team.
Geldige tekens:
|
Om velden toe te voegen of te verwijderen uit deze lijst kunt u contact opnemen met ons Support Team. Door een veld op te nemen in uw gegenereerde hash, kan dit veld niet worden gewijzigd door de klant of een onbevoegde derde partij. Wij raden u aan zoveel mogelijk unieke velden op te nemen. Wij ondersteunen de opname van aangepaste velden in uw lijst van aangewezen velden.
U mag geen velden opnemen die de klant mag wijzigen nadat de post is ingediend, bijvoorbeeld in de meeste gevallen hun naam, factuur- en leveringsgegevens. Dit kan verhinderen dat legitieme transacties worden verwerkt.
Het IP-adres van de klant kan tijdens de verwerking van een transactie veranderen, vooral bij het browsen vanaf mobiele apparaten. Daarom raden wij u af dit veld als een van uw aangewezen velden op te nemen.
Doorloopvoorbeeld
Klik op de kopjes hieronder om elke stap uit te breiden.
Voeg de waarden van de aangewezen velden toe in de bovenstaande volgorde. Neem bijvoorbeeld een verzoek met de volgende velden:
currencyiso3a = GBP
mainamount = 100.00
sitereference = test_site12345
sitesecuritytimestamp = 2019-05-28 14:22:37
password = PASSWORD
In dit voorbeeld wordt de volgende string gegenereerd:
GBP100.00test_site123452019-05-28 14:22:37PASSWORD
(Eventuele lege velden worden uit de hash weggelaten)
Zorg er bij het toevoegen van de veldwaarden voor dat aanwezige spaties niet uit de string worden weggelaten.
Tijdstempel beveiliging website
Deze timestamp moet zo nauwkeurig mogelijk het tijdstip weergeven waarop de klant zijn betaalsessie begint. (Deze tijdstempelwaarde mag NIET in de toekomst liggen)
De waarde in dit veld moet worden opgegeven in het formaat JJJJ-MM-DD hh:mm:ss.
Het tijdstempel moet in de UTC-tijdzone staan. (bijv. "2019-05-28 14:22:37")
De klant heeft 3 uur vanaf het opgegeven tijdstip om de transactie te voltooien, anders verwerpen wij de aanvraag.
Volgorde van de velden
Bij het genereren van de hash moeten de velden in dezelfde volgorde staan als hierboven vermeld. Als de velden niet in de juiste volgorde staan, mislukt het verzoek.
De volgorde waarin de velden worden gehasht kan desgewenst worden gewijzigd. Neem hiervoor contact op met het Support Team.
De sitesecuritytimestamp en password velden moet zijn altijd de laatste twee velden in de string die wordt gebruikt om de hash te genereren. Ze kunnen niet tussen de andere velden worden geplaatst of helemaal worden verwijderd.
Velden met meerdere waarden
Indien een veld in de hash meerdere waarden heeft, worden deze waarden aan elkaar gekoppeld in de volgorde zoals opgegeven in de POST.
Denk aan de volgende extra velden:
ruleidentifier=STR-7&ruleidentifier=STR-6
In de hierboven gegenereerde string wordt het:
GBP100.00test_site12345STR-7STR-62019-05-28 14:22:37PASSWORD
U moet uw systeem zo instellen dat de hash wordt gegenereerd met het SHA-256-algoritme. Bij het genereren van de hash worden alleen de veldwaarden gebruikt.
Voorbeeld string:
GBP100.00test_site123452019-05-28 14:22:37PASSWORD
Hashing met SHA-256 levert de volgende hash op:
d08761660c77014d2a41d7dee54c2160863e2e560388601b71bae059d7f456ca
U kunt de volgende codevoorbeelden gebruiken als referentie bij het genereren van uw hash:
#!/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;
Zorg ervoor dat uw systeem de hash indient in kleine letters
Als dat niet gebeurt, kan de hash ongeldig worden gemaakt en kunnen legitieme transacties worden stopgezet.
Voorbeeld:
hd08761660c77014d2a41d7dee54c2160863e2e560388601b71bae059d7f456ca
Dit is de uiteindelijke waarde die moet worden ingediend in de sitesecurity veld voor deze transactie.
Het is belangrijk dat de gegenereerde hash voorafgegaan wordt door de letter "h".
Dit is om ervoor te zorgen dat de laatste versie van de beveiligingsfunctie van de site wordt gebruikt.
Als u dit niet doet, kan de hash ongeldig worden gemaakt en kunnen legitieme transacties worden tegengehouden.
U moet ervoor zorgen dat u nooit het onbewerkte (niet gehashte) beveiligingswachtwoord van de site POST, aangezien dit een gedeeld geheim is tussen u en Trust Payments.
Advies voor probleemoplossing voor gehoste Payment Pages
Wanneer u de beveiligingsimplementatie van uw site test en de Payment Pages geeft de foutmelding "Er was een probleem met uw betaling - Ongeldige gegevens", dan betekent dit dat er een mismatch is tussen de door uw systeem gegenereerde hash en de door Trust Payments verwachte waarde. Zorg ervoor dat u alle bovenstaande instructies hebt gevolgd. Als u nog steeds problemen ondervindt, neem dan contact op met ons Support Team voor assistentie.