In diesem Artikel wird erklärt, wie Sie die Zahlungsmethode Lastschrift für Länder aktivieren, die Mitglieder des einheitlichen Euro-Zahlungsverkehrsraums (SEPA) sind. Bei der Auswahl des SEPA-Lastschriftverfahrens geben die Kunden ihre IBAN/BIC Informationen ein, woraufhin der Betrag automatisch vom Bankkonto des Benutzers abgebucht wird. Sobald die Zahlung eingegangen ist, erhält der Händler eine URL-Benachrichtigung und der Kauf kann ausgeliefert werden.
Unterstützte Kundenländer | AT, BE, CY, DE, EE, ES, FI, FR, GR, IE, IT, LT, LU, LV, MC, MT, NL, PT, SI, SK |
Unterstützte Währungen | EUR |
Rückerstattungen |
Nur Payouts wird unterstützt (erlaubt für bis zu 365 Tage). |
Rückbuchungen |
Zahlungen können Gegenstand von Rückbuchungen sein. |
Zero-authorisation |
Nicht unterstützt. |
Wiederkehrende Zahlungen |
Nicht unterstützt. |
Konfiguration
Um die SEPA-Lastschrift für Ihr Konto zu aktivieren, wenden Sie sich bitte an Ihren Kundenbetreuer.
Wir stellen Ihnen ein Test-Sandbox-Konto zur Verfügung, das Sie für den Test Ihrer Implementierung benötigen.
Überblick über den Prozess
-
Initiieren Sie den Kunden
- Der Kunde erklärt sich mit einer Zahlung per SEPA-Lastschrift auf der Website des Händlers einverstanden.
- Der Händler sendet eine AUTH Anfrage, um die Sitzung zu initiieren, einschließlich der successfulurlredirect und errorurlredirect.
- Der Händler erhält die Antwort AUTH, einschließlich redirecturl.
-
Weiterleitung an die Bank des Kunden
- Der Händler leitet den Browser des Kunden auf die redirecturl.
- Der Kunde folgt den Anweisungen auf den von seiner Bank bereitgestellten Seiten, um die Zahlung zu autorisieren.
- Bei Erfolg wird der Browser auf die Seite successfulurlredirect, eine vom Händler bereitgestellte Seite, die die Zahlungsbestätigung anzeigt.
- Wenn ein Problem mit der Zahlung aufgetreten ist, wird der Browser auf die Seite errorurlredirect, eine vom Händler gehostete Seite, die dem Kunden einen Fehler anzeigt.
-
Abschluss der Zahlung
- Zu einem späteren Zeitpunkt wird sich die Bank des Kunden mit Trust Payments in Verbindung setzen, um zu bestätigen, dass das Geld überwiesen wurde.
- Trust Payments sendet eine URL-Benachrichtigung an das System des Händlers, um zu bestätigen, dass der Betrag beglichen wurde.
- Der Händler erhält die Meldung und antwortet, um Trust Payments zu informieren, dass die Meldung erfolgreich empfangen wurde.
1. Initiieren Sie den Kunden
Wenn der Kunde sich für eine Zahlung per SEPA-Lastschrift entscheidet, muss Ihr System eine AUTH -Anfrage durchführen und, falls erfolgreich, den Browser des Kunden auf die in der Antwort zurückgegebene URL umleiten.
AUTH Anfrage
Das nachstehende Beispiel bezieht sich auf eine SEPA-Lastschriftanfrage AUTH :
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"currencyiso3a": "EUR",
"requesttypedescriptions": ["AUTH"],
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "SEPADD",
"successfulurlredirect": "https://yourwebsite.com",
"errorurlredirect": "https://yourwebsite.com",
"billingemail": "customer@email.com",
"billingfirstname": "Joe",
"billinglastname": "Bloggs",
"billingcountryiso2a": "BE",
"iban": "MT00000000000000000000000000"
}
strequest = securetrading.Request()
strequest.update(auth)
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^'
);
$requestData = array(
'currencyiso3a' => 'EUR',
'requesttypedescriptions' => array('AUTH'),
'accounttypedescription' => 'ECOM',
'sitereference' => 'test_site12345',
'baseamount' => '1050',
'paymenttypedescription' => 'SEPADD',
'successfulurlredirect' => 'https://yourwebsite.com',
'errorurlredirect' => 'https://yourwebsite.com',
'billingemail' => 'customer@email.com',
'billingfirstname' => 'Joe',
'billinglastname' => 'Bloggs',
'billingcountryiso2a' => 'BE',
'iban' => 'MT00000000000000000000000000'
);
$api = Securetradingapi($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": "EUR",
"requesttypedescriptions": ["AUTH"],
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "SEPADD",
"successfulurlredirect": "https://www.example.com/success",
"errorurlredirect": "https://www.example.com/error",
"billingemail": "customer@email.com",
"billingfirstname": "Joe",
"billinglastname": "Bloggs",
"billingcountryiso2a": "BE",
"iban": "MT00000000000000000000000000"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"currencyiso3a":"EUR",
"requesttypedescriptions":["AUTH"],
"accounttypedescription":"ECOM",
"sitereference":"test_site12345",
"baseamount":"1050",
"paymenttypedescription":"SEPADD",
"successfulurlredirect":"https://www.example.com/success",
"errorurlredirect":"https://www.example.com/error",
"billingemail":"customer@email.com",
"billingfirstname":"Joe",
"billinglastname":"Bloggs",
"billingcountryiso2a":"BE",
"iban":"MT00000000000000000000000000"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<merchant>
<successfulurlredirect>https://www.example.com/success</successfulurlredirect>
<errorurlredirect>https://www.example.com/error</errorurlredirect>
</merchant>
<billing>
<email>customer@email.com</email>
<name>
<first>Joe</first>
<last>Bloggs</last>
</name>
<country>BE</country>
<amount currencycode="EUR">1050</amount>
<payment type="SEPADD">
<iban>MT00000000000000000000000000</iban>
</payment>
</billing>
<operation>
<sitereference>test_site12345</sitereference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
</request>
</requestblock>
Ersetzen Sie <DOMAIN>
mit einer unterstützten Domäne. Klicken Sie hier für eine vollständige Liste.
Feldspezifikation
Feld | Format | Beschreibung | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Nur "ECOM" (E-Commerce) wird unterstützt. | |
baseamount XPath: /billing/amount |
Numerisch (13) | Der Betrag der Transaktion in Basiseinheiten, ohne Kommas oder Dezimalpunkte, d. h. €10 werden als €1000 übermittelt. Dieser Wert muss größer als Null sein. (Die maximale Länge kann je nach Bank variieren - weitere Informationen erhalten Sie von Ihrer Bank) | |
billingcountryiso2a XPath: /billing/country |
Alpha (2) |
Das Land, in dem die Rechnungsadresse des Kunden liegt. Diese muss im ISO2A-Format angegeben werden. Eine Liste der Ländercodes, die von der SEPA-Lastschrift unterstützt werden, finden Sie in der Liste oben auf dieser Seite. |
|
billingemail XPath: /billing/email |
E-Mail (255) |
Die Adresse des Kunden Rechnungs-E-Mail . Maximale Länge von 255 (maximal 64 Zeichen vor dem "@"-Zeichen). |
|
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
Die Währung , in der die Transaktion verarbeitet werden soll (im ISO3A-Format). Eine Liste der Währung Codes, die von der SEPA-Lastschrift unterstützt werden, finden Sie in der Liste oben auf dieser Seite. |
|
errorurlredirect XPath: /merchant/errorurlredirect |
URL (2048) | Die URL, zu der der Kunde im Falle eines Fehlers auf den von seiner Bank gehosteten Seiten zurückgeführt wird. | |
iban XPath: /billing/payment/iban |
Alphanumerisch (255) | Der Kunde ist IBAN. |
|
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Dieser Wert muss als "SEPADD" angegeben werden. | |
requesttypedescription XPath: /@type |
Alpha (20) | Der Wert in der Anfrage muss "AUTH" lauten. | |
sitereference XPath: /operation/sitereference |
Alphanumerisch & Unterstrich (50) |
Die Website-Referenz bezieht sich auf Ihr individuelles Konto, das Sie bei der Einrichtung erhalten haben. Wenn Sie Ihre Website-Referenz nicht kennen, wenden Sie sich bitte an unser Support-Team. | |
successfulurlredirect XPath: /merchant/successfulurlredirect |
URL (2048) | Die URL, zu der der Kunde nach einer erfolgreichen Autorisierung von seiner Bank zurückgeführt wird. | |
billingprefixname XPath: /billing/name/prefix |
Alphanumerisch einschließlich Symbole (25) |
Das Präfix des Rechnungsnamens des Kunden (z. B. Herr, Frau, Dr.). Mindestens eines der Felder für den Rechnungsnamen ist erforderlich. |
|
billingfirstname XPath: /billing/name/first |
Alphanumerisch einschließlich Symbole (127) |
Der Kunde ist Rechnungsvorname. Mindestens eines der Felder für den Rechnungsnamen ist erforderlich. |
|
billingmiddlename XPath: /billing/name/middle |
Alphanumerisch einschließlich Symbole (127) |
Der/die mittlere(n) Rechnungsname(n) des Kunden. Mindestens eines der Felder für den Rechnungsnamen ist erforderlich. |
|
billinglastname XPath: /billing/name/last |
Alphanumerisch einschließlich Symbole (127) |
Der Kunde ist Rechnungsnachname. Mindestens eines der Felder für den Rechnungsnamen ist erforderlich. |
|
billingsuffixname XPath: /billing/name/suffix |
Alphanumerisch einschließlich Symbole (25) |
Das Suffix des Rechnungsnamens des Kunden (z. B. Bsc). Mindestens eines der Felder für den Rechnungsnamen ist erforderlich. |
|
orderreference XPath: /merchant/orderreference |
Alphanumerisch einschließlich Symbole (25)
Empfohlene Länge 25 Zeichen oder weniger (genaue Länge abhängig von der erwerbenden Bank). Die Nichteinhaltung dieser Anforderung kann dazu führen, dass der Text in der Transaktion abgeschnitten wird. |
Ihre eindeutige Auftragsnummer, die im System Trust Payments gespeichert werden kann. |
AUTH Antwort
{
u'requestreference': u'An3ug1kap',
u'version': u'1.00',
u'responses': [{
u'transactionreference': u'23-86-113',
u'merchantname': u'Test Merchant',
u'paymenttypedescription': u'SEPADD',
u'settleduedate': u'2017-03-16',
u'baseamount': u'1050',
u'transactionstartedtimestamp': u'2017-03-16 16:25:08',
u'errormessage': u'Ok',
u'settlestatus': u'10',
u'accounttypedescription': u'ECOM',
u'errorcode': u'0',
u'redirecturl': u'https://example.com',
u'acquirertransactionreference': u'12',
u'acquirersecret': u'q9gy5ppgdyd5fh60kfe2j0f26peu2xww',
u'requesttypedescription': u'AUTH',
u'mandatereference': u'A-zZa1234567890/+*()/,.',
u'acquirerresponsemessage': u'PENDING',
u'operatorname': u'webservices@example.com',
u'livestatus': u'0',
u'currencyiso3a': u'EUR'
}]
}
array(3) {
["requestreference"] => string(9) "A0345jmuw"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0] => array(19) {
["transactionreference"] => string(9) "23-86-113"
["merchantname"] => string(4) "Test Merchant"
["paymenttypedescription"] => string(6) "SEPADD"
["settleduedate"] => string(10) "2017-03-16"
["baseamount"] => string(4) "1050"
["transactionstartedtimestamp"] => string(19) "2017-03-16 16:25:08"
["errormessage"] => string(2) "Ok"
["settlestatus"] => string(2) "10"
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["redirecturl"] => string(107) "https://example.com"
["acquirertransactionreference"] => string(2) "12"
["acquirersecret"] => string(32) "q9gy5ppgdyd5fh60kfe2j0f26peu2xww"
["requesttypedescription"] => string(4) "AUTH"
["mandatereference"] => string(23) "A-zZa1234567890/+*()/,."
["acquirerresponsemessage"] => string(7) "PENDING"
["operatorname"] => string(11) "webservices@example.com"
["livestatus"] => string(1) "0"
["currencyiso3a"] => string(3) "EUR"
}
}
}
{
"requestreference":"W23-fjgvn3d9",
"version":"1.00",
"response":[{
"transactionreference":"23-86-113",
"merchantname":"Test Merchant",
"paymenttypedescription":"SEPADD",
"settleduedate":"2017-03-16",
"baseamount":"1050",
"transactionstartedtimestamp":"2017-03-16 16:25:08",
"errormessage":"Ok",
"settlestatus":"10",
"accounttypedescription":"ECOM",
"errorcode":"0",
"redirecturl":"https://example.com",
"acquirertransactionreference":"12",
"acquirersecret":"q9gy5ppgdyd5fh60kfe2j0f26peu2xww",
"requesttypedescription":"AUTH",
"mandatereference":"A-zZa1234567890\/+*()\/,.",
"acquirerresponsemessage":"PENDING",
"operatorname":"webservices@example.com",
"livestatus":"0",
"currencyiso3a":"EUR"
}]
}
<responseblock version="3.67">
<requestreference>Xd4nk260v</requestreference>
<response type="AUTH">
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<transactionreference>44-86-102</transactionreference>
<timestamp>2017-03-16 17:34:16</timestamp>
<acquirersecret>gfc8mx0p2fx26f1n5tpy6mtk21naap8c</acquirersecret>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<settlement>
<settleduedate>2017-03-16</settleduedate>
<settlestatus>10</settlestatus>
</settlement>
<acquirerresponsemessage>PENDING</acquirerresponsemessage>
<billing>
<amount currencycode="EUR">1050</amount>
<payment type="SEPADD">
<mandatereference>A-zZa1234567890/+*()/,.</mandatereference>
</payment>
</billing>
<live>0</live>
<other>
<redirecturl>https://example.com</redirecturl>
</other>
<acquirertransactionreference>4</acquirertransactionreference>
<error>
<message>Ok</message>
<code>0</code>
</error>
</response>
<secrand>Z1W</secrand>
</responseblock>
Feldspezifikation
Feld | Format | Beschreibung | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Der zurückgegebene Wert ist "ECOM". | |
acquirersecret XPath: /acquirersecret |
Alphanumerisch (64) | Wird von Trust Payments verwendet, um die Antwort des Acquirers zu überprüfen. (Ihr System braucht dies nicht zu überprüfen) | |
acquirertransactionreference XPath: /acquirertransactionreference |
Alphanumerisch einschließlich Symbole (127) | Einzigartige Transaktionsnummer von der Bank des Kunden zugewiesen. | |
baseamount XPath: /billing/amount |
Numerisch (13) | Der Betrag der Transaktion in Basiseinheiten, ohne Kommas oder Dezimalpunkte, so dass €10 als 1000 zurückgegeben werden. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
Die Währung, in der die Transaktion verarbeitet wurde (im ISO3A-Format). Eine Liste der Währung Codes, die von der SEPA-Lastschrift unterstützt werden, finden Sie in der Liste oben auf dieser Seite. |
|
errorcode XPath: /error/code |
Numerisch (1-5) |
Die Fehlercode (errorcode) sollte verwendet werden, um festzustellen, ob die Anfrage erfolgreich war oder nicht.
Klicken Sie hier für eine vollständige Liste der errorcode und Nachrichtenwerte. |
|
errormessage XPath: /error/message |
Alphanumerisch (255) |
Dies ist die entsprechende Meldung zum obigen Code.
Klicken Sie hier für eine vollständige Liste der errorcode und Nachrichtenwerte. |
|
livestatus XPath: /live |
Numerisch (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alphanumerisch (255) | Der Wert dieses Feldes enthält den Namen des Benutzers, der die Anfrage bearbeitet hat. | |
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Der zurückgegebene Wert ist "SEPADD". | |
redirecturl XPath: /other/redirecturl |
URL (255) | Leiten Sie den Browser des Kunden auf diese URL um, damit er die Zahlung auf den von seiner Bank gehosteten Seiten abschließen kann. | |
requesttypedescription XPath: /@type |
Alpha (20) | Der zurückgegebene Wert ist "AUTH". | |
settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-TT | Das Datum, an dem die Transaktion abgewickelt wird. | |
settlestatus XPath: /settlement/settlestatus |
Numerisch (3) | Damit können Sie den Status der Zahlung ermitteln. Wie dieses Feld am besten zu interpretieren ist, erfahren Sie im Abschnitt Handhabung der Antwort weiter unten. | |
transactionreference XPath: /transactionreference |
Alphanumerisch einschließlich Bindestriche (25) |
Eine eindeutige Referenz für die Transaktion, die von Trust Payments zugewiesen wird. | |
transactionstartedtimestamp XPath: /timestamp |
Datum Uhrzeit JJJJ-MM-TT hh:mm:ss | Der Zeitpunkt, zu dem die Transaktion bearbeitet wurde. | |
acquirerresponsemessage XPath: /acquirerresponsemessage |
Alphanumerisch (255) |
Wird von Ihrem Acquirer verwendet, um das Ergebnis der Anfrage anzuzeigen. Dies hängt von Ihrer Bank ab. Bitte kontaktieren Sie Ihre Bank für weitere Informationen. |
|
errordata XPath: /error/data |
Alphanumerisch (255) |
Zusätzliche Informationen zur Behebung des Fehlers. Wird nur zurückgegeben, wenn ein Fehler aufgetreten ist. |
|
merchantname XPath: /merchant/merchantname |
Alphanumerisch (255) |
Es handelt sich dabei um Angaben zu dem Konto, über das die Transaktion abgewickelt wird. Zum Ändern dieser Felder, bitte Kontaktieren Sie unser Support-Team. Hängt von der Konfiguration Ihres Kontos ab. |
Umgang mit der Antwort
Die settlestatus die in der Antwort AUTH zurückgegeben wird, wird verwendet, um den Status der SEPA-Lastschriftzahlung zu bestimmen:
Wenn die settlestatus 10" ist, ist die Zahlung ausstehend Abrechnung
- Das Geld ist noch nicht auf Ihrem Bankkonto eingegangen.
- Der nächste Schritt ist die Umleitung des Kundenbrowsers auf die redirecturl um die Zahlung abzuschließen.
Das Geld wird erst dann auf Ihr Konto überwiesen, wenn der Kunde auf die Seiten seiner Bank weitergeleitet wird, um die Zahlung abzuschließen. Lesen Sie weiter für weitere Informationen.
- Wenn es eine Aktualisierung der Abrechnungsstatus der AUTH gibt, erhalten Sie eine URL-Benachrichtigung , um Sie darüber zu informieren, dass die settlestatus wurde entweder auf "3" oder "100" aktualisiert.
- Weitere Informationen zu den Notifizierungen finden Sie weiter unten.
Wenn die settlestatus ist "3", wurde die Zahlung storniert
- Die Zahlung wurde abgelehnt, oder es ist ein Fehler aufgetreten.
- Um mehr darüber zu erfahren, warum die Zahlung fehlgeschlagen ist, müssen Sie sich die errorcode. z.B. "70000" bedeutet, dass die Zahlung abgelehnt wurde. Klicken Sie hier, um eine vollständige Liste der Fehlercodes zu erhalten.
Darüber hinaus empfehlen wir, nach der Zahlung zusätzliche Kontrollen durchzuführen.
2. Weiterleitung an die Bank des Kunden
Ihr System muss den Browser des Kunden auf die redirecturleine Seite, die von ihrer Bank betrieben wird, um die Zahlung zu bearbeiten.
Zeigen Sie nicht die redirecturl innerhalb einer iframe. Dies verhindert die korrekte Darstellung des Inhalts und kann letztlich dazu führen, dass die Zahlung nicht erfolgreich abgeschlossen werden kann.
Zu einem späteren Zeitpunkt wird der Kunde dann entweder auf die successfulurlredirect oder die errorurlredirect in der Anfrage AUTH angegeben.
Wird der Kunde auf die Seite successfulurlredirect:
Der Kunde hat die erforderlichen Schritte auf den Seiten seiner Bank erfolgreich abgeschlossen.
Empfohlene Maßnahmen: Zeigen Sie eine Bestätigung an, dass die Zahlung erfolgreich war.
Wird der Kunde auf die Seite errorurlredirect:
Der Kunde ist auf ein Problem gestoßen, das ihn daran gehindert hat, die Zahlung abzuschließen.
Empfohlene Maßnahmen: Informieren Sie den Kunden darüber, dass ein Problem bei der Zahlung aufgetreten ist, und zeigen Sie ausreichende Transaktionsdetails an, damit der Kunde den Zahlungsversuch abfragen kann.
Beim Testen wird Ihnen eine Sandbox-Seite angezeigt. Um eine Testtransaktion durchzuführen, müssen Sie den Anweisungen auf dem Bildschirm folgen. Bitte wenden Sie sich an Ihren Kundenbetreuer, um die Test-Zugangsdaten zu erhalten, die Sie in der Sandbox eingeben müssen.
3. Abschluss der Zahlung
Sobald der Kunde von der von seiner Bank gehosteten Seite entweder zur successfulurlredirect oder errorurlredirect auf Ihrer Website gehostet wird, müssen Sie entweder eine Bestätigungs- oder eine Fehlermeldung anzeigen.
Überprüfen Sie bitte alle URL-Weiterleitungsregeln, die in Regel-Manager auf Ihren Website-Referenz(s) aktiviert sind, da diese möglicherweise im Konflikt stehen und Vorrang vor den successfulurlredirect und errorurlredirect Felder, die in der Anfrage AUTH übermittelt wurden.
Sobald eine Zahlung autorisiert wurde, wird der Betrag zu einem späteren Zeitpunkt überwiesen, der von der Bank des Kunden festgelegt wird.
Das Verfahren Abrechnung für das SEPA-Lastschriftverfahren unterscheidet sich vom Standardverfahren bei kartengestützten Zahlungsarten.
Die Meldung Abrechnung darf nicht unmittelbar nach der Bearbeitung der Anfrage gesendet werden. AUTH
Für den unwahrscheinlichen Fall, dass die Zahlung nach 7 Tagen immer noch aussteht Abrechnung (settlestatus "10"), wird dies zur Untersuchung eingeplant und wir werden Sie mit weiteren Informationen kontaktieren.
Bevor Sie mit dem Testen beginnen, empfehlen wir Ihnen, sich mit unserem Support-Team in Verbindung zu setzen und zu beantragen, dass in Ihrem Konto Regeln aktiviert werden, die URL-Benachrichtigungen in den folgenden Szenarien an Ihr System übermittelt:
- Wenn eine Zahlung genehmigt wird.
- Wenn die Gelder abgewickelt sind.
Konfigurieren der Benachrichtigung Autorisierung
Wir empfehlen, mindestens die folgenden Felder in Ihre Autorisierung Meldung aufzunehmen:
- Antwortnachricht des Käufers (acquirerresponsemessage)
- Basisbetrag (baseamount) (z.B. £10.50 ist "1050")*
- Hauptbetrag (mainamount) (z.B. £10.50 ist "10.50")*
- Rechnungsland (billingcountryiso2a)
- Währung (currencyiso3a)
- Fehlercode (errorcode)
- Live-Status (livestatus)
- Bestellnummer (orderreference)
- Zahlungsart (paymenttypedescription)
- Anforderungstyp (requesttypedescription)
- Abrechnungsstatus (settlestatus)
- Website-Referenz (sitereference)
- Transaktionsnummer (transactionreference)
- Zeitstempel Transaktionsstart (transactionstartedtimestamp)
*Bitte wählen Sie Ihr bevorzugtes Format.
Konfigurieren der Benachrichtigung Abrechnung
Wir empfehlen, die folgenden Felder in Ihre Abrechnung Meldung aufzunehmen:
- Abrechnungsstatus (settlestatus)
- Website-Referenz (sitereference)
- Transaktionsnummer (transactionreference)
Prüfen Sie die Benachrichtigung
Sie müssen den Inhalt jeder eingegangenen Meldung prüfen und entsprechend reagieren, indem Sie die in unserer Website beschriebenen Verfahren befolgen. URL-Benachrichtigungen Dokumentation. Insbesondere müssen Sie sich die aktualisierte settlestatus Wert:
- Auf Autorisierung: Wenn die settlestatus 0", "1" oder "10" ist, wurde die Zahlung autorisiert und Sie müssen zu diesem Zeitpunkt keine weiteren Maßnahmen ergreifen. Werte von "2" oder "3" bedeuten jedoch, dass die Mittel nicht geplant für Abrechnung (ausgesetzt und storniert, bzw.).
- Auf Abrechnung: Wenn die settlestatus auf "100" aktualisiert wurde, bedeutet dies, dass der Betrag beglichen wurde. Wurde der Wert auf "3" aktualisiert, bedeutet dies, dass ein Problem aufgetreten ist und die Zahlung daraufhin storniert wurde.
Stornierte Transaktionen (settlestatus "3") kann zu einem späteren Zeitpunkt beglichen werden. In Fällen, in denen der Kunde die zur Erfüllung der Zahlung erforderlichen Schritte abgeschlossen hat, ist die settlestatus wird auf "100" aktualisiert, um anzuzeigen, dass das Geld auf Ihr Konto überwiesen wurde.
Wenn Sie das Support-Team kontaktiert haben, um Abrechnung Benachrichtigungen zu konfigurieren (wie oben beschrieben), werden Sie benachrichtigt, wenn dies geschieht.
Prüfung
Sie müssen Ihre Lösung testen, bevor Sie mit der Verarbeitung von Live-Zahlungen beginnen können. Testtransaktionen werden über Ihr Testsystem Website-Referenz verarbeitet.
Voraussetzungen
Sie müssen sich mit unserem Support-Team in Verbindung setzen und die Details Ihres Testkontos angeben. Wir werden dann Ihren Test Website-Referenz so konfigurieren, dass er sich direkt mit einer externen Testumgebung verbindet.
Bei der Durchführung von Testtransaktionen wird die in der Antwort AUTH zurückgegebene Umleitungs-URL Ihren Browser auf die Testumgebung umleiten, um eine Zahlung zu simulieren. Ansonsten ist der Prozess genau derselbe wie bei der Verarbeitung von Live-Zahlungen.
Payouts
Es ist möglich, Payouts mit SEPA Direct Debit auszuführen. Die Anfrage und die Antwort für SEPA Direct Debit Payouts folgen der gleichen Feldspezifikation, wie sie in unserer Standarddokumentation Payout beschrieben ist. Klicken Sie hier für weitere Informationen.
Übergeordnete Transaktion verwenden
Nachfolgend ein Beispiel für die Bearbeitung einer Payout, bei der alle erforderlichen Zahlungsnachweise von der referenzierten AUTH übernommen werden:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"requesttypedescriptions": ["REFUND"],
"sitereference": "test_site12345",
"accounttypedescription": "CFT",
"parenttransactionreference": "1-2-345678"
}
strequest = securetrading.Request()
strequest.update(payout)
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^',
);
$requestData = array(
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'test_site12345',
'accounttypedescription' => 'CFT',
'parenttransactionreference' => '1-2-345678'
);
$api = Securetradingapi($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": [{
"requesttypedescriptions": ["REFUND"],
"sitereference": "test_site12345",
"accounttypedescription": "CFT",
"parenttransactionreference": "1-2-345678"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"requesttypedescriptions":["REFUND"],
"sitereference":"test_site12345",
"accounttypedescription":"CFT",
"parenttransactionreference":"1-2-345678"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<operation>
<sitereference>test_site12345</sitereference>
<parenttransactionreference>1-2-345</parenttransactionreference>
<accounttypedescription>CFT</accounttypedescription>
</operation>
</request>
</requestblock>
Ersetzen Sie <DOMAIN>
mit einer unterstützten Domäne. Klicken Sie hier für eine vollständige Liste.
Ohne eine Übergeordnete Anfrage
Wenn Sie eine Payout ohne Verweis auf einen zuvor verarbeiteten SEPA-Lastschriftauftrag AUTH durchführen, müssen Sie sicherstellen, dass der neue Auftrag die folgenden zusätzlichen Pflichtfelder enthält:
- billingcountryiso2a
- billingemail
- Mindestens einer der folgenden Punkte: billingprefix, billingfirstname, billingmiddlename, billinglastname, billingsuffixname
- iban
Beispiel:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout = {
"currencyiso3a": "EUR",
"requesttypedescriptions": ["REFUND"],
"accounttypedescription": "CFT",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "SEPADD",
"billingemail": "customer@email.com",
"billingfirstname": "Joe",
"billinglastname": "Bloggs",
"billingcountryiso2a": "BE",
"iban": "MT00000000000000000000000000"
}
strequest = securetrading.Request()
strequest.update(payout)
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^'
);
$requestData = array(
'currencyiso3a' => 'EUR',
'requesttypedescriptions' => array('REFUND'),
'accounttypedescription' => 'CFT',
'sitereference' => 'test_site12345',
'baseamount' => '1050',
'paymenttypedescription' => 'SEPADD',
'billingemail' => 'customer@email.com',
'successfulurlredirect' => 'https://yourwebsite.com',
'errorurlredirect' => 'https://yourwebsite.com',
'billingfirstname' => 'Joe',
'billinglastname' => 'Bloggs',
'billingcountryiso2a' => 'BE',
'iban' => 'MT00000000000000000000000000'
);
$api = Securetradingapi($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": "EUR",
"requesttypedescriptions": ["REFUND"],
"accounttypedescription": "CFT",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "SEPADD",
"billingemail": "customer@email.com",
"successfulurlredirect": "https://www.example.com/success",
"errorurlredirect": "https://www.example.com/error",
"billingfirstname": "Joe",
"billinglastname": "Bloggs",
"billingcountryiso2a": "BE",
"iban": "MT00000000000000000000000000"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"currencyiso3a":"EUR",
"requesttypedescriptions":["REFUND"],
"accounttypedescription":"CFT",
"sitereference":"test_site12345",
"baseamount":"1050",
"paymenttypedescription":"SEPADD",
"billingemail":"customer@email.com",
"successfulurlredirect":"https://www.example.com/success",
"errorurlredirect":"https://www.example.com/error",
"billingfirstname":"Joe",
"billinglastname":"Bloggs",
"billingcountryiso2a":"BE",
"iban":"MT00000000000000000000000000"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<email>customer@email.com</email>
<name>
<first>Joe</first>
<last>Bloggs</last>
</name>
<country>BE</country>
<amount currencycode="EUR">1050</amount>
<payment type="SEPADD">
<iban>MT00000000000000000000000000</iban>
</payment>
</billing>
<operation>
<sitereference>test_site12345</sitereference>
<accounttypedescription>CFT</accounttypedescription>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. Click here for a full list.