Aan de slag met 3DS API

  Laatst bijgewerkt: 

 

De volgende inhoud gaat ervan uit dat u de noodzakelijke PCI-certificering hebt verkregen om gevoelige kaarthoudergegevens te verwerken en in te dienen in het verzoek aan onze 3DS API.
Lees dit artikel voor meer informatie.

  Voordat u begint, heeft u een Web Services gebruikersnaam en wachtwoord nodig, zodat wij uw verzoeken kunnen verifiëren.

U kunt een Web Services gebruiker aanmaken via onze MyST interface. Uw systeem zal deze gebruikersnaam in elk verzoek moeten opnemen, samen met het wachtwoord. In onze aanvraagvoorbeelden gebruiken we een placeholder gebruikersnaam en wachtwoord, die u moet vervangen door uw eigen gegevens voordat u gaat testen.

Als u nog geen Web Services credentials heeft, klik dan hier om te leren hoe u dit kunt configureren.


U moet ook contact opnemen met ons Support Team en vragen om een nieuwe 3DS API test sitereferentie wordt gemaakt voor u om te beginnen met testen met onze 3DS API

  Het is belangrijk op te merken dat u bestaande sitereferentie(s), die al geconfigureerd zijn om betalingen te verwerken, niet kunt gebruiken om verzoeken naar onze 3DS API te verwerken.

Dit betekent dat als je authenticatieverzoeken naar onze 3DS API en betalingsverzoeken autorisatie naar onze Webservices API verwerkt, er voor elk gebruik een andere sitereferenties nodig is.

 

Configuratie

Beveiligde verbinding

Uw bibliotheek moet een beveiligde verbinding tot stand brengen:

  • https://<DOMAIN>/json/” (for JSON  – recommended)
  • https://<DOMAIN>/xml/” (for XML)

Replace <DOMAIN> with a supported Webservices domain. Click here for a full list.

Alle verbindingen tussen uw server en Trust Payments moeten correct worden geauthenticeerd en gecodeerd
Trust Payments gebruikt de industriestandaard zeer sterke TLS-codering. Wij raden u aan een actuele SSL/TLS-bibliotheekimplementatie te gebruiken voor de door u gekozen taal.

U moet ervoor zorgen dat het de volgende mogelijkheden heeft:

  • TLSv1.2 of hoger.
  • Serververificatie moet worden uitgevoerd door validatie van een certificaatketen tot een bekende, vertrouwde Certificate Authority (zie hieronder).
  • De serververificatie moet controleren of de Common Name (CN) van het servercertificaat overeenkomt met het domein waarmee u verbinding maakt. Als de Common Name niet overeenkomt, bent u niet verbonden met Trust Payments en MOET de verbinding worden geweigerd.
  • Serverauthenticatie moet plaatsvinden op de vervaldatum van het servercertificaat. Verlopen certificaten MOETEN worden geweigerd.
  • Uw bibliotheek en codebasis moeten worden onderhouden en u moet regelmatig updaten naar de laatste beveiligingspatches en/of functies.

Trust Payments gebruikt de Digicert Certificate Authority om alle certificaten te ondertekenen. Uw SSL/TLS-bibliotheek moet worden geconfigureerd om alle Digicert certificaten te vertrouwen:
https://www.digicert.com/digicert-root-certificates.htm

Opmerking: De meeste up-to-date besturingssystemen hebben de Digicert Roots standaard al vertrouwd en in hun vertrouwenswinkel, wat betekent dat de meeste winkeliers geen actie hoeven te ondernemen om deze vereiste te ondersteunen. Echter, als winkeliers niet de ingebouwde OS trust store gebruiken, en in plaats daarvan hun eigen trust store creëren, dan moeten zij alle Digicert Root certificaten toevoegen aan hun aangepaste trust store, omdat onze certificaten in de toekomst ondertekend kunnen worden door elk van de actieve Digicert root certificaten.

In uw SSL/TLS-beleid moet u deze Certificate Authorities regelmatig (bijvoorbeeld eenmaal per jaar) evalueren en bijwerken.

Het valideren van een keten naar een vertrouwde Certificate Authority betekent dat uw implementatie niet hoeft te worden aangepast wanneer Trust Payments regelmatig servercertificaten bijwerkt. In het bijzonder moet u NIET verifiëren met behulp van een enkele certificaatvingerafdruk, aangezien dit zal moeten worden bijgewerkt telkens als het servercertificaat wordt bijgewerkt en niet zal werken als ons gedistribueerde systeem verschillende individuele certificaten levert.

  De meeste implementaties van SSL/TLS-bibliotheken voldoen aan alle bovenstaande eisen, maar moeten mogelijk worden geconfigureerd om ze in te schakelen. Het is uw verantwoordelijkheid ervoor te zorgen dat al deze beveiligingseisen correct zijn ingeschakeld; anders kan de veiligheid van de verbindingen in gevaar komen. Het is ook uw verantwoordelijkheid ervoor te zorgen dat het besturingssysteem en de software die voor de verbindingen worden gebruikt, up-to-date worden gehouden met beveiligingspatches.

 

Lastenverdeling

Trust Payments maakt gebruik van DNS load balancing. DNS load balancing is ontworpen om één IP terug te sturen, die op dat moment de voorkeursbestemming is voor uw server om verbinding mee te maken.

Voorafgaand aan elk verzoek dat via onze 3DS API wordt ingediend, moet u een DNS lookup uitvoeren naar het juiste domein in uw toepassing om het IP van een beschikbare gateway te verkrijgen.

De DNS load balancers sturen niet alleen één IP terug, maar ook een lage TTL, momenteel ingesteld op minder dan 60 seconden. Deze TTL is bewust laag gehouden om de blootstelling van uw server aan het gehele betalingssysteem te maximaliseren. Het verhogen van deze TTL zou deze blootstelling verminderen, wat betekent dat u één IP voor een langere periode zult gebruiken. Alle problemen die kunnen optreden (gepland of anderszins) zullen dan gevolgen hebben voor uw betalingsverwerkingsmogelijkheden.

  Het is noodzakelijk dat u zich houdt aan de TTL die is ingesteld door Trust Payments en uw DNS-vermeldingen vernieuwt wanneer de TTL verloopt.

Trust Payments heeft een aantal DNS-servers die worden gebruikt om DNS-records te serveren. Het is belangrijk dat uw server een verbinding kan maken met elk van deze servers voor DNS lookups. Als u een DNS look up mislukking krijgt bij het communiceren met een DNS server, moeten de andere DNS servers worden gebruikt. Als niet alle DNS-servers worden gebruikt, kunnen er problemen ontstaan bij het oplossen van URL's van betalingssystemen.

Vanuit het oogpunt van debug kunt u het volgende commando uitvoeren om de huidige lijst van beschikbare DNS-servers te verkrijgen:

  • Voor de Europese Poort:
    • Windows: nslookup -type=NS securetrading.net
    • LinuxGraaf NS securetrading.net
  • Voor US Gateway:
    • Windows: nslookup -type=NS securetrading.us
    • LinuxNS securetrading.us

 

Time-outs

In het onwaarschijnlijke geval dat uw systeem problemen ondervindt bij de verbinding met ons, is het aanbevolen dat u passende time-outs implementeert voor uw oplossing. Overweeg dit voorbeeld:

maximum retry number - 20
maximum retry timeout - 40 seconden
maximum connect attempt timeout - 5 seconden
send and receive timeout - 60 seconden

Opnieuw proberen tot:

  • Het maximale aantal nieuwe pogingen is overschreden; OF
  • De maximale time-out voor opnieuw proberen zou door een andere verbindingspoging worden overschreden.

(Dit betekent dat het opnieuw proberen van de verbinding na 35-40 seconden stopt, aangezien een poging die de maximale time-out voor een verbindingspoging van 5 seconden in beslag neemt, de maximale time-out voor opnieuw proberen zou overschrijden)

Zodra de verbinding tot stand is gebracht, moet u 60 seconden (de time-outwaarde voor verzenden en ontvangen ) toestaan om de gegevens te verzenden en te ontvangen voordat u de verbinding sluit. Als om welke reden dan ook de verbinding wordt verbroken nadat de gegevens zijn verzonden, raden wij aan het verzoek niet opnieuw te proberen.

  De hierboven voorgestelde time-outimplementatie is een voorbeeldoplossing. U moet de vereisten van uw eigen toepassing in overweging nemen en time-outs implementeren die het best passen bij uw behoeften.

 

Verwerk verzoeken met behulp van onze 3DS API

  Wij aanvaarden alle Unicode-tekens in uw verzoek. De gebruikte codering is UTF-8, een multi-byte coderingsschema. Alle antwoorden van ons zijn gecodeerd met UTF-8. Uw systeem moet voorbereid zijn om alle geldige antwoorden die op deze manier gecodeerd zijn, te aanvaarden.

Mogelijk moet u uw firewall openstellen voor onze Web Services IP's.
Klik hier voor een volledige lijst.

Om te voldoen aan strenge beveiligingseisen kunnen we een oorsprong van https://localhost niet accepteren bij gebruik van onze Cross-origin resource sharing (CORS) services.
Je moet een geldig domein gebruiken dat toegankelijk is via Trust Payments.

 

Bovendien moet u het headers-formaat gebruiken zoals in onderstaand voorbeeld:

JSON Request Headers XML Request Headers
{
'Content-length': '<LENGTH OF POST>',
'Content-type': 'application/json',
'Authorization': '<BASIC AUTH CREDENTIALS HERE>',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
}

  Hoe maak je een kopregel

Alle verzoeken die via onze 3DS API worden ingediend bij Trust Payments moeten beginnen met een reeks headers zoals hieronder gedefinieerd. Wij gebruiken deze om inkomende verzoeken te identificeren en te beheren.

 

Lengte van de inhoud

Content-Length moet de lengte zijn van de bytes van het verzoek in de gekozen tekenset. Dit moet worden berekend nadat de tekencodering is uitgevoerd.

 

Type inhoud

Content-Type wordt altijd ingesteld als:

  • "application/json" (voor JSON)
  • "text/xml" (voor XML)

charset moet de charset van de post zijn, bijvoorbeeld "utf-8".

Elk verzoek moet correct gecodeerd zijn volgens de tekencodering die in de header is gespecificeerd
Ons systeem accepteert alle Unicode-tekens. De standaardcodering voor JSON is UTF-8 (een multi-byte codering). De meeste JSON parsers zullen dit automatisch verwerken.

 

Autorisatie

"Basic ", gevolgd door een base64 codering van uw Web Services referenties in het formaat gebruikersnaam:wachtwoord, (ontdaan van spaties).

bijv. Voor gebruikersnaam webservices @voorbeeld .com en wachtwoord pa55word.

Base64 codeer webservices@example .com:pa55word om d2Vic2VydmljZXNAZXhhbXBsZS5jb206cGE1NXdvcmQ= te krijgen

De uiteindelijke waarde om in dit geval in de header op te nemen zou zijn: Basic d2Vic2VydmljZXNAZXhhbXBsZS5jb206cGE1NXdvcmQ=

 

Accepteer

Het formaat van de gegevens die worden ingediend bij Trust Payments.

bijv. tekst/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

 

Terug: Wat is 3DS API? Volgende: Behandeling van 3DS API reacties

Was dit artikel nuttig?
0 van de 0 vonden dit nuttig