PayPal ist ein internationales E-Commerce-Unternehmen, das Online-Zahlungen und Geldüberweisungen ermöglicht.
Express Checkout Mark (ECM): PayPal wird neben Kredit-/Debitkarten als zusätzliche Zahlungsmethode in Ihrer bestehenden Kasse angezeigt.
Unterstützte Kundenländer | Keine Einschränkungen für Kundenländer. |
Unterstützte Währungen | AUD, CAD, EUR, GBP, JPY, USD |
Rückerstattungen |
Vollständige und teilweise Erstattung möglich. |
Rückbuchungen |
Streitigkeiten werden von PayPal verwaltet. |
Zero-authorisation |
Nicht unterstützt. |
Wiederkehrende Zahlungen |
Nicht unterstützt. |
Vorteile der Umsetzung ECM
- Ermöglicht Ihnen die Integration von PayPal in Ihre bestehende Kassenlösung.
- Die Adresse, die der Kunde auf Ihrer Website angibt, ist endgültig und kann auf der Website von PayPal nicht geändert werden.
Überblick über den Prozess
Was wird der Kunde sehen?
- Während des Bestellvorgangs bietet Ihre Website PayPal als Zahlungsmethode an.
- Der Kunde wählt seine bevorzugte Lieferadresse auf Ihrer Kassenseite aus und entscheidet sich für die Bezahlung mit PayPal.
- Der Kunde wird zu PayPal weitergeleitet, wo er sich mit seinen PayPal-Anmeldedaten anmeldet (er kann sich bei PayPal registrieren, wenn er noch kein Konto hat).
- Der Kunde überprüft seine Bestellung und stimmt der Zahlung auf der Website von PayPal zu.
- Der Kunde wird auf Ihre Website weitergeleitet, wo eine Bestätigung angezeigt wird (z. B. "Zahlung erfolgreich").
Wie funktioniert das hinter den Kulissen?
-
Initiieren Sie den Kunden
- Der Kunde gibt seine bevorzugte Lieferadresse auf der Website des Händlers ein und wählt die Zahlung mit PayPal.
- Der Händler sendet eine Anfrage an ORDER , um die Sitzung zu initiieren, einschließlich cancelurl und returnurl.
- Der Händler erhält die Antwort ORDER , einschließlich paypaltoken und redirecturl.
-
Weiterleitung zu PayPal
- Der Händler leitet den Browser des Kunden auf die redirecturl, einschließlich der paypaltoken.
- Der Kunde meldet sich auf der PayPal-Website an, bestätigt seine bevorzugte Lieferadresse und Zahlungsmethode und erklärt sich mit der Durchführung der Zahlung einverstanden.
- Bei Erfolg wird der Browser des Kunden auf die Seite returnurl.
- Wenn die PayPal-Bestellung abgebrochen wird, wird der Browser auf die Seite cancelurl wo eine Fehlermeldung angezeigt werden kann. Wir empfehlen, dass alternative Zahlungsmethoden angezeigt werden, damit der Kunde es erneut versuchen kann.
-
Verarbeiten Sie die Autorisierung
- Nur wenn dies erfolgreich war, stellt der Händler einen kombinierten Antrag an ORDERDETAILS und AUTH, um die Zahlung zu verarbeiten.
- Der Händler erhält die Antwort ORDERDETAILS AUTH und zeigt dem Kunden die Quittungsseite an.
-
Abschluss der Zahlung
-
In der Standardeinstellung befindet sich die Transaktion in einem schwebenden Zustand, und das Geld wird normalerweise innerhalb von 24 Stunden überwiesen.
-
Wenn Sie es vorziehen, können Händler ihre Einstellungen so konfigurieren, dass sie stattdessen die sofortige Abrechnung der Gelder verlangen. Alternativ kann Abrechnung für bis zu 7 Tage aufgeschoben werden.
-
Eine URL-Benachrichtigung kann so konfiguriert werden, dass das System des Händlers aktualisiert wird, sobald Abrechnung abgeschlossen ist. Klicken Sie hier, um mehr zu erfahren.
-
1. Initiieren Sie den Kunden
Anzeige von PayPal auf Ihrer Kasse
Das offizielle PayPal-Akzeptanzzeichen muss auf Ihrer Detailseite gleichberechtigt und in unmittelbarer Nähe zu anderen Zahlungsarten dargestellt werden. Standardmäßig sollte Zahlungsart nicht ausgewählt sein.
Sie können die neuesten offiziellen Bilder des PayPal-Akzeptanzzeichens von dieser URL herunterladen:
https://www.paypal.com/uk/webapps/mpp/logo-center (Link zu externer Seite)
Wenn Sie PayPal auswählen, müssen die Felder für die Kartenzahlung deaktiviert oder ausgeblendet werden.
Wenn sich der Kunde für eine Zahlung mit PayPal entscheidet, muss Ihr System eine ORDER Anfrage durchführen und die zurückgegebene Antwort interpretieren.
ORDER Beispiel anfordern
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
order = {
"currencyiso3a": "GBP",
"requesttypedescription": "ORDER",
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "2001",
"paymenttypedescription": "PAYPAL",
"returnurl": "https://yourwebsite.com",
"cancelurl": "https://yourwebsite.com",
"paypallocale": "GB",
"paypaladdressoverride": "1",
"paypalemail": "billing@email.com"
}
strequest = securetrading.Request()
strequest.update(order)
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' => 'GBP',
'requesttypedescription' => 'ORDER',
'accounttypedescription' => 'ECOM',
'sitereference' => 'test_site12345',
'baseamount' => '2001',
'paymenttypedescription' => 'PAYPAL',
'returnurl' => 'https://yourwebsite.com',
'cancelurl' => 'https://yourwebsite.com',
'paypallocale' => 'GB',
'paypaladdressoverride' => '1',
'paypalemail' => 'billing@email.com'
);
$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",
"requesttypedescription": "ORDER",
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "2001",
"paymenttypedescription": "PAYPAL",
"returnurl": "https://yourwebsite.com",
"cancelurl": "https://yourwebsite.com",
"paypallocale": "GB",
"paypaladdressoverride": "1",
"paypalemail": "billing@email.com"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"currencyiso3a":"GBP",
"requesttypedescription":"ORDER",
"accounttypedescription":"ECOM",
"sitereference":"test_site12345",
"baseamount":"2001",
"paymenttypedescription":"PAYPAL",
"returnurl":"https://yourwebsite.com",
"cancelurl":"https://yourwebsite.com",
"paypallocale":"GB",
"paypaladdressoverride":"1",
"paypalemail":"billing@email.com"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDER">
<merchant>
<returnurl>https://www.example.com/return</returnurl>
<cancelurl>https://www.example.com/cancel</cancelurl>
</merchant>
<billing>
<amount currencycode="GBP">2001</amount>
<payment type="PAYPAL">
<locale>GB</locale>
<paypaladdressoverride>1</paypaladdressoverride>
<paypalemail>billing@email.com</paypalemail>
</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 (11) | 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) | |
cancelurl XPath: /merchant/cancelurl |
URL (2048) | Die URL, zu der der Kunde zurückgeführt wird, wenn er die Autorisierung auf seinem PayPal-Konto storniert. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
Die Währung , in der die Transaktion verarbeitet werden soll (im ISO3A-Format). Eine Liste der von PayPal unterstützten Währung Codes finden Sie in der Liste oben auf dieser Seite. |
|
customerprefixname XPath: /customer/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 Kundennamen muss ausgefüllt werden, wenn paypaladdressoverride auf "1" gesetzt ist. Ansonsten sind diese Felder optional. |
|
customerfirstname XPath: /customer/name/first |
Alphanumerisch einschließlich Symbole (127) |
Der Kunde ist Rechnungsvorname. Mindestens eines der Felder für den Kundennamen muss ausgefüllt werden, wenn paypaladdressoverride auf "1" gesetzt ist. Ansonsten sind diese Felder optional. |
|
customermiddlename XPath: /customer/name/middle |
Alphanumerisch einschließlich Symbole (127) |
Der/die mittlere(n) Rechnungsname(n) des Kunden. Mindestens eines der Felder für den Kundennamen muss ausgefüllt werden, wenn paypaladdressoverride auf "1" gesetzt ist. Ansonsten sind diese Felder optional. |
|
customerlastname XPath: /customer/name/last |
Alphanumerisch einschließlich Symbole (127) |
Der Kunde ist Rechnungsnachname. Mindestens eines der Felder für den Kundennamen muss ausgefüllt werden, wenn paypaladdressoverride auf "1" gesetzt ist. Ansonsten sind diese Felder optional. |
|
customersuffixname XPath: /customer/name/suffix |
Alphanumerisch einschließlich Symbole (25) |
Der Suffixname des Kunden (z. B. Bsc). Mindestens eines der Felder für den Kundennamen muss ausgefüllt werden, wenn paypaladdressoverride auf "1" gesetzt ist. Ansonsten sind diese Felder optional. |
|
customerpremise XPath: /customer/premise |
Alphanumerisch einschließlich Symbole (25) |
Der Name oder die Hausnummer des Kunden. Diese Kundenadressfelder sind erforderlich, wenn paypaladdressoverride auf "1" gesetzt ist. Ansonsten sind diese Felder optional. |
|
customertown XPath: /customer/town |
Alphanumerisch einschließlich Symbole (127) |
Die Stadt des Kunden. Diese Kundenadressfelder sind erforderlich, wenn paypaladdressoverride auf "1" gesetzt ist. Ansonsten sind diese Felder optional. |
|
customercountryiso2a XPath: /customer/country |
Alpha (2) |
Das Land des Kunden. Dieses muss im ISO2A-Format angegeben werden. Klicken Sie hier für eine vollständige Liste der Ländercodes. Diese Kundenadressfelder sind erforderlich, wenn paypaladdressoverride auf "1" gesetzt ist. Ansonsten sind diese Felder optional. |
|
customerstreet XPath: /customer/street |
Alphanumerisch einschließlich Symbole (127) | Der Straßenname des Kunden. | |
customercounty XPath: /customer/county |
Alphanumerisch einschließlich Symbole (127) |
Der Bezirk des Kunden. Bei US-Adressen wird der Bundesstaat in dieses Feld eingegeben. Gültige Formate:
Erforderlich, wenn customercountryiso2a ist eine der folgenden: AR, BR, CA, CN, ID, IN, IT, JP, MX, TH, US |
|
customerpostcode XPath: /customer/postcode |
Alphanumerisch (25) |
Die Postleitzahl des Kunden oder die Postleitzahl.
Es muss sich um eine gültige Postleitzahl für den customercountryiso2a vorgelegt. |
|
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 Bestellnummer, die auf Trust Payments und im PayPal-System gespeichert werden kann (dies ist Ihre PayPal-Rechnungs-ID).
Achten Sie bitte bei der Übermittlung darauf, dass die Bestellnummer für jede Bestellung eindeutig ist. |
|
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Dieser Wert muss als "PAYPAL" angegeben werden. | |
paypaladdressoverride XPath: /billing/payment/paypaladdressoverride |
Numerisch (1) |
Wenn Sie den ECM Flow verwenden, wird die auf Ihrer Website eingegebene Lieferadresse an PayPal übermittelt und kann vom Kunden auf der PayPal-Website nicht geändert werden. Bitte geben Sie einen der folgenden Werte ein:
|
|
paypalemail XPath: /billing/payment/paypalemail |
E-Mail (255) | Die E-Mail-Adresse, die der Kunde für die Anmeldung bei PayPal verwenden wird. Vor dem @-Symbol sind maximal 64 Zeichen zulässig. | |
paypallocale XPath: /billing/payment/locale |
Alpha (2) |
Die Sprache der PayPal-Anmeldeseite.
Klicken Sie hier, um eine Liste der PayPal-Standorte zu erhalten (Link zu externer Seite). |
|
requesttypedescription XPath: /@type |
Alpha (20) | Der Wert in der Anfrage muss "ORDER" lauten. | |
returnurl XPath: /merchant/returnurl |
URL (2048) | Die URL, zu der der Kunde nach einer erfolgreichen Autorisierung auf seinem PayPal-Konto zurückgeführt wird. | |
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. |
ORDER Antwortbeispiel
{
u 'requestreference': u 'A0bxh87wt',
u 'version': u '1.00',
u 'responses': [{
u 'transactionreference': u '72-32-20002',
u 'paymenttypedescription': u 'PAYPAL',
u 'settleduedate': u '2020-06-01',
u 'transactionstartedtimestamp': u '2020-06-01 15:35:40',
u 'errormessage': u 'Ok',
u 'accounttypedescription': u 'ECOM',
u 'errorcode': u '0',
u 'redirecturl': u 'https://webapp.securetrading.net/cgi-bin/webscr?token=72x32x20002&useraction=commit&cmd=_express-checkout&paypalemail=billing%40email.com',
u 'requesttypedescription': u 'ORDER',
u 'settlestatus': u '0',
u 'operatorname': u 'webservices@example.com',
u 'livestatus': u '0',
u 'paypaltoken': u '72x32x20002'
}]
}
array(3) {
["requestreference"] => string(9) "A349bdehj"
["version"] => string(4) "1.00"
["responses"] =>array(1) {
[0] => array(13) {
["transactionreference"] => string(11) "72-32-20002"
["paymenttypedescription"] => string(6) "PAYPAL"
["settleduedate" ]=> string(10) "2020-06-01"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:35:40"
["errormessage"] => string(2) "Ok"
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["redirecturl"] => string(137) "https://webapp.securetrading.net/cgi-bin/webscr?token=72x32x20002&useraction=commit&cmd=_express-checkout&paypalemail=billing%40email.com"
["requesttypedescription"] => string(5) "ORDER"
["settlestatus"] => string(1) "0"
["operatorname"] => string(23) "webservices@example.com"
["livestatus"] => string(1) "0"
["paypaltoken"] => string(11) "72x32x20002"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"transactionreference":"72-32-20002",
"paymenttypedescription":"PAYPAL",
"settleduedate":"2020-06-01",
"transactionstartedtimestamp":"2020-06-01 15:35:40",
"errormessage":"Ok",
"accounttypedescription":"ECOM",
"errorcode":"0",
"redirecturl":"https://webapp.securetrading.net/cgi-bin/webscr?token=72x32x20002&useraction=commit&cmd=_express-checkout&paypalemail=billing%40email.com",
"requesttypedescription":"ORDER",
"settlestatus":"0",
"operatorname":"webservices@example.com",
"livestatus":"0",
"paypaltoken":"72x32x20002"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X62d3qhev</requestreference>
<response type="ORDER">
<merchant>
<operatorname>webservices@example.com</operatorname>
</merchant>
<transactionreference>72-32-20002</transactionreference>
<billing>
<payment type="PAYPAL"/>
</billing>
<timestamp>2020-06-01 15:35:40</timestamp>
<paypal>
<redirecturl>https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout&paypalemail=billing%40email.com</redirecturl>
<token>56604A14170900854600</token>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<live>1</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
</response>
<secrand>9yFfRJfI</secrand>
</responseblock>
Feldspezifikation
Feld | Format | Beschreibung | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Der zurückgegebene Wert ist "ECOM". | |
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. |
|
errordata XPath: /error/data |
Alphanumerisch (255) |
Zusätzliche Informationen zur Behebung des Fehlers. Wird nur zurückgegeben, wenn ein Fehler aufgetreten ist. |
|
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 "PAYPAL". | |
paypaltoken XPath: /paypal/token |
Alphanumerisch (255) | Das Token bezieht sich auf die Sitzung des Kunden innerhalb des PayPal-Systems. Sie sollten dies protokollieren, da Sie es dann für alle relevanten Rückfragen bei PayPal verwenden können. | |
redirecturl XPath: /paypal/redirecturl |
URL (255) | Leiten Sie den Browser des Kunden auf diese URL um, damit er sich bei seinem PayPal-Konto anmelden kann. | |
requesttypedescription XPath: /@type |
Alpha (20) | Der zurückgegebene Wert ist "ORDER". | |
settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-TT | Das Datum, an dem die Transaktion abgewickelt wird. | |
settlestatus XPath: /settlement/settlestatus |
Numerisch (3) |
|
|
transactionreference XPath: /transactionreference |
Alphanumerisch einschließlich Bindestriche (25) |
Eine eindeutige Referenz für die Anfrage, die von Trust Payments zugewiesen wird. | |
transactionstartedtimestamp XPath: /timestamp |
Datum Uhrzeit JJJJ-MM-TT hh:mm:ss | Der Zeitpunkt, zu dem die Anfrage bearbeitet wurde. |
Zusätzliche Hinweise zu ORDER Anfragen
- Der Kundenname, die Kundenbetriebsstätte, der Kundenort und das Kundenland sind erforderlich, wenn Sie paypaladdressoverride Option "1".
- Wenn PayPal eine Transaktion ablehnt, während sich der Kunde auf seinen Servern befindet, wird eine Meldung auf dem Bildschirm angezeigt. Der Kunde kann aufgefordert werden, es erneut zu versuchen oder den Zahlungsversuch abzubrechen.
- Sie können Ihr PayPal-Konto so konfigurieren, dass die Prüfung auf doppelte Rechnungs-IDs (Werte, die im Feld orderreference). Wenden Sie sich für weitere Informationen an den PayPal-Support.
2. Weiterleitung zu PayPal
Nach erfolgreicher Übermittlung einer ORDER Anfrage, erhält Ihr System eine redirecturl in der Antwort. Ihr System muss den Browser des Kunden auf diese URL umleiten, die eine von PayPal gehostete Seite ist, um die Zahlung zu verarbeiten.
Beim Testen wird unsere simulierte PayPal-Anmeldeseite (wie unten gezeigt) anstelle einer echten PayPal-Anmeldeseite angezeigt.
Nach der Anmeldung bei seinem PayPal-Konto hat der Kunde die Möglichkeit, die Transaktion fortzusetzen oder abzubrechen. Beim Testen können Sie dies mit einer der unten stehenden E-Mails auf unserem Testbildschirm für die PayPal-Anmeldung nachbilden.
E-Mail-Adresse | Szenario | Ergebnis |
---|---|---|
auth@auth.com | Der Kunde führt eine erfolgreiche Transaktion durch. | Der Browser des Kunden wird zu der URL umgeleitet, die in der returnurl die mit dem Antrag ORDER eingereicht wurde. |
cancel@cancel.com | Der Kunde entscheidet sich, die Transaktion zu stornieren. | Der Browser des Kunden wird zu der URL umgeleitet, die in der cancelurl die mit dem Antrag ORDER eingereicht wurde. |
Sie müssen warten, bis der Kunde von der PayPal-Anmeldeseite zur returnurl die auf Ihren Servern gehostet werden, bevor eine Autorisierung verarbeitet wird.
3. Bearbeitung der Autorisierungen
Wird der Kunde auf die Seite cancelurl:
Bieten Sie Ihren Kunden alternative Zahlungsmöglichkeiten an, damit sie es noch einmal versuchen können.
Wird der Kunde auf die Seite returnurl:
Befolgen Sie die nachstehenden Anweisungen.
ORDERDETAILS AUTH Beispiel anfordern
Dieses Beispiel zeigt, wie eine ORDERDETAILS gefolgt von einer AUTH Anfrage verarbeitet werden kann. Beachten Sie, dass die Struktur der Anfrage ähnlich wie die einer Standard AUTH Anfrage, mit Ausnahme von "ORDERDETAILS", das in der requesttypedescriptions Feld vor "AUTH".
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
orderdetailsauth = {
"requesttypedescriptions": ["ORDERDETAILS","AUTH"],
"sitereference": "test_site12345",
"parenttransactionreference": "72-32-20002",
"paymenttypedescription": "PAYPAL",
"paypaladdressoverride": "1"
}
strequest = securetrading.Request()
strequest.update(orderdetailsauth)
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('ORDERDETAILS','AUTH'),
'sitereference' => 'test_site12345',
'parenttransactionreference' => '72-32-20002',
'paymenttypedescription' => 'PAYPAL',
'paypaladdressoverride' => '1'
);
$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": [{
"requesttypedescriptions": ["ORDERDETAILS","AUTH"],
"sitereference": "test_site12345",
"parenttransactionreference": "72-32-20002",
"paymenttypedescription": "PAYPAL",
"paypaladdressoverride": "1"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"requesttypedescriptions":["ORDERDETAILS","AUTH"],
"sitereference":"test_site12345",
"parenttransactionreference":"72-32-20002",
"paymenttypedescription":"PAYPAL",
"paypaladdressoverride":"1"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDERDETAILS">
<operation>
<sitereference>test_site12345</sitereference>
<parenttransactionreference>72-32-20002</parenttransactionreference>
</operation>
</request>
<request type="AUTH">
<billing>
<payment type="PAYPAL">
<paypaladdressoverride>1</paypaladdressoverride>
</payment>
</billing>
</request>
</requestblock>
Ersetzen Sie <DOMAIN>
mit einer unterstützten Domäne. Klicken Sie hier für eine vollständige Liste.
Feldspezifikation
Feld | Format | Beschreibung | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alphanumerisch & Bindestriche (25) |
Einreichen der transactionreference die in der vorangegangenen Antwort ORDER zurückgegeben wurde. | |
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Dieser Wert muss als "PAYPAL" angegeben werden. | |
paypaladdressoverride XPath: /billing/payment/paypaladdressoverride |
Numerisch (1) | Es muss derselbe Wert sein, der in der Anfrage ORDER angegeben wurde. | |
requesttypedescriptions Note: The XML submission is comprised of two separate requests. We recommend using the example above to help structure this request. |
Liste | Geben Sie "ORDERDETAILS" und "AUTH" ein, wie im obigen Antragsbeispiel gezeigt. | |
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. |
ORDERDETAILS AUTH Antwortbeispiel
Hier ist ein Beispiel für eine kombinierte Antwort von ORDERDETAILS und AUTH . Beachten Sie, dass die Antwort in zwei Teile unterteilt ist; der erste Teil stellt die Antwort "ORDERDETAILS" dar und der zweite Teil die Antwort "AUTH" (wie durch die Werte der Felder requesttypedescription Felder).
{
u 'requestreference': u 'A0dcb11e6',
u 'version': u '1.00',
u 'responses': [{
u 'transactionreference': u '72-32-20003',
u 'merchantname': u 'Test Merchant',
u 'billinglastname': u 'PAYPALLastName',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:00',
u 'paypalpayerstatus': u 'verified',
u 'parenttransactionreference': u '72-32-20002',
u 'accounttypedescription': u 'ECOM',
u 'errorcode': u '0',
u 'settleduedate': u '2020-06-01',
u 'billingcountryiso2a': u 'GB',
u 'paypalpayerid': u 'e018408a43pid',
u 'paypaladdressstatus': u 'Confirmed',
u 'billingemail': u 'paypal.email@example.com',
u 'requesttypedescription': u 'ORDERDETAILS',
u 'errormessage': u 'Ok',
u 'billingfirstname': u 'Andru00e9',
u 'operatorname': u 'webservices@example.com',
u 'livestatus': u '0',
u 'settlestatus': u '0'
}, {
u 'transactionreference': u '72-32-20004',
u 'merchantname': u 'Test Merchant',
u 'paymenttypedescription': u 'PAYPAL',
u 'authcode': u '44782-D149613359266',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:00',
u 'errormessage': u 'Ok',
u 'parenttransactionreference': u '72-32-20003',
u 'accounttypedescription': u 'ECOM',
u 'errorcode': u '0',
u 'settleduedate': u '2020-06-01',
u 'currencyiso3a': u 'GBP',
u 'baseamount': u '2001',
u 'acquirerresponsecode': u 'None',
u 'requesttypedescription': u 'AUTH',
u 'operatorname': u 'webservices@example.com',
u 'livestatus': u '0',
u 'settlestatus': u '0'
}]
}
array(3) {
["requestreference"] => string(9) "A58cdfkpy"
["version"] => string(4) "1.00"
["responses"] => array(2) {
[0] => array(19) {
["transactionreference"] => string(11) "72-32-20003"
["merchantname"] => string(13) "Test Merchant"
["billinglastname"] => string(14) "PAYPALLastName"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:00"
["paypalpayerstatus"] => string(8) "verified"
["parenttransactionreference"] => string(11) "72-32-20002"
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["settleduedate"] => string(10) "2020-06-01"
["billingcountryiso2a"] => string(2) "GB"
["paypalpayerid"] => string(13) "e018408a43pid"
["paypaladdressstatus"] => string(9) "Confirmed"
["billingemail"] => string(24) "paypal.email@example.com"
["requesttypedescription"] => string(12) "ORDERDETAILS"
["errormessage"] => string(2) "Ok"
["billingfirstname"] => string(10) "Andru00e9"
["operatorname"] => string(23) "webservices@example.com"
["livestatus"] => string(1) "0"
["settlestatus"] => string(1) "0"
}
[1] =>array(17) {
["transactionreference"] => string(11) "72-32-20004"
["merchantname"] => string(13) "Test Merchant"
["paymenttypedescription"] => string(6) "PAYPAL"
["authcode"] => string(19) "44782-D149613359266"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:00"
["errormessage"] => string(2) "Ok"
["parenttransactionreference"] => string(11) "72-32-20003"
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["settleduedate"] => string(10) "2020-06-01"
["currencyiso3a"] => string(3) "GBP"
["baseamount"] => string(4) "2001"
["acquirerresponsecode"] => string(4) "None"
["requesttypedescription"] => string(4) "AUTH"
["operatorname"] => string(23) "webservices@example.com"
["livestatus"] => string(1) "0"
["settlestatus"] => string(1) "0"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"transactionreference":"72-32-20003",
"merchantname":"Test Merchant",
"billinglastname":"PAYPALLastName",
"transactionstartedtimestamp":"2020-06-01 15:36:00",
"paypalpayerstatus":"verified",
"parenttransactionreference":"72-32-20002",
"accounttypedescription":"ECOM",
"errorcode":"0",
"settleduedate":"2020-06-01",
"billingcountryiso2a":"GB",
"paypalpayerid":"e018408a43pid",
"paypaladdressstatus":"Confirmed",
"billingemail":"paypal.email@example.com",
"requesttypedescription":"ORDERDETAILS",
"errormessage":"Ok",
"billingfirstname":"Andru00e9",
"operatorname":"webservices@example.com",
"livestatus":"0",
"settlestatus":"0"
},
{
"transactionreference":"72-32-20004",
"merchantname":"Test Merchant",
"paymenttypedescription":"PAYPAL",
"authcode":"44782-D149613359266",
"transactionstartedtimestamp":"2020-06-01 15:36:00",
"errormessage":"Ok",
"parenttransactionreference":"72-32-20003",
"accounttypedescription":"ECOM",
"errorcode":"0",
"settleduedate":"2020-06-01",
"currencyiso3a":"GBP",
"baseamount":"2001",
"acquirerresponsecode":"None",
"requesttypedescription":"AUTH",
"operatorname":"webservices@example.com",
"livestatus":"0",
"settlestatus":"0"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X538160153</requestreference>
<response type="ORDERDETAILS">
<merchant>
<merchantname>My Test Site</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<customer>
<town>PAYPAL City</town>
<county>MI</county>
<street>MORE STREET</street>
<name>
<last>PayPalShipToName</last>
</name>
<premise>1 PayPalStreet</premise>
<country>US</country>
<ip>1.2.3.4</ip>
</customer>
<transactionreference>72-32-20003</transactionreference>
<billing>
<name>
<last>PAYPALLastName</last>
</name>
<country>GB</country>
<email>paypal.email@example.com</email>
<telephone type="M">0777777777</telephone>
</billing>
<timestamp>2020-06-01 15:36:00</timestamp>
<paypal>
<addressstatus>Confirmed</addressstatus>
<payerstatus>verified</payerstatus>
<payerid>4d22e2606apid</payerid>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<live>1</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<operation>
<parenttransactionreference>72-32-20002</parenttransactionreference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
</response>
<response type="AUTH">
<merchant>
<merchantname>My Test Site</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<transactionreference>72-32-20004</transactionreference>
<timestamp>2020-06-01 15:36:00</timestamp>
<acquirerresponsecode>None</acquirerresponsecode>
<operation>
<parenttransactionreference>72-32-20003</parenttransactionreference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<billing>
<amount currencycode="GBP">2001</amount>
<payment type="PAYPAL"/>
</billing>
<authcode>83154-D140912749345</authcode>
<live>1</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
</response>
<secrand>oSs0Vl</secrand>
</responseblock>
Feldspezifikation
Da viele der in dieser Antwort zurückgegebenen Felder auch in einer Standardantwort von AUTH zu finden sind, haben wir im Folgenden nur die wichtigsten Felder aufgeführt, die für die Bearbeitung von PayPal-Antworten relevant sind.
Klicken Sie hier, um die vollständige Spezifikation von AUTH aufzurufen.
Feld | Format | Beschreibung | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Der zurückgegebene Wert ist "ECOM". | |
errorcode XPath: /error/code |
Numerisch (1-5) |
Die Fehlercode (errorcode) sollte verwendet werden, um festzustellen, ob die Anfrage erfolgreich war oder nicht.
Vergessen Sie nicht, die Fehlerantwort sowohl in ORDERDETAILS als auch in AUTH zu überprüfen. Klicken Sie hier für eine vollständige Liste der errorcode und Nachrichtenwerte. |
|
errordata XPath: /error/data |
Alphanumerisch (255) |
Zusätzliche Informationen zur Behebung des Fehlers.
Vergessen Sie nicht, die Fehlerantwort sowohl in ORDERDETAILS als auch in AUTH zu überprüfen. Wird nur zurückgegeben, wenn ein Fehler aufgetreten ist. |
|
errormessage XPath: /error/message |
Alphanumerisch (255) |
Dies ist die entsprechende Meldung zum obigen Code.
Vergessen Sie nicht, die Fehlerantwort sowohl in ORDERDETAILS als auch in AUTH zu überprüfen. Klicken Sie hier für eine vollständige Liste der errorcode und Nachrichtenwerte. |
|
livestatus XPath: /live |
Numerisch (1) |
|
|
merchantname XPath: /merchant/merchantname |
Alphanumerisch (255) |
Es handelt sich dabei um Angaben zu dem Konto, über das die Transaktion abgewickelt wird.
Wenn Sie diese Felder ändern möchten, wenden Sie sich bitte an unser Support-Team. Hängt von der Konfiguration Ihres Kontos ab. |
|
operatorname XPath: /merchant/operatorname |
Alphanumerisch (255) | Der Wert dieses Feldes enthält den Namen des Benutzers, der die Anfrage bearbeitet hat. | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alphanumerisch & Bindestriche (25) |
Dieses Feld wird in beiden Abschnitten der Antwort zurückgegeben und bezieht sich auf frühere Anfragen, die in der Folge bearbeitet wurden. | |
Wird nur in der Antwort AUTH zurückgegeben. |
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Der zurückgegebene Wert ist "PAYPAL". |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
paypaladdressstatus XPath: /paypal/addressstatus |
Alpha (25) | Der Status der Adresse bei PayPal. Entweder "Confirmed" oder "Unconfirmed". |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
paypalpayerid XPath: /paypal/payerid |
Alphanumerisch (255) | Eindeutige PayPal-Kontonummer. |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
paypalpayerstatus XPath: /paypal/payerstatus |
Alpha (25) | Der Status des Zahlers bei PayPal. Entweder "verified" oder "unverified". |
requesttypedescription XPath: /@type |
Alpha (20) | "ORDERDETAILS" und "AUTH" werden in ihren jeweiligen Antworten zurückgegeben. | |
settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-TT | Das Datum, an dem die Transaktion abgewickelt wird. | |
settlestatus XPath: /settlement/settlestatus |
Numerisch (3) | Der in der Antwort AUTH zurückgegebene Wert wird zur Bestimmung des Transaktionsstatus verwendet. Klicken Sie hier für weitere Informationen über die settlestatus und den Abrechnung Prozess für PayPal. | |
transactionreference XPath: /transactionreference |
Alphanumerisch einschließlich Bindestriche (25) |
Eindeutige Referenzen für beide Anfragen, zugewiesen von Trust Payments. | |
transactionstartedtimestamp XPath: /timestamp |
Datum Uhrzeit JJJJ-MM-TT hh:mm:ss | Die Zeit, zu der jede Anfrage bearbeitet wurde. |