Der folgende Inhalt setzt voraus, dass Sie die erforderliche PCI-Zertifizierung erhalten haben, um sensible Karteninhaberdaten in der Anfrage an unsere Webservices API zu verarbeiten und zu übermitteln.
Lesen Sie diesen Artikel, um mehr zu erfahren.
Merkmale:
- Automatisieren Sie Erstattungen und Autorisierung Stornierungen, und kontrollieren Sie den Abrechnung Zeitplan für jede Transaktion.
- Behalten Sie Ihre Entwicklungskapazitäten und schreiben Sie Anwendungen, die Zahlungen verarbeiten können.
- Integrieren Sie eine Zahlungslösung in Back-Office- oder Altsysteme.
Eine Bibliothek installieren
Um den Prozess der Einrichtung Ihrer Zahlungslösung zu vereinfachen, stellen wir Bibliotheken für Programmiersprachen wie Python und PHP zur Verfügung. Alternativ können Sie cURL auch in einer Vielzahl anderer Sprachen verwenden. Diese Bibliotheken bestehen aus Funktionen, auf die Sie in Ihrem Programm referenzieren können, ohne sie explizit zu definieren. Wir empfehlen Ihnen, die unten stehenden Anweisungen zu befolgen, um die von Ihnen bevorzugte Bibliothek herunterzuladen und auf Ihrem Server zu installieren.
Planen Sie die Nutzung Ihrer eigenen Bibliothek?
Wenn Sie Ihre eigene Bibliothek zur Bearbeitung von Anträgen verwenden wollen, müssen Sie die Konfiguration Ihrer eigenen Bibliothek lesen.
- Wir unterstützen Python v2.7.9+ und v3.
- Wir empfehlen Ihnen, die neueste Version von Python v3.x zu verwenden, wenn Sie mit uns zusammenarbeiten.
- Python v2.7 erreicht das Ende der Lebensdauer im Januar 2020. Daher raten wir dringend davon ab, diese Version für neue Integrationen zu verwenden.
- Die Version "2.9" der Bibliothek Python "requests" ist erforderlich, um sicherzustellen, dass die neuesten Zertifikate installiert sind.
Um unsere Bibliothek Python zu installieren, können Sie 'pip' verwenden , ein Paketverwaltungssystem, das zur Installation und Verwaltung von Softwarepaketen dient, die in Python geschrieben wurden.
(Unter pip:)
pip install securetrading
Alternativ können Sie das Paket auch von https://github.com/Secure-Trading/st-python -api herunterladen und die Bibliothek manuell installieren.
Sie können den folgenden Befehl verwenden, um unsere PHP-Bibliothek zu installieren.
Composer ist ein Werkzeug für die Verwaltung von Abhängigkeiten in PHP. Es erlaubt Ihnen, die Bibliotheken zu deklarieren, von denen Ihr Projekt abhängt, und es wird sie für Sie installieren und aktualisieren.
(Unter Composer:)
composer require securetrading/stpp_json
Wenn auf Ihrem System bereits cURL installiert ist, ist keine weitere Installation erforderlich.
Sie dürfen niemals sensible Zahlungsdaten auf Ihrem Server speichern
Bitte stellen Sie sicher, dass alle zusätzlichen Debugging-Funktionen, die während der Tests Ihrer Integration aktiviert wurden, vor der Inbetriebnahme deaktiviert werden. Andernfalls kann es zu einem Verstoß gegen die Anforderungen kommen, die zur Einhaltung der PCI-Vorschriften erforderlich sind.
Zusammenfassung
Sie haben nun eine Bibliothek auf Ihrem Server installiert, mit der Sie Anfragen an unser Gateway senden können.
Lesen Sie weiter, um zu erfahren, wie Sie Ihre erste Anfrage bearbeiten.
Verarbeiten Sie Anfragen mit unserer Webservices API
Im Folgenden wird beschrieben, wie Sie in Ihrem Programmkörper auf die SDK-Funktionen verweisen können, um eine Anfrage an unsere Server zu senden.
Bevor Sie beginnen, benötigen Sie einen Benutzernamen und ein Passwort für Web Services, damit wir Ihre Anfragen authentifizieren können.
Sie können einen Webdienst-Benutzer über unsere Schnittstelle Portal erstellen. Ihr System muss diesen Benutzernamen in jeder Anfrage zusammen mit dem Passwort übermitteln. In unseren Anfragebeispielen verwenden wir einen Platzhalter-Benutzernamen und ein Passwort, die Sie vor dem Testen durch Ihre eigenen Anmeldedaten ersetzen müssen.
Wenn Sie noch keine Zugangsdaten für die Webdienste haben, klicken Sie hier, um zu erfahren, wie Sie diese konfigurieren können.
Möglicherweise müssen Sie Ihre Firewall für unsere Webdienste-IPs öffnen.
Ihr Server muss nun eine Anfrage erstellen. Zum Beispiel:
"sitereference": "test_site12345",
"requesttypedescriptions": ["AUTH"],
"accounttypedescription": "ECOM",
"currencyiso3a": "GBP",
"baseamount": "1050",
"orderreference": "My_Order_123",
"pan": "4111111111111111",
"expirydate": "12/2022",
"securitycode": "123"
Wir akzeptieren alle Unicode-Zeichen in Ihrer JSON-Anfrage. Die verwendete Kodierung ist UTF-8, ein Multi-Byte-Kodierungsschema. Alle Antworten von uns werden mit UTF-8 kodiert. Ihr System muss darauf vorbereitet sein, alle gültigen JSON-Antworten in dieser Kodierung zu akzeptieren.
Um strenge Sicherheitsanforderungen zu erfüllen, können wir bei der Nutzung unserer Cross-Origin Resource Sharing (CORS) Dienste keine Herkunft https://localhost akzeptieren.
Sie müssen eine gültige Domain verwenden, die über Trust Payments erreichbar ist.
Sie müssen die erzeugte Anfrage an die oben installierte Bibliothek Trust Payments übermitteln.
Im Folgenden finden Sie Beispiele für die Durchführung einer Anfrage für jedes Tool und jede Programmiersprache, die wir derzeit unterstützen.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
#Replace the example Web Services username and password above with your own
request = {
"sitereference": "test_site12345",
"requesttypedescriptions": ["AUTH"],
"accounttypedescription": "ECOM",
"currencyiso3a": "GBP",
"baseamount": "1050",
"orderreference": "My_Order_123",
"pan": "4111111111111111",
"expirydate": "12/2022",
"securitycode": "123"
}
strequest = securetrading.Request()
strequest.update(request)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^',
);
//Replace the example Web Services username and password above with your own
$requestData = array(
'sitereference' => 'test_site12345',
'requesttypedescriptions' => array('AUTH'),
'accounttypedescription' => 'ECOM',
'currencyiso3a' => 'GBP',
'baseamount' => '1050',
'orderreference' => 'My_Order_123',
'pan' => '4111111111111111',
'expirydate' => '12/2022',
'securitycode' => '123'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias":"webservices@example.com",
"version": "1.00",
"request": [{
"currencyiso3a": "GBP",
"requesttypedescriptions": ["AUTH"],
"sitereference": "test_site12345",
"baseamount": "1050",
"orderreference": "My_Order_123",
"accounttypedescription": "ECOM",
"pan": "4111111111111111",
"expirydate": "12/2022",
"securitycode": "123"
}]
}'
Ersetzen Sie <DOMAIN>
mit einer unterstützten Domäne. Klicken Sie hier für eine vollständige Liste.
Für die Zwecke dieser Beispiele haben wir die Anfragefelder fest kodiert. In Ihrer Implementierung müssten Sie einen automatisierten Prozess einrichten, der jede Anfrage aktualisiert, bevor sie von der Bibliothek übermittelt wird.
Umgang mit der Antwort
Ihr System wird zahlreiche Felder im Antwortobjekt zurückerhalten. Sie müssen den Inhalt dieser Felder interpretieren, um sicherzustellen, dass es sich um die erwarteten Werte handelt.
Nachfolgend ein Beispiel für eine AUTH Antwort:
{
u 'requestreference': u 'A0bxh87wt',
u 'version': u '1.00',
u 'responses': [{
u 'transactionstartedtimestamp': u '2016-12-07 11:32:44',
u 'livestatus': u '0',
u 'issuer': u 'SecureTrading Test Issuer1',
u 'splitfinalnumber': u '1',
u 'dccenabled': u '0',
u 'settleduedate': u '2016-12-07',
u 'errorcode': u '0',
u 'orderreference': u 'My_Order_123',
u 'tid': u '27882788',
u 'merchantnumber': u '00000000',
u 'merchantcountryiso2a': u 'GB',
u 'transactionreference': u '23-9-80001',
u 'merchantname': u 'Test Merchant',
u 'paymenttypedescription': u 'VISA',
u 'baseamount': u '1050',
u 'accounttypedescription': u 'ECOM',
u 'acquirerresponsecode': u '00',
u 'requesttypedescription': u 'AUTH',
u 'securityresponsesecuritycode': u '2',
u 'currencyiso3a': u 'GBP',
u 'authcode': u 'TEST36',
u 'errormessage': u 'Ok',
u 'operatorname': u 'webservices@example.com',
u 'securityresponsepostcode': u '0',
u 'maskedpan': u '411111######0021',
u 'securityresponseaddress': u '0',
u 'issuercountryiso2a': u 'US',
u 'settlestatus': u '0'
}]
}
array(3) {
["requestreference"] => string(9) "A3579dkvx"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0] => array(28) {
["transactionstartedtimestamp"] => string(19) "2016-12-09 09:52:19"
["livestatus"] => string(1) "0"
["issuer"] => string(26) "SecureTrading Test Issuer1"
["splitfinalnumber"] => string(1) "1"
["dccenabled"] => string(1) "0"
["settleduedate"] => string(10) "2016-12-09"
["errorcode"] => string(1) "0"
["orderreference"] => string(12) "My_Order_123"
["tid"] => string(8) "27882788"
["merchantnumber"] => string(8) "00000000"
["securityresponsepostcode"] => string(1) "0"
["transactionreference"] => string(10) "72-9-80003"
["merchantname"] => string(13) "Test Merchant"
["paymenttypedescription"] => string(4) "VISA"
["baseamount"] => string(4) "1050"
["accounttypedescription"] => string(4) "ECOM"
["acquirerresponsecode"] => string(2) "00"
["requesttypedescription"] => string(4) "AUTH"
["securityresponsesecuritycode"] => string(1) "2"
["currencyiso3a"] => string(3) "GBP"
["authcode"] => string(6) "TEST31"
["errormessage"] => string(2) "Ok"
["operatorname"] => string(23) "webservices@example.com"
["merchantcountryiso2a"] => string(2) "GB"
["maskedpan"] => string(16) "411111######1111"
["securityresponseaddress"] => string(1) "0"
["issuercountryiso2a"] => string(2) "US"
["settlestatus"] => string(1) "0"
}
}
}
{"requestreference":"W23-fjgvn3d8","version":"1.00","response":[{"transactionstartedtimestamp":"2016-12-07 15:08:47","livestatus":"0","issuer":"SecureTrading Test Issuer1","splitfinalnumber":"1","dccenabled":"0","settleduedate":"2016-12-07","errorcode":"0","baseamount":"1050","tid":"27882788","merchantnumber":"00000000","merchantcountryiso2a":"GB","transactionreference":"23-9-80006","merchantname":"Test Merchant","paymenttypedescription":"VISA","orderreference":"My_Order_123","accounttypedescription":"ECOM","acquirerresponsecode":"00","requesttypedescription":"AUTH","securityresponsesecuritycode":"2","currencyiso3a":"GBP","authcode":"TEST96","errormessage":"Ok","operatorname":"webservices@example.com","securityresponsepostcode":"0","maskedpan":"411111######1111","securityresponseaddress":"0","issuercountryiso2a":"US","settlestatus":"0"}],"secrand":"zO9"}
Es ist besonders wichtig, die Fehlercode und Abrechnungsstatus Werte, die in der Antwort zurückgegeben werden, zu überprüfen.
Klicken Sie hier für empfohlene Überprüfungen bei der Bearbeitung von Antworten, die von Trust Payments zurückgegeben werden.
Neben der Bearbeitung von Autorisierungen unterstützt Trust Payments zahlreiche weitere Anfragetypen. Weitere Informationen zu diesen Antragstypen finden Sie auf den anderen Seiten unserer Online-Dokumente.
Zusammenfassung
Jetzt sollten Sie in der Lage sein, eine einfache Anfrage mit unserer Webservices API zu bearbeiten.
Nächste Schritte
- Wir empfehlen Ihnen, sich über die Kontrollen zu informieren, die bei der Bearbeitung der Antwort durchzuführen sind.
- In unseren zusätzlichen Dokumenten können Sie sich über weitere Funktionen informieren, die im Rahmen Ihrer Implementierung konfiguriert werden können.
- Sobald Sie Ihre Lösung gründlich getestet haben, können Sie die Live-Schaltung beantragen und mit der Verarbeitung von Live-Zahlungen beginnen!