Trust Payments hat kürzlich die Unterstützung für die Integration mit der neuesten Plattform von PayPal hinzugefügt. Dies soll die Kompatibilität mit neuen PayPal-Funktionen gewährleisten und einen effizienteren Einführungsprozess für neue Händler ermöglichen.
Etablierte Trust Payments Händler, die bereits mit PayPal arbeiten, müssen die folgenden Schritte unternehmen, um PayPal auch in Zukunft nutzen zu können:
-
Sie müssen sich auf der neuen PayPal-Plattform anmelden. Dabei handelt es sich um einen vereinfachten Prozess, bei dem Sie per E-Mail einen Link erhalten, mit dem Sie den neuen Bedingungen zustimmen und Trust Payments die für die Verknüpfung mit Ihrem PayPal-Konto erforderlichen Berechtigungen erteilen.
-
PayPal verlangt, dass Sie die an unsere API übermittelte ORDER -Anfrage aktualisieren, um zusätzliche Informationen zu allen Produkten in der Bestellung des Kunden aufzunehmen.
Jede ORDER Anfrage wird nun erforderlich die folgenden Felder ausgefüllt werden:
-
Produkte mit einem Array von JSON-Objekten, die jeweils die folgenden Felder für jedes Produkt in der Bestellung des Kunden enthalten:
- productmainamount - Der Preis pro Produkt.
- productcurrencyiso3a - Die Währung ist mit dem Produktpreis verbunden.
- productquantity - Die Menge des Produkts in der Bestellung.
- producttitle - Der Name des Produkts.
Für vollständige Feldspezifikationen wählen Sie bitte zwischen den Registerkarten ECM und ECS und blättern Sie zu dem entsprechenden Abschnitt, der die Anfrage/Antwort beschreibt, mit der Sie arbeiten müssen.
Händler, die in bestimmten Branchen tätig sind, die von PayPal als besonders risikoreich eingestuft werden, müssen die Anfrage ORDER aktualisieren und die folgenden zusätzlichen Felder angeben:
- Die Produkte Array oben muss auch die folgenden zusätzlichen Felder für jedes Produkt in der Bestellung des Kunden enthalten:
- productcode - Die Stock Keeping Unit (SKU) des Produkts.
- productdescription - Eine Beschreibung des Produkts.
- producttaxmainamount - Die auf das Produkt angewandte Steuer.
- producttaxcurrencyiso3a - Die Währung , die mit der angewandten Steuer verbunden ist.
- producttype - Wählen Sie einen Produkttyp aus "digital", "physisch" oder "Geschenk".
- paypaltransactionriskcontextdata mit einem Array von JSON-Objekten, die jeweils die Felder paypaltransactionriskcontextdatakey und paypaltransactionriskcontextdatavalue.
-
Produkte mit einem Array von JSON-Objekten, die jeweils die folgenden Felder für jedes Produkt in der Bestellung des Kunden enthalten:
-
Sie können nun während des Bestellvorgangs den Versandbetrag an Trust Payments übermitteln.
- Wenn Sie zu Beginn der Bestellung den endgültigen Versandbetrag kennen, sollten Sie diesen in der Anfrage ORDER im Feld " Kundenversandbasisbetrag" angeben. Auf diese Weise wird dem Kunden eine bessere Benutzererfahrung geboten, da der Versandbetrag auf der PayPal-Website angezeigt wird, bevor er dem Kauf zustimmt.
- Wenn Sie den Datenfluss ECS verwenden, können Sie die Antwort ORDERDETAILS nach der Lieferadresse des Kunden durchsuchen und damit den Versandbetrag berechnen. Dieser kann dann in der Anfrage AUTH unter Verwendung des Feldes customerhippingbaseamount übermittelt werden.
- Denken Sie daran, dass die Angabe des Versandbetrags zwar empfohlen, aber nicht vorgeschrieben ist. Sie sind zum Beispiel nicht gezwungen, einen Versandbetrag für digitale Einkäufe anzugeben, die keinen Versand erfordern.
-
Wenn Sie die Antwort ORDERDETAILS analysieren, müssen Sie sich bewusst sein, dass die PayPal-Adresse und der Status des Zahlers auf der neuen Plattform nicht mehr überprüft werden (diese Überprüfungen wurden abgeschafft) und daher paypaladdressstatus immer "Unbestätigt" zurückgeben wird und paypalpayerstatus wird immer "Unbestätigt" zurückgeben.
Der Gesamtfluss von gesendeten Anfragen und empfangenen Antworten bleibt unverändert. Dies ermöglicht Ihnen, Ihre bestehende Implementierung zu aktualisieren, ohne bei Null anfangen zu müssen.
Wir empfehlen Ihnen, diese Änderungen zunächst in einer Staging-Umgebung zu implementieren und die Integration zu testen, bevor Sie sie in einer Produktionsumgebung bereitstellen. Im Rahmen dieses Prozesses kann Ihre Test-Site so konfiguriert werden, dass sie eine Verbindung zur Sandbox-Umgebung von PayPal herstellt, um die Kundenreise während der Tests genauer darzustellen.
Insbesondere sollten Sie sicherstellen, dass Sie die neuen "Später bezahlen"-Optionen verstehen, die jetzt angezeigt werden können, wenn der Kunde zu PayPal weitergeleitet wird, und dass Ihre Lösung dies berücksichtigt.
PayPal ist ein internationales E-Commerce-Unternehmen, das Online-Zahlungen und Geldüberweisungen ermöglicht.
Unterstützte Kundenländer | Keine Einschränkungen für Kundenländer. |
Unterstützte Währungen | AUD, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, 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. |
Wir unterstützen zwei PayPal-Transaktionsabläufe:
Verwenden Sie die obigen Registerkarten, um den Arbeitsablauf zu ändern.
Nachstehend finden Sie Express Checkout Mark ( ECM)
Express Checkout Mark (ECM ) - PayPal wird neben Kredit-/Debitkarten als zusätzliche Zahlungsmethode in Ihrer bestehenden Kasse angezeigt.
- 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").
Später bezahlen
Während der Zeit, in der der Browser des Kunden auf die von PayPal gehosteten Seiten umgeleitet wird, hat PayPal die Kontrolle über die Kaufabwicklung. Um den Kunden die Möglichkeit zu geben, die Kosten für größere Einkäufe zu verteilen, kann PayPal zusätzliche Finanzierungsoptionen für Transaktionen anzeigen, die ihren Anforderungen entsprechen.
Erste Schritte
Voraussetzungen
- Bevor Sie PayPal Live-Transaktionen verarbeiten können, benötigen Sie ein PayPal Geschäftskonto. Wenn Sie noch kein Geschäftskonto haben, werden Sie im Rahmen des unten beschriebenen Einführungsprozesses aufgefordert, ein neues Konto zu registrieren.
- PayPal unterstützt nicht, dass die von PayPal gehosteten Seiten innerhalb einer iframe gerendert werden. Stattdessen müssen Sie den Browser des Kunden während der Kaufabwicklung immer zu PayPal umleiten.
Für einige Branchen (z. B. Reisen, Spiele und Veranstaltungen) benötigt PayPal zusätzliche Informationen, die als Set Transaction Context (STC) bezeichnet werden. Diese Informationen können in Ihren Anfragen an Trust Payments enthalten sein und werden bei Bedarf an PayPal weitergeleitet. Bitte kontaktieren Sie unser Support-Team für weitere Informationen.
PayPal Onboarding
- Wenden Sie sich an unser Support-Team und erkundigen Sie sich nach der Aktivierung von PayPal auf Ihrem TRU Connect -Konto.
- Unser Support-Team wird Ihnen eine URL zur Verfügung stellen, mit der Sie die Einrichtung abschließen können.
-
Rufen Sie die URL direkt in Ihrem Browser auf und melden Sie sich mit Ihrem PayPal Business-Konto an.
Wenn Sie noch kein PayPal Business-Konto registriert haben, werden Sie im Rahmen des Onboarding aufgefordert, dies zu tun. - Es wird eine Liste von Berechtigungen angezeigt, die Sie uns erteilen müssen, um die Einrichtung abzuschließen. Lesen Sie diese sorgfältig durch und klicken Sie auf "Akzeptieren", um fortzufahren.
- Nachdem Sie die erforderlichen Berechtigungen erteilt haben, führt PayPal zusätzliche Überprüfungen Ihres Kontos durch. Wenn Sie dies noch nicht getan haben, werden Sie möglicherweise aufgefordert, die mit Ihrem PayPal-Konto verbundene E-Mail-Adresse zu bestätigen.
-
Sobald die oben genannten Schritte durchgeführt wurden, wird automatisch eine Anfrage von PayPal an Trust Payments gesendet, um PayPal auf Ihrer Website-Referenz zu aktivieren und der Boarding-Prozess ist abgeschlossen. Wir werden Ihnen per E-Mail bestätigen, wenn Ihr Website-Referenz für die Verarbeitung von PayPal-Transaktionen aktiviert ist.
Wenn Sie Fragen zum Status Ihres PayPal onboarding haben, wenden Sie sich bitte an unser Support-Team.
Überblick über ECM
-
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 Seite 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.
-
Sobald Abrechnung abgeschlossen ist, sendet Trust Payments eine URL-Benachrichtigung (falls aktiviert) als Bestätigung an das System des Händlers. Der Händler empfängt die Benachrichtigung und antwortet, um Trust Payments zu informieren, dass die Benachrichtigung erfolgreich empfangen wurde.
-
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.
Verarbeitung ORDER
Die Anfrage ORDER wird verwendet, um die Bestellung bei PayPal einzuleiten.
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.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
order = {
"accounttypedescription": "ECOM",
"baseamount": "2150",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerfirstname": "Jay",
"customerlastname": "Doe",
"customerpostcode": "TR45 6ST",
"customerprefixname": "Mr",
"customerpremise": "123 Trust Lane",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"paypaladdressoverride": "1",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}
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(
'accounttypedescription' => 'ECOM',
'baseamount' => '2150',
'cancelurl' => 'https://yourwebsite.com',
'currencyiso3a' => 'GBP',
'customercountryiso2a' => 'GB',
'customerfirstname' => 'Jay',
'customerlastname' => 'Doe',
'customerpostcode' => 'TR45 6ST',
'customerprefixname' => 'Mr',
'customerpremise' => '123 Trust Lane',
'customertown' => 'Bangor',
'paymenttypedescription' => 'PAYPAL',
'paypaladdressoverride' => '1',
'products' =>
[[
'productbaseamount' => '200',
'productcurrencyiso3a' => 'GBP',
'productquantity' => '5',
'producttitle' => 'Item 1'
],
[
'productbaseamount' => '500',
'productcurrencyiso3a' => 'GBP',
'productquantity' => '1',
'producttitle' => 'Item 2'
]],
'requesttypedescription' => 'ORDER',
'returnurl' => 'https://yourwebsite.com',
'sitereference' => 'test_site12345'
);
$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": [{
"accounttypedescription": "ECOM",
"baseamount": "2150",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerfirstname": "Jay",
"customerlastname": "Doe",
"customerpostcode": "TR45 6ST",
"customerprefixname": "Mr",
"customerpremise": "123 Trust Lane",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"paypaladdressoverride": "1",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription": "ECOM",
"baseamount": "2150",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerfirstname": "Jay",
"customerlastname": "Doe",
"customerpostcode": "TR45 6ST",
"customerprefixname": "Mr",
"customerpremise": "123 Trust Lane",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"paypaladdressoverride": "1",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDER">
<billing>
<amount currencycode="GBP">2150</amount>
<payment type="PAYPAL">
<paypaladdressoverride>1</paypaladdressoverride>
</payment>
</billing>
<customer>
<country>GB</country>
<name>
<first>Jay</first>
<last>Doe</last>
<prefix>Mr</prefix>
</name>
<postcode>TR45 6ST</postcode>
<premise>123 Trust Lane</premise>
<town>Bangor</town>
</customer>
<merchant>
<cancelurl>https://www.example.com/cancel</cancelurl>
<returnurl>https://www.example.com/return</returnurl>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<products>
<amount currencycode="GBP">200</amount>
<quantity>5</quantity>
<title>Item 1</title>
</products>
<products>
<amount currencycode="GBP">500</amount>
<quantity>1</quantity>
<title>Item 2</title>
</products>
<sitereference>test_site12345</sitereference>
</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: /Rechnung/Betrag |
Numerisch (11) |
Die baseamount ist der Gesamtbetrag der Transaktion, der die Kosten für alle bestellten Produkte/Dienstleistungen und alle damit verbundenen Versandkosten und/oder Steuern umfasst. z.B. baseamount = die Summe von (Produktgrundbetrag x productquantity) + die Summe von (Produktsteuergrundbetrag x productquantity) + Kundenversandgrundbetrag Die baseamount wird in Basiseinheiten ohne Komma oder Dezimalpunkt angegeben, z. B. wird 10 € als 1000 € angegeben. |
|
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: /Rechnung/Betrag/@Währungscode |
ISO3A |
Die Website Währung , die mit der gesamten baseamount. Eine Liste der von PayPal unterstützten Währung Codes finden Sie in der Liste oben auf dieser Seite. |
|
customercountryiso2a XPath: /Kunde/Land |
Alpha (2) |
Das Land der Lieferadresse. Dieses muss im ISO2A-Format angegeben werden. Klicken Sie hier, um eine vollständige Liste der Ländercodes zu erhalten. |
|
customerpostcode XPath: /Kunde/Postleitzahl |
Alphanumerisch (25) |
Die Postleitzahl der Lieferadresse. Es muss sich um eine gültige Postleitzahl für den customercountryiso2a eingereicht werden. |
|
customertown XPath: /Kunde/Stadt |
Alphanumerisch einschließlich Symbole (127) |
Die Lieferadresse Stadt. |
|
paymenttypedescription XPath: /abrechnung/zahlung/@type |
Alpha (20) | Dieser Wert muss als "PAYPAL" angegeben werden. | |
paypaladdressoverride XPath: /abrechnung/zahlung/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:
|
|
Produkte XPath: /Betrieb/Produkte |
Array von JSON-Objekten | Das Produktobjekt muss die folgenden als "erforderlich" gekennzeichneten Unterfelder in einem Array von JSON-Objekten enthalten. Das Array von JSON Objects-Unterfeldern wird innerhalb des Produktobjekts wiederholt, wenn mehrere Produkte das Gesamtobjekt Hauptbetrag bilden. Bitte beachten Sie die obige Beispielanfrage ORDER . | |
produkte " productbaseamount XPath: /Betrieb/Produkte/Betrag |
Numerisch (11) |
Dieser Betrag ist der Preis des betreffenden Produkts in Basiseinheiten. Dies gilt pro Einheit, d.h. es spielt keine Rolle, ob der Kunde 1 oder 5 Stück dieses Produkts kauft - der Produktbasisbetrag bleibt der gleiche. In diesem Betrag sind weder Steuern noch Versandkosten enthalten. |
|
Produkte " productcurrencyiso3a XPath: /Betrieb/Produkte/Betrag/@Währungscode |
ISO3A |
Die Währung , die mit dem Produktgrundbetrag verbunden ist. Wenn sie übermittelt wird, muss sie identisch sein mit currencyiso3a. |
|
Produkte " productquantity XPath: /Betrieb/Produkte/Menge |
Numerisch (10) | Menge des angegebenen Produkts in der Bestellung. | |
Produkte " producttitle XPath: /Betrieb/Produkte/Titel |
Alphanumerisch (127) | Der Name oder Titel des angegebenen Produkts. | |
Produkte " productcode XPath: /Betrieb/Produkte/Code |
Alphanumerisch (127) |
Die Stock Keeping Unit (SKU) des gegebenen Produkts. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
Produkte " productdescription XPath: /Betrieb/Produkte/Beschreibung |
Alphanumerisch (127) |
Detaillierte Beschreibung für das jeweilige Produkt. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
produkte " producttaxbaseamount XPath: /Betrieb/Produkte/Steuerbetrag |
Numerisch (11) |
Steuerbetrag für 1 Einheit des gegebenen Produkts, in Basiseinheiten. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
Produkte " producttaxcurrencyiso3a |
ISO3A |
Die Währung , die mit dem Produkttaxbaseamount verbunden ist. Wenn sie übermittelt wird, muss sie identisch sein mit currencyiso3a. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
Produkte " producttype XPath: /Betrieb/Produkte/Typ |
Alpha (20) |
Reichen Sie eine der folgenden Unterlagen ein:
Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
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. | |
customercounty XPath: /Kunde/Landkreis |
Alphanumerisch einschließlich Symbole (127) |
Der Bezirk der Lieferadresse. Bei US-Adressen wird der Bundesstaat in dieses Feld eingegeben. Gültige Formate:
Erforderlich, wenn customercountryiso2a eine der folgenden Angaben enthält: AR, BR, CA, CN, ID, IN, IT, JP, MX, TH, US |
|
customerfirstname XPath: /Kunde/Name/Vorname |
Alphanumerisch einschließlich Symbole (127) |
Den Vornamen des Kunden. Erforderlich, wenn paypaladdressoverride auf "1" oder "2" gesetzt ist. Andernfalls optional. |
|
customerlastname XPath: /Kunde/Name/Nachname |
Alphanumerisch einschließlich Symbole (127) |
Der Nachname des Kunden. Erforderlich, wenn paypaladdressoverride auf "1" oder "2" gesetzt ist. Andernfalls optional. |
|
customerprefixname XPath: /Kunde/Name/Präfix |
Alphanumerisch einschließlich Symbole (25) |
Der Präfixname des Kunden (z. B. Herr, Frau, Dr.). Erforderlich, wenn paypaladdressoverride auf "1" oder "2" gesetzt ist. Andernfalls optional. |
|
customerpremise XPath: /Kunde/Vor-Ort |
Alphanumerisch einschließlich Symbole (25) |
Die erste Zeile der Lieferadresse. Erforderlich, wenn paypaladdressoverride auf "1" gesetzt ist. Andernfalls optional. |
|
paypaltransactionriskcontextdata XPath: /operation/paypaltransactionriskcontextdata |
Array von JSON-Objekten |
Dieses Array wird verwendet, um PayPal zusätzliche Kontextdaten über einen Kunden mitzuteilen, bevor die Transaktion verarbeitet wird. PayPal verwendet diese Daten, um eine Bewertung des Risikomanagements vor der Transaktion durchzuführen. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
paypaltransactionriskcontextdata " paypaltransactionriskcontextdatakey XPath: /operation/paypaltransactionriskcontextdata/key |
Alphanumerisch (255) |
Zeichenerklärung des händlerspezifischen Risikokontextfelds für das Geschäft. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
paypaltransactionriskcontextdata " paypaltransactionriskcontextdatavalue XPath: /operation/paypaltransactionriskcontextdata/value |
Alphanumerisch (255) |
Wert des händlerspezifischen Risikokontextfelds für das Geschäft. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
paypaltransactionriskcontexttrackingid XPath: /operation/paypaltransactionriskcontexttrackingid |
Alphanumerisch (255) |
Eine eindeutige ID, die vom Händler angegeben wird, um jede Transaktion zu verfolgen. Kann ein beliebiger eindeutiger Wert sein. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
customeremail XPath: /kunde/email |
E-Mail (255) |
Die E-Mail-Adresse, an die digitale Waren geliefert werden. Wir empfehlen Ihnen, die E-Mail-Adresse des Kunden zu übermitteln, wenn das Feld paypaladdressoverride auf "2" eingestellt ist. |
|
customermiddlename XPath: /Kunde/Name/Mittleres |
Alphanumerisch einschließlich Symbole (127) |
Der/die zweite(n) Name(n) des Kunden. |
|
Kundenversandgrundbetrag XPath: /Kunde/Versandbetrag |
Numerisch (11) |
Dieser Betrag entspricht den Gesamtausgaben für den Versand in Basiseinheiten. Für den ECM Fluss muss dies der endgültige Versandbetrag sein, da dieser nicht mehr aktualisiert werden kann, bevor der Kunde den Kauf auf der PayPal-Website abgeschlossen hat. |
|
customerstreet XPath: /Kunde/Straße |
Alphanumerisch einschließlich Symbole (127) |
Die zweite Zeile der Lieferadresse. |
|
customershippingcurrencyiso3a XPath: /Kunde/Lieferbetrag/@Währungscode |
ISO3A |
Die Währung , die mit dem Basisbetrag für die Kundenbestellung verbunden ist. Wenn sie übermittelt wird, muss sie identisch sein mit currencyiso3a. |
|
customersuffixname XPath: /Kunde/Name/Suffix |
Alphanumerisch einschließlich Symbole (25) |
Der Suffixname des Kunden (z. B. Bsc). |
|
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. |
|
paypallocale XPath: /abrechnung/zahlung/locale |
Alpha (2) |
Die Sprache der PayPal-Anmeldeseite.
Klicken Sie hier, um eine Liste der PayPal-Standorte zu erhalten (Link zu externer Seite). |
|
settlestatus XPath: /Abrechnung/settlestatus |
Numerisch (3) |
Hier finden Sie den Abrechnung Fluss, der verwendet werden soll. Geben Sie eine der folgenden Möglichkeiten an:
|
{
u 'requestreference': u 'A0bxh87wt',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'operatorname': u 'webservices@example.com',
u 'paymenttypedescription': u 'PAYPAL',
u 'paypaltoken': u '56604A14170900854600',
u 'requesttypedescription': u 'ORDER',
u 'redirecturl': u 'https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20002',
u 'transactionstartedtimestamp': u '2020-06-01 15:35:40'
}]
}
array(3) {
["requestreference"] => string(9) "A349bdehj"
["version"] => string(4) "1.00"
["responses"] =>array(1) {
[0] => array(13) {
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["operatorname"] => string(23) "webservices@example.com"
["paymenttypedescription"] => string(6) "PAYPAL"
["paypaltoken"] => string(20) "56604A14170900854600"
["redirecturl"] => string(112) "https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout"
["requesttypedescription"] => string(5) "ORDER"
["settleduedate" ]=> string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20002"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:35:40"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"operatorname":"webservices@example.com",
"paymenttypedescription":"PAYPAL",
"paypaltoken":"56604A14170900854600",
"redirecturl":"https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout",
"requesttypedescription":"ORDER",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20002",
"transactionstartedtimestamp":"2020-06-01 15:35:40"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X62d3qhev</requestreference>
<response type="ORDER">
<billing>
<payment type="PAYPAL"/>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<paypal>
<redirecturl>https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout</redirecturl>
<token>56604A14170900854600</token>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:35:40</timestamp>
<transactionreference>72-32-20002</transactionreference>
</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, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
errormessage XPath: /error/message |
Alphanumerisch (255) |
Dies ist die entsprechende Meldung zum obigen Code.
Klicken Sie hier, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
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: /abrechnung/zahlung/@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: /Abrechnung/settleduedate |
Datum JJJJ-MM-TT | Das Datum, an dem die Transaktion abgewickelt wird. | |
settlestatus XPath: /Abrechnung/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: /Zeitstempel |
Datum Uhrzeit JJJJ-MM-TT hh:mm:ss | Der Zeitpunkt, zu dem die Anfrage bearbeitet wurde. | |
errordata XPath: /error/data |
Alphanumerisch (255) |
Zusätzliche Informationen zur Behebung des Fehlers. Wird nur zurückgegeben, wenn ein Fehler aufgetreten ist. |
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 zurück. Um die Zahlung zu verarbeiten, muss Ihr System diese URL verwenden, wenn es den Browser des Kunden auf eine von PayPal gehostete Seite umleitet.
Indem Sie die URL wie unten beschrieben ändern, können Sie den Text ändern, der auf der Schaltfläche "Senden" angezeigt wird, die dem Kunden auf der PayPal-Detailseite angezeigt wird: |
|
Um diese Schaltfläche anzuzeigen: Verwenden Sie die redirecturl unverändert. |
Um diese Schaltfläche anzuzeigen: Fügen Sie dem Endpunkt useraction wie folgt hinzu: |
Nach der Anmeldung in seinem PayPal-Konto hat der Kunde die Möglichkeit, mit der Transaktion fortzufahren oder sie abzubrechen.
Sie müssen warten, bis der Kunde von PayPal auf die returnurl auf Ihren Servern gehostet wird, bevor Sie eine Autorisierung bearbeiten.
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.
Beim Testen werden Sie in dieser Phase zur Sandbox von PayPal weitergeleitet, einer Umgebung, die der Schnittstelle ähnelt, die der Kunde zur Anmeldung bei seinem PayPal-Konto und zur Autorisierung der Zahlung verwenden würde.
3. Verarbeiten Sie die Autorisierung
Wenn der Kunde weitergeleitet wird zu cancelurlweitergeleitet wird, erlauben Sie dem Kunden, es erneut zu versuchen oder eine andere Zahlungsmethode zu wählen.
Wenn der Kunde weitergeleitet wird zu returnurlweitergeleitet wird, folgen Sie den nachstehenden Anweisungen.
- Die Anfrage ORDERDETAILS wird verwendet, um Änderungen abzurufen, die der Kunde vor der Durchführung der AUTH bei PayPal vorgenommen hat.
- Die Anfrage AUTH dient der Abwicklung der Zahlung.
Dieses Beispiel zeigt, wie eine ORDERDETAILS -Anfrage, gefolgt von einer AUTH -Anfrage, verarbeitet werden kann. Beachten Sie, dass die Struktur der Anfrage der einer Standardanfrage AUTH ähnelt, außer dass "ORDERDETAILS" im Feld requesttypedescriptions Feld vor "AUTH" steht.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
orderdetailsauth = {
"parenttransactionreference": "72-32-20002",
"paymenttypedescription": "PAYPAL",
"requesttypedescriptions": ["ORDERDETAILS","AUTH"],
"sitereference": "test_site12345"
}
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(
'parenttransactionreference' => '72-32-20002',
'paymenttypedescription' => 'PAYPAL',
'requesttypedescriptions' => array('ORDERDETAILS','AUTH'),
'sitereference' => 'test_site12345'
);
$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": [{
"parenttransactionreference": "72-32-20002",
"paymenttypedescription": "PAYPAL",
"requesttypedescriptions": ["ORDERDETAILS","AUTH"],
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"parenttransactionreference":"72-32-20002",
"paymenttypedescription":"PAYPAL",
"requesttypedescriptions":["ORDERDETAILS","AUTH"],
"sitereference":"test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDERDETAILS">
<operation>
<parenttransactionreference>72-32-20002</parenttransactionreference>
<sitereference>test_site12345</sitereference>
</operation>
</request>
<request type="AUTH">
<billing>
<payment type="PAYPAL"/>
</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) |
Senden Sie die transactionreference die in der vorangegangenen Antwort ORDER zurückgegeben wurde. | |
paymenttypedescription XPath: /abrechnung/zahlung/@type |
Alpha (20) | Dieser Wert muss als "PAYPAL" angegeben werden. | |
requesttypedescriptions Hinweis: Die XML-Übermittlung besteht aus zwei separaten Anfragen. Wir empfehlen, das obige Beispiel zu verwenden, um die Anfrage zu strukturieren. |
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. |
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 requesttypedescription Felder).
{
u 'requestreference': u 'A0dcb11e6',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'billingcountryiso2a': u 'GB',
u 'billingemail': u 'paypal.email@example.com',
u 'billingfirstname': u 'Andru00e9',
u 'billinglastname': u 'PAYPALLastName',
u 'customercountryiso2a': u 'GB',
u 'customercounty': u 'Gwynedd',
u 'customeremail': u 'email@customer.com',
u 'customerip': u '1.2.3.4',
u 'customerlastname': u 'Jay Doe',
u 'customerpostcode': u 'PA45 6AL',
u 'customerpremise': u 'No 456',
u 'customerstreet': u 'Trust Street',
u 'customertown': u 'Caernarfon',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'operatorname': u 'webservices@example.com',
u 'merchantname': u 'Test Merchant',
u 'parenttransactionreference': u '72-32-20002',
u 'paypaladdressstatus': u 'Unconfirmed',
u 'paypalpayerid': u 'e018408a43pid',
u 'paypalpayerstatus': u 'unverified',
u 'requesttypedescription': u 'ORDERDETAILS',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20003',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:00'
}, {
u 'accounttypedescription': u 'ECOM',
u 'acquirerresponsecode': u 'CREATED',
u 'authcode': u '44782-D149613359266',
u 'baseamount': u '2150',
u 'currencyiso3a': u 'GBP',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'merchantname': u 'Test Merchant',
u 'operatorname': u 'webservices@example.com',
u 'parenttransactionreference': u '72-32-20003',
u 'paymenttypedescription': u 'PAYPAL',
u 'requesttypedescription': u 'AUTH',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20004',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:00'
}]
}
array(3) {
["requestreference"] => string(9) "A58cdfkpy"
["version"] => string(4) "1.00"
["responses"] => array(2) {
[0] => array(28) {
["accounttypedescription"] => string(4) "ECOM"
["billingcountryiso2a"] => string(2) "GB"
["billingemail"] => string(24) "paypal.email@example.com"
["billingfirstname"] => string(10) "Andru00e9"
["billinglastname"] => string(14) "PAYPALLastName"
["customercountryiso2a"] => string(2) "GB"
["customercounty"] => string(7) "Gwynedd"
["customeremail"] => string(18) "email@customer.com"
["customerip"] => string(7) "1.2.3.4"
["customerlastname"] => string(7) "Jay Doe"
["customerpostcode"] => string(8) "PA45 6AL"
["customerpremise"] => string(6) "No 456"
["customerstreet"] => string(10) "Trust Street"
["customertown"] => string(10) "Caernarfon"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["merchantname"] => string(13) "Test Merchant"
["operatorname"] => string(23) "webservices@example.com"
["parenttransactionreference"] => string(11) "72-32-20002"
["paypaladdressstatus"] => string(11) "Unconfirmed"
["paypalpayerid"] => string(13) "e018408a43pid"
["paypalpayerstatus"] => string(10) "unverified"
["requesttypedescription"] => string(12) "ORDERDETAILS"
["settleduedate"] => string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20003"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:00"
}
[1] =>array(17) {
["accounttypedescription"] => string(4) "ECOM"
["acquirerresponsecode"] => string(7) "CREATED"
["authcode"] => string(19) "44782-D149613359266"
["baseamount"] => string(4) "2150"
["currencyiso3a"] => string(3) "GBP"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["merchantname"] => string(13) "Test Merchant"
["operatorname"] => string(23) "webservices@example.com"
["parenttransactionreference"] => string(11) "72-32-20003"
["paymenttypedescription"] => string(6) "PAYPAL"
["requesttypedescription"] => string(4) "AUTH"
["settleduedate"] => string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20004"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:00"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"billingcountryiso2a":"GB",
"billingemail":"paypal.email@example.com",
"billingfirstname":"Andru00e9",
"billinglastname":"PAYPALLastName",
"customercountryiso2a": "GB",
"customercounty": "Gwynedd",
"customeremail": "email@customer.com",
"customerip": "1.2.3.4",
"customerlastname": "Jay Doe",
"customerpostcode": "PA45 6AL",
"customerpremise": "No 456",
"customerstreet": "Trust Street",
"customertown": "Caernarfon",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"merchantname":"Test Merchant",
"operatorname":"webservices@example.com",
"parenttransactionreference":"72-32-20002",
"paypaladdressstatus":"Unconfirmed",
"paypalpayerid":"e018408a43pid",
"paypalpayerstatus":"unverified",
"requesttypedescription":"ORDERDETAILS",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20003",
"transactionstartedtimestamp":"2020-06-01 15:36:00"
},
{
"accounttypedescription":"ECOM",
"acquirerresponsecode":"CREATED",
"authcode":"44782-D149613359266",
"baseamount":"2150",
"currencyiso3a":"GBP",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"merchantname":"Test Merchant",
"operatorname":"webservices@example.com",
"parenttransactionreference":"72-32-20003",
"paymenttypedescription":"PAYPAL",
"requesttypedescription":"AUTH",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20004",
"transactionstartedtimestamp":"2020-06-01 15:36:00"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X538160153</requestreference>
<response type="ORDERDETAILS">
<billing>
<country>GB</country>
<email>paypal.email@example.com</email>
<name>
<first>Andru00e9</first>
<last>PAYPALLastName</last>
</name>
</billing>
<customer>
<country>GB</country>
<county>Gwynedd</county>
<email>email@customer.com</email>
<ip>1.2.3.4</ip>
<name>
<last>Jay Doe</last>
</name>
<postcode>PA45 6AL</postcode>
<premise>No 456</premise>
<street>Trust Street</street>
<town>Caernarfon</town>
</customer>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>72-32-20002</parenttransactionreference>
</operation>
<paypal>
<addressstatus>Unconfirmed</addressstatus>
<payerid>e018408a43pid</payerid>
<payerstatus>unverified</payerstatus>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:36:00</timestamp>
<transactionreference>72-32-20003</transactionreference>
</response>
<response type="AUTH">
<acquirerresponsecode>CREATED</acquirerresponsecode>
<authcode>83154-D140912749345</authcode>
<billing>
<amount currencycode="GBP">2150</amount>
<payment type="PAYPAL"/>
</billing>
<error>
<message>Ok</message>
<code>0</code>
</error>
<live>0</live>
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>72-32-20003</parenttransactionreference>
</operation>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:36:00</timestamp>
<transactionreference>72-32-20004</transactionreference>
</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, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
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, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
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. | |
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: /abrechnung/zahlung/@type |
Alpha (20) | Der zurückgegebene Wert ist "PAYPAL". |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
paypaladdressstatus XPath: /paypal/adressstatus |
Alpha (25) | Der Status der Adresse bei PayPal. Dies ist eine veraltete Prüfung und PayPal wird immer den Wert "Unbestätigt" zurückgeben. |
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/zahlerstatus |
Alpha (25) |
Der Status des Zahlers bei PayPal. Dies ist eine veraltete Prüfung und PayPal wird immer den Wert "unverifiziert" zurückgeben. |
requesttypedescription XPath: /@type |
Alpha (20) | "ORDERDETAILS" und "AUTH" werden in ihren jeweiligen Antworten zurückgegeben. | |
settleduedate XPath: /Abrechnung/settleduedate |
Datum JJJJ-MM-TT | Das Datum, an dem die Transaktion abgewickelt wird. | |
settlestatus XPath: /Abrechnung/settlestatus |
Numerisch (3) |
(Siehe unten für Informationen über Abrechnung) |
|
transactionreference XPath: /transactionreference |
Alphanumerisch einschließlich Bindestriche (25) |
Eindeutige Referenzen für beide Anfragen, zugewiesen von Trust Payments. | |
transactionstartedtimestamp XPath: /Zeitstempel |
Datum Uhrzeit JJJJ-MM-TT hh:mm:ss | Die Zeit, zu der jede Anfrage bearbeitet wurde. | |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
customercountryiso2a XPath: /customer/country |
Alpha (2) |
Das Land der von PayPal zurückgegebenen Lieferadresse. Dies muss im ISO2A-Format erfolgen. Klicken Sie hier für eine vollständige Liste der Ländercodes. Von PayPal zurückgegeben, falls verfügbar. |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
customercounty XPath: /customer/county |
Alphanumerisch einschließlich Symbole (127) |
Der Bezirk der von PayPal zurückgegebenen Lieferadresse. Bei US-Adressen wird der 2-Zeichen-Code des Bundesstaates zurückgegeben. Von PayPal zurückgegeben, falls verfügbar. |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
customeremail XPath: /customer/email |
E-Mail (255) |
Die von PayPal zurückgegebene Liefer-E-Mail-Adresse. Maximale Länge von 255 (maximal 64 Zeichen vor dem "@"-Symbol). Von PayPal zurückgegeben, falls verfügbar. |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
customerip XPath: /customer/ip |
IP-Adresse (39) |
Die IP-Adresse des Geräts, das zur Bearbeitung der Bestellung verwendet wird. Von PayPal zurückgegeben, falls verfügbar. |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
customerlastname XPath: /customer/name/last |
Alphanumerisch einschließlich Symbole (127) |
Der vollständige Name für die von PayPal zurückgegebene Lieferung. Von PayPal zurückgegeben, falls verfügbar. |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
customerpostcode XPath: /customer/postcode |
Alphanumerisch (25) |
Die Postleitzahl (ZIP-Code) der von PayPal zurückgegebenen Lieferadresse. Von PayPal zurückgegeben, falls verfügbar. |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
customerpremise XPath: /customer/premise |
Alphanumerisch einschließlich Symbole (25) |
Die erste Zeile der von PayPal zurückgegebenen Lieferadresse. Von PayPal zurückgegeben, falls verfügbar. |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
customerstreet XPath: /customer/street |
Alphanumerisch einschließlich Symbole (127) |
Die zweite Zeile der von PayPal zurückgegebenen Lieferadresse. Von PayPal zurückgegeben, falls verfügbar. |
Wird nur in der Antwort ORDERDETAILS zurückgegeben. |
customertown XPath: /customer/town |
Alphanumerisch einschließlich Symbole (127) |
Der Ort der von PayPal zurückgegebenen Lieferadresse. Von PayPal zurückgegeben, falls verfügbar. |
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. |
|
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. |
4. Abschluss der Zahlung
Abrechnung
Sobald eine PayPal-Transaktion autorisiert wurde, wird der Betrag in der Regel innerhalb von 24 Stunden auf Ihr Bankkonto überwiesen:
- Nach Autorisierung wird der Abrechnungsstatus auf 0 gesetzt, um anzuzeigen, dass Abrechnung anhängig ist.
- Trust Payments initiiert täglich den Abrechnung Prozess für ausstehende PayPal-Transaktionen.
- Die Abrechnungsstatus einer PayPal-Transaktion wird auf 10 aktualisiert, wenn Abrechnung in Bearbeitung ist.
- Kurz darauf erhält Trust Payments eine Bestätigung von PayPal, dass die Zahlung erfolgt ist und der Abrechnungsstatus wird auf 100 aktualisiert.
Über Pay Later
Bitte denken Sie bei der Bearbeitung von Bestellungsanfragen von Kunden daran, dass sich ein Kunde dafür entschieden haben könnte, die Kosten für den Kauf über die Pay-Later-Produkte von PayPal zu verteilen.
Unabhängig davon, wie der Kunde die Transaktion finanziert, werden Sie, wie bei einer herkömmlichen PayPal-Transaktion, zum Zeitpunkt des Kaufs vollständig bezahlt.
Dadurch kann eine PayPal-Transaktion als "abgewickelt" verbucht werden, auch wenn der Kunde seinen Saldo bei PayPal noch nicht beglichen hat. Etwaige Probleme, die im Zusammenhang mit zinslosen Krediten oder ausstehenden Ratenzahlungen aufgetreten sind, müssen vom Kunden direkt mit PayPal geklärt werden.
Alternative Abrechnung fließt
Um Abrechnung für eine bestimmte PayPal-Transaktion aufzuschieben, fügen Sie settlestatus=2 in die Anfrage ORDER ein. Dies wird an die Anfrage AUTH vererbt, die die vorübergehende Aussetzung der Transaktion nach Autorisierung auslöst.
Die Abrechnung wird zurückgestellt, bis Sie eine TRANSACTIONUPDATE mit settlestatus=0.
PayPal-Transaktionen können bis zu 31 Tage lang aufgeschoben werden.
Die sofortige Funktionalität von Abrechnung unterliegt zusätzlichen Anforderungen.
Bevor Sie sofortige Abrechnung bearbeiten können, müssen Sie sich mit unserem Support-Team in Verbindung setzen und beantragen, dass dies in Ihrem Konto aktiviert wird.
Um die sofortige Abrechnung für eine bestimmte Transaktion zu ermöglichen, fügen Sie settlestatus=100 in die Anfrage ORDER ein. Diese Angabe wird an die Anfrage AUTH vererbt, die Trust Payments dazu veranlasst, die Überweisung Abrechnung unmittelbar nach Autorisierung vorzunehmen.
Wenn PayPal mehr Zeit für die Durchführung von Prüfungen benötigt, kann die Transaktion vorübergehend auf Abrechnungsstatus 10 gesetzt werden.
Sie haben die Möglichkeit, einen niedrigeren Betrag als den ursprünglich genehmigten zu begleichen. Reichen Sie dazu einen TRANSACTIONUPDATE mit einem niedrigeren settlebaseamount.
Benachrichtigungen
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 autorisiert ist (AUTH hat errorcode=0).
- Wenn die Mittel abgerechnet wurden (AUTH in settlestatus=100).
Wenn Sie den Support kontaktieren, geben Sie bitte Ihre Website-Referenz und den Endpunkt an, an den die Benachrichtigung gesendet werden soll.
Sie müssen den Inhalt jeder erhaltenen Meldung prüfen und entsprechend reagieren, indem Sie die in unseren URL-Benachrichtigungen Dokumentation beschrieben sind. Insbesondere müssen Sie auf den aktualisierten settlestatus Wert:
- Auf Genehmigung: Wenn die settlestatus auf "0", "1" oder "10" steht, wurde die Zahlung genehmigt und Sie müssen zu diesem Zeitpunkt keine weiteren Maßnahmen nehmen. Werte von "2" oder "3" bedeuten jedoch, dass die Gelder nicht zur Abrechnung vorgesehen sind (aufgeschoben bzw. storniert)
- Auf Abrechnung: Wenn die settlestatus auf "100" aktualisiert wurde, bedeutet dies, dass der Betrag beglichen wurde. Wenn der Wert auf "3" aktualisiert wurde, bedeutet dies, dass ein Problem aufgetreten ist und die Zahlung daraufhin storniert wurde.
Rückerstattungen
Der Prozess der Bearbeitung von PayPal-Erstattungen ist derselbe wie bei einer Standard-Kartentransaktion, aber bitte beachten Sie zunächst die folgenden Hinweise:
- Um sicherzustellen, dass Ihre Datensätze auf Trust Payments mit denen von Paypal synchronisiert bleiben, empfehlen wir Ihnen dringend, Rückerstattungen ausschließlich über die Plattform Trust Payments und nicht über den PayPal-Administrator portal vorzunehmen.
- Sie müssen sicherstellen, dass Sie den Antrag AUTH erstatten und NICHT Verweise auf verwandte Anfragen ORDER oder ORDERDETAILS weiterleiten.
- Die meisten PayPal-Erstattungen werden sofort abgewickelt (settlestatus=100). Unter bestimmten, von PayPal definierten Bedingungen können Rückerstattungen jedoch auf settlestatus=10 ("Settling") gesetzt werden, was ein Zwischenschritt vor Abrechnung ist. Wenn eine PayPal-Rückerstattung auf Ihrem Konto auf settlestatus=10 steht, empfehlen wir Ihnen, dies bei unserem Support-Team zu erfragen, falls weitere Maßnahmen ergriffen werden müssen, um Abrechnung sicherzustellen.
Über Pay Later
Wenn Sie Rückerstattungsanfragen von Kunden bearbeiten, denken Sie bitte daran, dass sich ein Kunde möglicherweise dafür entschieden hat, die Kosten für den ursprünglichen Kauf über die Pay-Later-Produkte von PayPal zu verteilen.
Aus diesem Grund sollten Sie bei einer vollständigen Rückerstattung einer Transaktion unbedingt den gesamten Betrag zurückerstatten, um sicherzustellen, dass dem Kunden nicht später noch ausstehende Beträge auf dem Guthaben in Rechnung gestellt werden.
Bei einer Rückerstattung wird der Betrag von Ihrem Bankkonto abgebucht, und PayPal ist dafür verantwortlich, dass der Betrag dem Kunden entsprechend gutgeschrieben wird.
Unter Berücksichtigung der obigen Hinweise klicken Sie auf die nachstehenden Links, um die Anweisungen zur Durchführung von PayPal-Erstattungen in einer neuen Registerkarte zu öffnen:
Verwenden Sie die obigen Registerkarten, um den Arbeitsablauf zu ändern.
Nachstehend finden Sie Express Checkout Shortcut ( ECS)
Express Checkout Shortcut (ECS ) - Kunden klicken auf die "Direkt zu PayPal" auf Ihrer Website und werden zu den Servern von PayPal weitergeleitet.
- Auf Ihrer Warenkorbseite bietet Ihre Website dem Kunden die Möglichkeit, mit PayPal zu bezahlen.
- Der Kunde klickt auf die Schaltfläche und 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 wählt auf der Website von PayPal seine bevorzugte Lieferadresse und Zahlungsmethode aus.
- Der Kunde wird zurück auf Ihre Website geleitet, wo Sie zusätzliche Versandkosten hinzufügen und eine abschließende Zusammenfassung mit dem Gesamtbetrag anzeigen können.
- Der Kunde stimmt der Zahlung auf Ihrer Website zu und erhält eine Kaufbestätigung.
Später bezahlen
Während der Zeit, in der der Browser des Kunden auf die von PayPal gehosteten Seiten umgeleitet wird, hat PayPal die Kontrolle über die Kaufabwicklung. Um den Kunden die Möglichkeit zu geben, die Kosten für größere Einkäufe zu verteilen, kann PayPal zusätzliche Finanzierungsoptionen für Transaktionen anzeigen, die ihren Anforderungen entsprechen.
Erste Schritte
Voraussetzungen
- Bevor Sie PayPal Live-Transaktionen verarbeiten können, benötigen Sie ein PayPal Geschäftskonto. Wenn Sie noch kein Geschäftskonto haben, werden Sie im Rahmen des unten beschriebenen Einführungsprozesses aufgefordert, ein neues Konto zu registrieren.
- PayPal unterstützt nicht, dass die von PayPal gehosteten Seiten innerhalb einer iframe gerendert werden. Stattdessen müssen Sie den Browser des Kunden während der Kaufabwicklung immer zu PayPal umleiten.
Für einige Branchen (z. B. Reisen, Spiele und Veranstaltungen) benötigt PayPal zusätzliche Informationen, die als Set Transaction Context (STC) bezeichnet werden. Diese Informationen können in Ihren Anfragen an Trust Payments enthalten sein und werden bei Bedarf an PayPal weitergeleitet. Bitte kontaktieren Sie unser Support-Team für weitere Informationen.
PayPal Onboarding
- Wenden Sie sich an unser Support-Team und erkundigen Sie sich nach der Aktivierung von PayPal auf Ihrem TRU Connect -Konto.
- Unser Support-Team wird Ihnen eine URL zur Verfügung stellen, mit der Sie die Einrichtung abschließen können.
-
Rufen Sie die URL direkt in Ihrem Browser auf und melden Sie sich mit Ihrem PayPal Business-Konto an.
Wenn Sie noch kein PayPal Business-Konto registriert haben, werden Sie im Rahmen des Onboarding aufgefordert, dies zu tun. - Es wird eine Liste von Berechtigungen angezeigt, die Sie uns erteilen müssen, um die Einrichtung abzuschließen. Lesen Sie diese sorgfältig durch und klicken Sie auf "Akzeptieren", um fortzufahren.
- Nachdem Sie die erforderlichen Berechtigungen erteilt haben, führt PayPal zusätzliche Überprüfungen Ihres Kontos durch. Wenn Sie dies noch nicht getan haben, werden Sie möglicherweise aufgefordert, die mit Ihrem PayPal-Konto verbundene E-Mail-Adresse zu bestätigen.
-
Sobald die oben genannten Schritte durchgeführt wurden, wird automatisch eine Anfrage von PayPal an Trust Payments gesendet, um PayPal auf Ihrer Website-Referenz zu aktivieren und der Boarding-Prozess ist abgeschlossen. Wir werden Ihnen per E-Mail bestätigen, wenn Ihr Website-Referenz für die Verarbeitung von PayPal-Transaktionen aktiviert ist.
-
Wenn Sie Fragen zum Status Ihrer PayPal-Einführung haben, wenden Sie sich bitte an unser Support-Team.
Überblick über ECS
-
Initiieren Sie den Kunden
- Der Kunde erklärt sich mit einer Zahlung über PayPal auf der Website des Händlers einverstanden.
- 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 Seite redirecturl, einschließlich der paypaltoken.
- Der Kunde meldet sich an und erklärt sich mit der Zahlung über sein PayPal-Konto 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.
-
Auftragsdetails abrufen
- Nur wenn dies erfolgreich war, sendet der Händler eine ORDERDETAILS Anfrage, um die Transaktionsdaten von PayPal abzurufen.
- Der Händler erhält die Antwort ORDERDETAILS und verwendet diese, um dem Kunden eine Zusammenfassung der Bestellung anzuzeigen. Diese Antwort kann für die Lieferadresse geparst werden und diese kann verwendet werden, um eine aktualisierte Versandgebühr zu berechnen und anzuzeigen (falls erforderlich).
-
Verarbeiten Sie die Autorisierung
- Wenn der Kunde dem Kauf auf Ihrer Website zustimmt, sendet der Händler eine Anfrage an AUTH , um die Zahlung zu verarbeiten.
- Der Händler erhält die Antwort 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.
-
Sobald Abrechnung abgeschlossen ist, sendet Trust Payments eine URL-Benachrichtigung (falls aktiviert) als Bestätigung an das System des Händlers. Der Händler empfängt die Benachrichtigung und antwortet, um Trust Payments zu informieren, dass die Benachrichtigung erfolgreich empfangen wurde.
-
1. Initiieren Sie den Kunden
Anzeige von PayPal auf Ihrer Kasse
PayPal stellt eine Schaltfläche zur Verfügung, die Sie in Ihre Website einfügen können, sowie Richtlinien und Hinweise zur Verwendung der Schaltfläche.
Klicken Sie hier, um die neuesten offiziellen "Direkt zu PayPal"-Schaltflächen herunterzuladen (Link zu externer Website).
Die "Direkt zu PayPal" Schaltfläche muss den Kunden ohne Umwege oder Zwischenschritte direkt zu PayPal leiten und anschließend auf Ihre Website zurückführen. Der Kunde darf nicht gezwungen werden, sich vor dem Kauf in einem Geschäftskonto anzumelden. Darüber hinaus sollte die Schaltfläche:
- Wird direkt unter oder neben jeder Ihrer eigenen Kassenschaltflächen platziert.
- Sie müssen oberhalb der Falz platziert werden (sichtbar, ohne dass man scrollen muss).
- Alternativtext "Direkt zu PayPal" für den Fall, dass das Bild im Browser des Kunden nicht geladen wird.
Diese Richtlinien werden von PayPal vorgegeben und können sich jederzeit ändern.
Verarbeitung ORDER
Die Anfrage ORDER wird verwendet, um die Bestellung bei PayPal einzuleiten.
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.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
order = {
"accounttypedescription": "ECOM",
"baseamount": "1650",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerpostcode": "TR45 6ST",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}
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(
'accounttypedescription' => 'ECOM',
'baseamount' => '1650',
'cancelurl' => 'https://yourwebsite.com',
'currencyiso3a' => 'GBP',
'customercountryiso2a' => 'GB',
'customerpostcode' => 'TR45 6ST',
'customertown' => 'Bangor',
'paymenttypedescription' => 'PAYPAL',
'products' =>
[[
'productbaseamount' => '200',
'productcurrencyiso3a' => 'GBP',
'productquantity' => '5',
'producttitle' => 'Item 1'
],
[
'productbaseamount' => '500',
'productcurrencyiso3a' => 'GBP',
'productquantity' => '1',
'producttitle' => 'Item 2'
]],
'requesttypedescription' => 'ORDER',
'returnurl' => 'https://yourwebsite.com',
'sitereference' => 'test_site12345'
);
$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": [{
"accounttypedescription": "ECOM",
"baseamount": "1650",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerpostcode": "TR45 6ST",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription": "ECOM",
"baseamount": "1650",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerpostcode": "TR45 6ST",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDER">
<billing>
<amount currencycode="GBP">1650</amount>
<payment type="PAYPAL"/>
</billing>
<customer>
<country>GB</country>
<postcode>TR45 6ST</postcode>
<town>Bangor</town>
</customer>
<merchant>
<cancelurl>https://www.example.com/cancel</cancelurl>
<returnurl>https://www.example.com/return</returnurl>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<products>
<amount currencycode="GBP">200</amount>
<quantity>5</quantity>
<title>Item 1</title>
</products>
<products>
<amount currencycode="GBP">500</amount>
<quantity>1</quantity>
<title>Item 2</title>
</products>
<sitereference>test_site12345</sitereference>
</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: /Rechnung/Betrag |
Numerisch (11) |
Die baseamount ist der Gesamtbetrag der Transaktion, der die Kosten für alle bestellten Produkte/Dienstleistungen und alle damit verbundenen Versandkosten und/oder Steuern umfasst. z.B. baseamount = die Summe von (Produktgrundbetrag x productquantity) + die Summe von (Produktsteuergrundbetrag x productquantity) + Kundenversandgrundbetrag Die baseamount wird in Basiseinheiten ohne Komma oder Dezimalpunkt angegeben, z. B. wird 10 € als 1000 € angegeben. |
|
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: /Rechnung/Betrag/@Währungscode |
ISO3A |
Die Website Währung , die mit der gesamten baseamount. Eine Liste der von PayPal unterstützten Währung Codes finden Sie in der Liste oben auf dieser Seite. |
|
customercountryiso2a XPath: /Kunde/Land |
Alpha (2) |
Das Land der Lieferadresse. Dieses muss im ISO2A-Format angegeben werden. Klicken Sie hier, um eine vollständige Liste der Ländercodes zu erhalten. |
|
customerpostcode XPath: /Kunde/Postleitzahl |
Alphanumerisch (25) |
Die Postleitzahl der Lieferadresse. Es muss sich um eine gültige Postleitzahl für den customercountryiso2a eingereicht werden. |
|
customertown XPath: /Kunde/Stadt |
Alphanumerisch einschließlich Symbole (127) |
Die Lieferadresse Stadt. |
|
paymenttypedescription XPath: /abrechnung/zahlung/@type |
Alpha (20) | Dieser Wert muss als "PAYPAL" angegeben werden. | |
Produkte XPath: /Betrieb/Produkte |
Array von JSON-Objekten | Das Produktobjekt muss die folgenden als "erforderlich" gekennzeichneten Unterfelder in einem Array von JSON-Objekten enthalten. Das Array von JSON Objects-Unterfeldern wird innerhalb des Produktobjekts wiederholt, wenn mehrere Produkte das Gesamtobjekt Hauptbetrag bilden. Bitte beachten Sie die obige Beispielanfrage ORDER . | |
produkte " productbaseamount XPath: /Betrieb/Produkte/Betrag |
Numerisch (11) |
Dieser Betrag ist der Preis des betreffenden Produkts in Basiseinheiten. Dies gilt pro Einheit, d.h. es spielt keine Rolle, ob der Kunde 1 oder 5 Stück dieses Produkts kauft - der Produktbasisbetrag bleibt der gleiche. In diesem Betrag sind weder Steuern noch Versandkosten enthalten. |
|
Produkte " productcurrencyiso3a XPath: /Betrieb/Produkte/Betrag/@Währungscode |
ISO3A |
Die Währung , die mit dem Produktgrundbetrag verbunden ist. Wenn sie übermittelt wird, muss sie identisch sein mit currencyiso3a. |
|
Produkte " productquantity XPath: /Betrieb/Produkte/Menge |
Numerisch (10) | Menge des angegebenen Produkts in der Bestellung. | |
Produkte " producttitle XPath: /Betrieb/Produkte/Titel |
Alphanumerisch (127) | Der Name oder Titel des angegebenen Produkts. | |
Produkte " productcode XPath: /Betrieb/Produkte/Code |
Alphanumerisch (127) |
Die Stock Keeping Unit (SKU) des gegebenen Produkts. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
Produkte " productdescription XPath: /Betrieb/Produkte/Beschreibung |
Alphanumerisch (127) |
Detaillierte Beschreibung für das jeweilige Produkt. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
produkte " producttaxbaseamount XPath: /Betrieb/Produkte/Steuerbetrag |
Numerisch (11) |
Steuerbetrag für 1 Einheit des gegebenen Produkts, in Basiseinheiten. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
Produkte " producttaxcurrencyiso3a |
ISO3A |
Die Währung , die mit dem Produkttaxbaseamount verbunden ist. Wenn sie übermittelt wird, muss sie identisch sein mit currencyiso3a. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
Produkte " producttype XPath: /Betrieb/Produkte/Typ |
Alpha (20) |
Reichen Sie eine der folgenden Unterlagen ein:
Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
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. | |
customercounty XPath: /Kunde/Landkreis |
Alphanumerisch einschließlich Symbole (127) |
Der Bezirk der Lieferadresse. Bei US-Adressen wird der Bundesstaat in dieses Feld eingegeben. Gültige Formate:
Erforderlich, wenn customercountryiso2a eine der folgenden Angaben enthält: AR, BR, CA, CN, ID, IN, IT, JP, MX, TH, US |
|
customerfirstname XPath: /Kunde/Name/Vorname |
Alphanumerisch einschließlich Symbole (127) |
Den Vornamen des Kunden. Erforderlich, wenn paypaladdressoverride auf "1" oder "2" gesetzt ist. Andernfalls optional. |
|
customerlastname XPath: /Kunde/Name/Nachname |
Alphanumerisch einschließlich Symbole (127) |
Der Nachname des Kunden. Erforderlich, wenn paypaladdressoverride auf "1" oder "2" gesetzt ist. Andernfalls optional. |
|
customerprefixname XPath: /Kunde/Name/Präfix |
Alphanumerisch einschließlich Symbole (25) |
Der Präfixname des Kunden (z. B. Herr, Frau, Dr.). Erforderlich, wenn paypaladdressoverride auf "1" oder "2" gesetzt ist. Andernfalls optional. |
|
customerpremise XPath: /Kunde/Vor-Ort |
Alphanumerisch einschließlich Symbole (25) |
Die erste Zeile der Lieferadresse. Erforderlich, wenn paypaladdressoverride auf "1" gesetzt ist. Andernfalls optional. |
|
paypaltransactionriskcontextdata XPath: /operation/paypaltransactionriskcontextdata |
Array von JSON-Objekten |
Dieses Array wird verwendet, um PayPal zusätzliche Kontextdaten über einen Kunden mitzuteilen, bevor die Transaktion verarbeitet wird. PayPal verwendet diese Daten, um eine Bewertung des Risikomanagements vor der Transaktion durchzuführen. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
paypaltransactionriskcontextdata " paypaltransactionriskcontextdatakey XPath: /operation/paypaltransactionriskcontextdata/key |
Alphanumerisch (255) |
Zeichenerklärung des händlerspezifischen Risikokontextfelds für das Geschäft. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
paypaltransactionriskcontextdata " paypaltransactionriskcontextdatavalue XPath: /operation/paypaltransactionriskcontextdata/value |
Alphanumerisch (255) |
Wert des händlerspezifischen Risikokontextfelds für das Geschäft. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
paypaltransactionriskcontexttrackingid XPath: /operation/paypaltransactionriskcontexttrackingid |
Alphanumerisch (255) |
Eine eindeutige ID, die vom Händler angegeben wird, um jede Transaktion zu verfolgen. Kann ein beliebiger eindeutiger Wert sein. Erforderlich für Händler, die in bestimmten Branchen tätig sind, die PayPal als risikoreich einstuft. Kontaktieren Sie unser Support-Team, wenn Sie sich nicht sicher sind. |
|
customeremail XPath: /kunde/email |
E-Mail (255) |
Die E-Mail-Adresse, an die digitale Waren geliefert werden. Wir empfehlen Ihnen, die E-Mail-Adresse des Kunden zu übermitteln, wenn das Feld paypaladdressoverride auf "2" eingestellt ist. |
|
customermiddlename XPath: /Kunde/Name/Mittleres |
Alphanumerisch einschließlich Symbole (127) |
Der/die zweite(n) Name(n) des Kunden. |
|
Kundenversandgrundbetrag XPath: /Kunde/Versandbetrag |
Numerisch (11) |
Dieser Betrag entspricht den Gesamtausgaben für den Versand in Basiseinheiten. ECS Wenn Ihnen der endgültige Versandbetrag bereits bekannt ist, empfehlen wir Ihnen, ihn in die ORDER Anfrage aufzunehmen, da er dem Kunden auf der PayPal-Website angezeigt wird und er so die Aufschlüsselung des zu zahlenden Betrags leichter verstehen kann. Andernfalls können Sie dieses Feld auslassen und stattdessen die von PayPal zurückgegebene Adresse in der nachfolgenden Antwort ORDERDETAILS verwenden, um einen genaueren Versandbetrag zu berechnen und diesen in der Anfrage AUTH zu übermitteln. |
|
customershippingcurrencyiso3a XPath: /Kunde/Lieferbetrag/@Währungscode |
ISO3A |
Die Währung , die mit dem Basisbetrag für die Kundenbestellung verbunden ist. Wenn sie übermittelt wird, muss sie identisch sein mit currencyiso3a. |
|
customerstreet XPath: /Kunde/Straße |
Alphanumerisch einschließlich Symbole (127) |
Die zweite Zeile der Lieferadresse. |
|
customersuffixname XPath: /Kunde/Name/Suffix |
Alphanumerisch einschließlich Symbole (25) |
Der Suffixname des Kunden (z. B. Bsc). |
|
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. |
|
paypaladdressoverride XPath: /abrechnung/zahlung/paypaladdressoverride |
Numerisch (1) |
Ermöglicht es Ihnen, die vom Kunden bei PayPal gewählte Lieferadresse außer Kraft zu setzen:
|
|
paypallocale XPath: /abrechnung/zahlung/locale |
Alpha (2) |
Die Sprache der PayPal-Anmeldeseite.
Klicken Sie hier, um eine Liste der PayPal-Standorte zu erhalten (Link zu externer Seite). |
|
settlestatus XPath: /Abrechnung/settlestatus |
Numerisch (3) |
Hier finden Sie den Abrechnung Fluss, der verwendet werden soll. Geben Sie eine der folgenden Möglichkeiten an:
|
{
u 'requestreference': u 'A0bxh87wt',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'operatorname': u 'webservices@example.com',
u 'paymenttypedescription': u 'PAYPAL',
u 'paypaltoken': u '56604A14170900854600',
u 'redirecturl': u 'https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout',
u 'requesttypedescription': u 'ORDER',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20002',
u 'transactionstartedtimestamp': u '2020-06-01 15:35:40'
}]
}
array(3) {
["requestreference"] => string(9) "A349bdehj"
["version"] => string(4) "1.00"
["responses"] =>array(1) {
[0] => array(13) {
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["operatorname"] => string(23) "webservices@example.com"
["paymenttypedescription"] => string(6) "PAYPAL"
["paypaltoken"] => string(11) "56604A14170900854600"
["redirecturl"] => string(112) "https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout"
["requesttypedescription"] => string(5) "ORDER"
["settleduedate" ]=> string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20002"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:35:40"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"operatorname":"webservices@example.com",
"paymenttypedescription":"PAYPAL",
"paypaltoken":"56604A14170900854600",
"redirecturl":"https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout",
"requesttypedescription":"ORDER",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20002",
"transactionstartedtimestamp":"2020-06-01 15:35:40"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X62d3qhev</requestreference>
<response type="ORDER">
<billing>
<payment type="PAYPAL"/>
</billing>
<error>
<message>Ok</message>
<code>0</code>
</error>
<live>0</live>
<merchant>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<paypal>
<redirecturl>https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout</redirecturl>
<token>56604A14170900854600</token>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:35:40</timestamp>
<transactionreference>72-32-20002</transactionreference>
</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, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
errormessage XPath: /error/message |
Alphanumerisch (255) |
Dies ist die entsprechende Meldung zum obigen Code.
Klicken Sie hier, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
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: /abrechnung/zahlung/@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: /Abrechnung/settleduedate |
Datum JJJJ-MM-TT | Das Datum, an dem die Transaktion abgewickelt wird. | |
settlestatus XPath: /Abrechnung/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: /Zeitstempel |
Datum Uhrzeit JJJJ-MM-TT hh:mm:ss | Der Zeitpunkt, zu dem die Anfrage bearbeitet wurde. | |
errordata XPath: /error/data |
Alphanumerisch (255) |
Zusätzliche Informationen zur Behebung des Fehlers. Wird nur zurückgegeben, wenn ein Fehler aufgetreten ist. |
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 zurück. Um die Zahlung zu verarbeiten, muss Ihr System diese URL verwenden, wenn es den Browser des Kunden auf eine von PayPal gehostete Seite umleitet.
Indem Sie die URL wie unten beschrieben ändern, können Sie den Text ändern, der auf der Schaltfläche "Senden" angezeigt wird, die dem Kunden auf der PayPal-Detailseite angezeigt wird: |
|
Um diese Schaltfläche anzuzeigen: Verwenden Sie die redirecturl unverändert.
|
Um diese Schaltfläche anzuzeigen: Fügen Sie dem Endpunkt wie folgt hinzu: |
Nach der Anmeldung in seinem PayPal-Konto hat der Kunde die Möglichkeit, mit der Transaktion fortzufahren oder sie abzubrechen.
Sie müssen warten, bis der Kunde von der PayPal-Anmeldeseite zur returnurl die auf Ihren Servern gehostet wird, bevor Sie eine Autorisierung bearbeiten.
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.
Beim Testen werden Sie in dieser Phase zur Sandbox von PayPal weitergeleitet, einer Umgebung, die der Schnittstelle ähnelt, die der Kunde zur Anmeldung bei seinem PayPal-Konto und zur Autorisierung der Zahlung verwenden würde.
3. Auftragsdetails abrufen
Wenn der Kunde weitergeleitet wird zu cancelurlweitergeleitet wird, erlauben Sie dem Kunden, es erneut zu versuchen oder eine andere Zahlungsmethode zu wählen.
Wenn der Kunde weitergeleitet wird zu returnurlweitergeleitet wird, folgen Sie den nachstehenden Anweisungen.
Hier ist ein Beispiel für eine ORDERDETAILS Anfrage. Diese Anfrage ruft die Adressdaten ab, die der Kunde auf den Servern von PayPal eingegeben hat, und gibt diese in einer Antwort an ORDERDETAILS zurück.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
orderdetails = {
"parenttransactionreference": "72-32-20002",
"requesttypedescription": "ORDERDETAILS",
"sitereference": "test_site12345"
}
strequest = securetrading.Request()
strequest.update(orderdetails)
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(
'parenttransactionreference' => '72-32-20002',
'requesttypedescription' => array'ORDERDETAILS',
'sitereference' => 'test_site12345'
);
$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": [{
"parenttransactionreference": "72-32-20002",
"requesttypedescription": "ORDERDETAILS",
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"parenttransactionreference":"72-32-20002",
"requesttypedescription":"ORDERDETAILS",
"sitereference":"test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDERDETAILS">
<operation>
<parenttransactionreference>72-32-20002</parenttransactionreference>
<sitereference>test_site12345</sitereference>
</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 | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alphanumerisch & Bindestriche (25) |
Senden Sie die transactionreference der vorangegangenen ORDER Antwort. Dies wird von der Weiterleitung von PayPal kommen. | |
requesttypedescription XPath: /@type |
Alpha (20) | Der Wert in der Anfrage muss "ORDERDETAILS" 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. |
Hier ist ein Beispiel für eine Antwort von ORDERDETAILS :
{
u 'requestreference': u 'A0dcb11e6',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'billingcountryiso2a': u 'GB',
u 'billingemail': u 'paypal.email@example.com',
u 'billingfirstname': u 'Andru00e9',
u 'billinglastname': u 'PAYPALLastName',
u 'customercountryiso2a': u 'GB',
u 'customercounty': u 'Gwynedd',
u 'customeremail': u 'email@customer.com',
u 'customerip': u '1.2.3.4',
u 'customerlastname': u 'Jay Doe',
u 'customerpostcode': u 'PA45 6AL',
u 'customerpremise': u 'No 456',
u 'customerstreet': u 'Trust Street',
u 'customertown': u 'Caernarfon',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'merchantname': u 'Test Merchant',
u 'operatorname': u 'webservices@example.com',
u 'parenttransactionreference': u '72-32-20002',
u 'paypaladdressstatus': u 'Unconfirmed',
u 'paypalpayerid': u '4d22e2606apid',
u 'paypalpayerstatus': u 'unverified',
u 'requesttypedescription': u 'ORDERDETAILS',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20003',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:00'
}]
}
array(3) {
["requestreference"] => string(9) "A58cdfkpy"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0] => array(28) {
["accounttypedescription"] => string(4) "ECOM"
["billingcountryiso2a"] => string(2) "GB"
["billingemail"] => string(24) "paypal.email@example.com"
["billingfirstname"] => string(10) "Andru00e9"
["billinglastname"] => string(14) "PAYPALLastName"
["customercountryiso2a"] => string(2) "GB"
["customercounty"] => string(7) "Gwynedd"
["customeremail"] => string(18) "email@customer.com"
["customerip"] => string(7) "1.2.3.4"
["customerlastname"] => string(7) "Jay Doe"
["customerpostcode"] => string(8) "PA45 6AL"
["customerpremise"] => string(6) "No 456"
["customerstreet"] => string(10) "Trust Street"
["customertown"] => string(10) "Caernarfon"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["merchantname"] => string(13) "Test Merchant"
["operatorname"] => string(23) "webservices@example.com"
["parenttransactionreference"] => string(11) "72-32-20002"
["paypaladdressstatus"] => string(11) "Unconfirmed"
["paypalpayerid"] => string(13) "4d22e2606apid"
["paypalpayerstatus"] => string(10) "unverified"
["requesttypedescription"] => string(12) "ORDERDETAILS"
["settleduedate"] => string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20003"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:00"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"billingcountryiso2a":"GB",
"billingemail":"paypal.email@example.com",
"billingfirstname":"Andru00e9",
"billinglastname":"PAYPALLastName",
"customercountryiso2a": "GB",
"customercounty": "Gwynedd",
"customeremail": "email@customer.com",
"customerip": "1.2.3.4",
"customerlastname": "Jay Doe",
"customerpostcode": "PA45 6AL",
"customerpremise": "No 456",
"customerstreet": "Trust Street",
"customertown": "Caernarfon",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"merchantname":"Test Merchant",
"operatorname":"webservices@example.com",
"parenttransactionreference":"72-32-20002",
"paypaladdressstatus":"Unconfirmed",
"paypalpayerid":"4d22e2606apid",
"paypalpayerstatus":"unverified",
"requesttypedescription":"ORDERDETAILS",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20003",
"transactionstartedtimestamp":"2020-06-01 15:36:00"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X538160153</requestreference>
<response type="ORDERDETAILS">
<billing>
<country>GB</country>
<email>paypal.email@example.com</email>
<name>
<first>Andru00e9</first>
<last>PAYPALLastName</last>
</name>
</billing>
<customer>
<country>GB</country>
<county>Gwynedd</county>
<email>email@customer.com</email>
<ip>1.2.3.4</ip>
<name>
<last>Jay Doe</last>
</name>
<postcode>PA45 6AL</postcode>
<premise>No 456</premise>
<street>Trust Street</street>
<town>Caernarfon</town>
</customer>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>72-32-20002</parenttransactionreference>
</operation>
<paypal>
<addressstatus>Unconfirmed</addressstatus>
<payerid>4d22e2606apid</payerid>
<payerstatus>unverified</payerstatus>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:36:00</timestamp>
<transactionreference>72-32-20003</transactionreference>
</response>
<secrand>bt</secrand>
</responseblock>
Feldspezifikation
In der folgenden Tabelle werden die wichtigsten Felder beschrieben, die in der zurückgegebenen Antwort zu überprüfen sind:
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, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
errormessage XPath: /error/message |
Alphanumerisch (255) |
Dies ist die entsprechende Meldung zum obigen Code.
Klicken Sie hier, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
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. | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alphanumerisch & Bindestriche (25) |
Die transactionreference der vorangegangenen Antwort ORDER . | |
paypaladdressstatus XPath: /paypal/adressstatus |
Alpha (25) | Der Status der Adresse bei PayPal. Dies ist eine veraltete Prüfung und PayPal wird immer den Wert "Unbestätigt" zurückgeben. | |
paypalpayerid XPath: /abrechnung/zahlung/zahlerid |
Alphanumerisch (255) | Ungleiche PayPal-Kontonummer. | |
paypalpayerstatus XPath: /paypal/zahlerstatus |
Alpha (25) | Der Status des Zahlers bei PayPal. Dies ist eine veraltete Prüfung und PayPal wird immer den Wert "unverifiziert" zurückgeben. | |
requesttypedescription XPath: /@type |
Alpha (20) | Der zurückgegebene Wert ist "ORDERDETAILS". | |
settleduedate XPath: /Abrechnung/settleduedate |
Datum JJJJ-MM-TT | Das Datum, an dem die Transaktion abgewickelt wird. | |
settlestatus XPath: /Abrechnung/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: /Zeitstempel |
Datum Uhrzeit JJJJ-MM-TT hh:mm:ss | Der Zeitpunkt, zu dem die Anfrage bearbeitet wurde. | |
customercountryiso2a XPath: /customer/country |
Alpha (2) |
Das Land der von PayPal zurückgegebenen Lieferadresse. Dies muss im ISO2A-Format erfolgen. Klicken Sie hier für eine vollständige Liste der Ländercodes. Von PayPal zurückgegeben, falls verfügbar. |
|
customercounty XPath: /customer/county |
Alphanumerisch einschließlich Symbole (127) |
Der Bezirk der von PayPal zurückgegebenen Lieferadresse. Bei US-Adressen wird hier der zweistellige Bundesstaatencode zurückgegeben. Von PayPal zurückgegeben, falls verfügbar. |
|
customeremail XPath: /customer/email |
E-Mail (255) |
Die von PayPal zurückgegebene Liefer-E-Mail-Adresse. Maximale Länge von 255 (maximal 64 Zeichen vor dem "@"-Symbol). Von PayPal zurückgegeben, falls verfügbar. |
|
customerip XPath: /customer/ip |
IP-Adresse (39) |
Die IP-Adresse des Geräts, das zur Bearbeitung der Bestellung verwendet wird. Von PayPal zurückgegeben, falls verfügbar. |
|
customerlastname XPath: /customer/name/last |
Alphanumerisch einschließlich Symbole (127) |
Der vollständige Name für die von PayPal zurückgegebene Lieferung. Von PayPal zurückgegeben, falls verfügbar. |
|
customerpostcode XPath: /customer/postcode |
Alphanumerisch (25) |
Die Postleitzahl (ZIP-Code) der von PayPal zurückgegebenen Lieferadresse. Von PayPal zurückgegeben, falls verfügbar. |
|
customerpremise XPath: /customer/premise |
Alphanumerisch einschließlich Symbole (25) |
Die erste Zeile der von PayPal zurückgegebenen Lieferadresse. Von PayPal zurückgegeben, falls verfügbar. |
|
customerstreet XPath: /customer/street |
Alphanumerisch einschließlich Symbole (127) |
Die zweite Zeile der von PayPal zurückgegebenen Lieferadresse. Von PayPal zurückgegeben, falls verfügbar. |
|
customertown XPath: /customer/town |
Alphanumerisch einschließlich Symbole (127) |
Der Ort der von PayPal zurückgegebenen Lieferadresse. Von PayPal zurückgegeben, falls verfügbar. |
|
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.
Wenn Sie diese Felder ändern möchten, wenden Sie sich bitte an unser Support-Team. Hängt von der Konfiguration Ihres Kontos ab. |
Anzeige der Übersichtsseite für den Kunden
Sie müssen die in der Antwort ORDERDETAILS zurückgegebenen Informationen verwenden, um dem Kunden auf Ihrer Website eine Seite mit einer Zusammenfassung der Bestellung anzuzeigen. Der Kunde kann diese Seite nutzen, um seine Bestellung zu überprüfen und zu bestätigen, dass er fortfahren möchte. In diesem Fall würde Ihr System eine AUTH Anfrage übermitteln, wie unten beschrieben.
Empfohlene Vorgehensweise
- Der Kunde sollte in der Lage sein, den Kauf in zwei oder weniger Schritten abzuschließen, nachdem er von den PayPal-Kassenseiten auf Ihre Website weitergeleitet wurde.
- Der Kunde darf nicht aufgefordert werden, auf der Bewertungsseite manuell zusätzliche Informationen einzugeben.
Auf der oben erwähnten Bestellseite für die Überprüfung sollten dem Kunden vor Abschluss des Kaufs die folgenden Informationen angezeigt werden:
- PayPal als ausgewählte Zahlungsmethode.
- Lieferadresse und E-Mail-Adresse von PayPal (zu finden in der Antwort auf ORDERDETAILS).
- Der Gesamtbetrag, der vom Kunden zu zahlen ist, einschließlich Steuern und eventueller zusätzlicher Versandgebühren, die zum ursprünglichen Transaktionsbetrag hinzukommen (falls zutreffend). Weitere Informationen zu den Versandgebühren finden Sie unten.
Über Versandgebühren
Sobald Ihr System die Antwort ORDERDETAILS erhalten hat, sollten Sie nun im Besitz der Lieferadresse des Kunden sein (wenn Sie ein physisches Produkt versenden wollen). Zu diesem Zeitpunkt dürfen Sie den Transaktionskosten eine Versandgebühr hinzufügen.
Unabhängig von etwaigen Versandkosten müssen Sie dem Kunden die Gesamtkosten vorlegen, und er muss diesem Endbetrag zustimmen, bevor die Zahlung bearbeitet wird. Wir empfehlen, die Kosten für das/die Produkt(e) und die Steuer von den Kosten für die Lieferung zu trennen, damit der Kunde besser verstehen kann, wie der Betrag berechnet wurde.
Sobald der Kunde der Zahlung zustimmt, kann Ihr System eine AUTH Anfrage mit diesem Endbetrag in den folgenden Feldern verarbeiten:
- baseamount - Gesamtkaufbetrag einschließlich Versandgebühren und Steuern.
- customerhippingbaseamount - Versandgebühren, die anhand der von PayPal zurückgegebenen Lieferadresse berechnet werden.
Die Höhe des Zuschlags zur Deckung der Versandkosten wird von Ihnen bestimmt. Im Allgemeinen gibt es drei Möglichkeiten zur Berechnung der Versandgebühr:
- Kostenloser Versand - Sie entscheiden sich dafür, keine zusätzlichen Gebühren auf die Produktkosten aufzuschlagen, und Ihr Unternehmen übernimmt die Versandkosten.
- Fester Versandpreis - Sie entscheiden sich dafür, für jede Bestellung die gleiche Versandgebühr zu erheben. Dies funktioniert am besten, wenn Sie sicherstellen, dass die vorgenannte Gebühr denselben Wert hat wie die durchschnittlichen Versandkosten für alle Ihre Bestellungen.
- Berechnen Sie die genauen Kosten (unter Verwendung von Echtzeittarifen) - Jetzt, da Sie die Lieferadresse des Kunden sowie Größe und Gewicht der Lieferung kennen, können Sie sich mit Ihrem Versandpartner in Verbindung setzen und die genauen Versandkosten berechnen und diese dem Kunden vor Abschluss der Zahlung mitteilen.
4. Verarbeiten Sie die Autorisierung
Nachdem der Kunde bestätigt hat, dass er mit der Zahlung fortfahren möchte, muss Ihr System eine AUTH Anfrage durchführen und die zurückgegebene Antwort interpretieren.
Hier ist ein Beispiel für eine PayPal-Anfrage AUTH . Beachten Sie, dass die Struktur der Standardanfrage AUTH ähnelt, mit Ausnahme der meisten Zahlungs-, Rechnungs- und Lieferdaten, die von den vorherigen Anfragen übernommen wurden. Bitte stellen Sie sicher, dass das Feld parenttransactionreference Feld übermittelt wird, das die eindeutige Transaktionsnummer der vorangegangenen ORDERDETAILS Anfrage enthält.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"baseamount": "2150",
"customershippingbaseamount": "500",
"parenttransactionreference": "72-32-20003",
"paymenttypedescription": "PAYPAL",
"requesttypedescription": "AUTH",
"sitereference": "test_site12345"
}
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(
'baseamount' => '2150',
'customershippingbaseamount' => '500',
'parenttransactionreference' => '72-32-20003',
'paymenttypedescription' => 'PAYPAL',
'requesttypedescription' => 'AUTH',
'sitereference' => 'test_site12345'
);
$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": [{
"baseamount": "2150",
"customershippingbaseamount": "500",
"parenttransactionreference": "72-32-20003",
"paymenttypedescription": "PAYPAL",
"requesttypedescription": "AUTH",
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"baseamount": "2150",
"customershippingbaseamount": "500",
"parenttransactionreference":"72-32-20003",
"paymenttypedescription":"PAYPAL",
"requesttypedescription":"AUTH",
"sitereference":"test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<billing>
<amount>2150</amount>
</billing>
<customer>
<shippingamount>500</shippingamount>
</customer>
<operation>
<parenttransactionreference>72-32-20003</parenttransactionreference>
<sitereference>test_site12345</sitereference>
</operation>
<billing>
<payment type="PAYPAL"/>
</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) |
Senden Sie die transactionreference die in der vorangegangenen Antwort ORDERDETAILS zurückgegeben wurde. | |
paymenttypedescription XPath: /abrechnung/zahlung/@type |
Alpha (20) | Dieser Wert muss als "PAYPAL" 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. | |
baseamount XPath: /Rechnung/Betrag |
Numerisch (11) |
Wenn der Gesamtbetrag der Bestellung durch die Hinzufügung der Versandgebühren von dem baseamount in der Anfrage ORDER abweicht, müssen Sie die baseamount mit dem aktualisierten Gesamtbetrag in der Anfrage AUTH . z.B. Endgültige baseamount = die Summe von (Produktgrundbetrag x productquantity) + die Summe von (Produktsteuergrundbetrag x productquantity) + Endgültiger Kundenversandgrundbetrag Die baseamount wird in Basiseinheiten ohne Komma oder Dezimalpunkt angegeben, z. B. wird 10 € als 1000 € angegeben. |
|
Kundenversandgrundbetrag XPath: /Kunde/Versandbetrag |
Numerisch (11) |
Dieser Betrag entspricht den Gesamtausgaben für den Versand in Basiseinheiten. Dabei muss es sich um den endgültigen Versandbetrag handeln, da dieser nicht mehr aktualisiert werden kann, bevor der Kunde den Kauf abgeschlossen hat. Der Grundbetrag für den Kundenversand wird in Basiseinheiten ohne Kommas oder Dezimalpunkte angegeben, z. B. werden 10 € als 1000 € angegeben. |
Hier ist ein Beispiel für eine PayPal-Antwort AUTH . Die Struktur ähnelt einer Standardantwort von AUTH , mit Ausnahme der Einbeziehung zusätzlicher PayPal-spezifischer Felder.
{
u 'requestreference': u 'A0dcb11e6',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'acquirerresponsecode': u 'CREATED',
u 'authcode': u '44782-D149613359266',
u 'baseamount': u '2150',
u 'currencyiso3a': u 'GBP',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'merchantname': u 'Test Merchant',
u 'operatorname': u 'webservices@example.com',
u 'parenttransactionreference': u '72-32-20003',
u 'paymenttypedescription': u 'PAYPAL',
u 'requesttypedescription': u 'AUTH',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20004',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:20'
}]
}
array(3) {
["requestreference"] => string(9) "A58cdfkpy"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0] =>array(17) {
["accounttypedescription"] => string(4) "ECOM"
["acquirerresponsecode"] => string(7) "CREATED"
["authcode"] => string(19) "44782-D149613359266"
["baseamount"] => string(4) "2150"
["currencyiso3a"] => string(3) "GBP"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["merchantname"] => string(13) "Test Merchant"
["operatorname"] => string(23) "webservices@example.com"
["parenttransactionreference"] => string(11) "72-32-20003"
["paymenttypedescription"] => string(6) "PAYPAL"
["requesttypedescription"] => string(4) "AUTH"
["settleduedate"] => string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20004"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:20"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"acquirerresponsecode":"CREATED",
"authcode":"44782-D149613359266",
"baseamount":"2150",
"currencyiso3a":"GBP",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"merchantname":"Test Merchant",
"operatorname":"webservices@example.com",
"parenttransactionreference":"72-32-20003",
"paymenttypedescription":"PAYPAL",
"requesttypedescription":"AUTH",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20004",
"transactionstartedtimestamp":"2020-06-01 15:36:20"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X538160153</requestreference>
<response type="AUTH">
<acquirerresponsecode>CREATED</acquirerresponsecode>
<authcode>83154-D140912749345</authcode>
<billing>
<amount currencycode="GBP">2150</amount>
<payment type="PAYPAL"/>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>72-32-20003</parenttransactionreference>
</operation>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:36:20</timestamp>
<transactionreference>72-32-20004</transactionreference>
</response>
<secrand>LLq</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". | |
acquirerresponsecode XPath: /acquirerresponsecode |
Alphanumerisch (255) | Wird von Ihrem Acquirer verwendet, um das Ergebnis der Anfrage anzuzeigen. | |
baseamount XPath: /Rechnung/Betrag |
Numerisch (11) | Der Gesamtbetrag der Transaktion in Basiseinheiten, ohne Kommas oder Dezimalpunkte, so dass 10 € als 1000 zurückgegeben werden. | |
currencyiso3a XPath: /Rechnung/Betrag/@Währungscode |
Alpha (3) |
Die Währung, in der die Transaktion verarbeitet wurde (im ISO3A-Format).
Eine Liste der von PayPal unterstützten Währung Codes 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, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
errormessage XPath: /error/message |
Alphanumerisch (255) |
Dies ist die entsprechende Meldung zum obigen Code.
Klicken Sie hier, um eine vollständige Liste der errorcode und der Nachrichtenwerte zu erhalten. |
|
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. | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alphanumerisch & Bindestriche (25) |
Die transactionreference der vorangegangenen Antwort ORDERDETAILS . | |
paymenttypedescription XPath: /abrechnung/zahlung/@type |
Alpha (20) | Der zurückgegebene Wert ist "PAYPAL". | |
requesttypedescription XPath: /@type |
Alpha (20) | Der zurückgegebene Wert ist "AUTH". | |
settleduedate XPath: /Abrechnung/settleduedate |
Datum JJJJ-MM-TT | Das Datum, an dem die Transaktion abgewickelt wird. | |
settlestatus XPath: /Abrechnung/settlestatus |
Numerisch (3) | Dieses Feld wird zur Bestimmung des Transaktionsstatus verwendet. (Siehe unten für Informationen über Abrechnung) | |
transactionreference XPath: /transactionreference |
Alphanumerisch einschließlich Bindestriche (25) |
Eine eindeutige Referenz für die Anfrage, die von Trust Payments zugewiesen wird. | |
transactionstartedtimestamp XPath: /Zeitstempel |
Datum Uhrzeit JJJJ-MM-TT hh:mm:ss | Der Zeitpunkt, zu dem die Anfrage bearbeitet wurde. | |
authcode XPath: /authcode |
Alphanumerisch (255) |
Der von der ausstellenden Bank bereitgestellte Autorisierung Code. Wird nur zurückgegeben, wenn die Transaktion genehmigt ist. |
|
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.
Wenn Sie diese Felder ändern möchten, wenden Sie sich bitte an unser Support-Team. Hängt von der Konfiguration Ihres Kontos ab. |
5. Abschluss der Zahlung
Abrechnung
Sobald eine PayPal-Transaktion autorisiert wurde, wird der Betrag in der Regel innerhalb von 24 Stunden auf Ihr Bankkonto überwiesen:
- Nach Autorisierung wird der Abrechnungsstatus auf 0 gesetzt, um anzuzeigen, dass Abrechnung anhängig ist.
- Trust Payments initiiert täglich den Abrechnung Prozess für ausstehende PayPal-Transaktionen.
- Die Abrechnungsstatus einer PayPal-Transaktion wird auf 10 aktualisiert, wenn Abrechnung in Bearbeitung ist.
- Kurz darauf erhält Trust Payments eine Bestätigung von PayPal, dass die Zahlung erfolgt ist und der Abrechnungsstatus wird auf 100 aktualisiert.
Über Pay Later
Bitte denken Sie bei der Bearbeitung von Bestellungsanfragen von Kunden daran, dass sich ein Kunde dafür entschieden haben könnte, die Kosten für den Kauf über die Pay-Later-Produkte von PayPal zu verteilen.
Unabhängig davon, wie der Kunde die Transaktion finanziert, werden Sie, wie bei einer herkömmlichen PayPal-Transaktion, zum Zeitpunkt des Kaufs vollständig bezahlt.
Dadurch kann eine PayPal-Transaktion als "abgewickelt" verbucht werden, auch wenn der Kunde seinen Saldo bei PayPal noch nicht beglichen hat. Etwaige Probleme, die im Zusammenhang mit zinslosen Krediten oder ausstehenden Ratenzahlungen aufgetreten sind, müssen vom Kunden direkt mit PayPal geklärt werden.
Alternative Abrechnung fließt
Um Abrechnung für eine bestimmte PayPal-Transaktion aufzuschieben, fügen Sie settlestatus=2 in die Anfrage ORDER ein. Dies wird an die Anfrage AUTH vererbt, die die vorübergehende Aussetzung der Transaktion nach Autorisierung auslöst.
Die Abrechnung wird zurückgestellt, bis Sie eine TRANSACTIONUPDATE mit settlestatus=0.
PayPal-Transaktionen können bis zu 31 Tage lang aufgeschoben werden.
Die sofortige Funktionalität von Abrechnung unterliegt zusätzlichen Anforderungen.
Bevor Sie sofortige Abrechnung bearbeiten können, müssen Sie sich mit unserem Support-Team in Verbindung setzen und beantragen, dass dies in Ihrem Konto aktiviert wird.
Um die sofortige Abrechnung für eine bestimmte Transaktion zu ermöglichen, fügen Sie settlestatus=100 in die Anfrage ORDER ein. Diese Angabe wird an die Anfrage AUTH vererbt, die Trust Payments dazu veranlasst, die Überweisung Abrechnung unmittelbar nach Autorisierung vorzunehmen.
Wenn PayPal mehr Zeit für die Durchführung von Prüfungen benötigt, kann die Transaktion vorübergehend auf Abrechnungsstatus 10 gesetzt werden.
Sie haben die Möglichkeit, einen niedrigeren Betrag als den ursprünglich genehmigten zu begleichen. Reichen Sie dazu einen TRANSACTIONUPDATE mit einem niedrigeren settlebaseamount.
Benachrichtigungen
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 autorisiert ist (AUTH hat errorcode=0).
- Wenn die Mittel abgerechnet wurden (AUTH in settlestatus=100).
Wenn Sie den Support kontaktieren, geben Sie bitte Ihre Website-Referenz und den Endpunkt an, an den die Benachrichtigung gesendet werden soll.
Sie müssen den Inhalt jeder erhaltenen Meldung prüfen und entsprechend reagieren, indem Sie die in unseren URL-Benachrichtigungen Dokumentation beschrieben sind. Insbesondere müssen Sie auf den aktualisierten settlestatus Wert:
- Auf Genehmigung: Wenn die settlestatus auf "0", "1" oder "10" steht, wurde die Zahlung genehmigt und Sie müssen zu diesem Zeitpunkt keine weiteren Maßnahmen nehmen. Werte von "2" oder "3" bedeuten jedoch, dass die Gelder nicht zur Abrechnung vorgesehen sind (aufgeschoben bzw. storniert)
- Auf Abrechnung: Wenn die settlestatus auf "100" aktualisiert wurde, bedeutet dies, dass der Betrag beglichen wurde. Wenn der Wert auf "3" aktualisiert wurde, bedeutet dies, dass ein Problem aufgetreten ist und die Zahlung daraufhin storniert wurde.
Rückerstattungen
Der Prozess der Bearbeitung von PayPal-Erstattungen ist derselbe wie bei einer Standard-Kartentransaktion, aber bitte beachten Sie zunächst die folgenden Hinweise:
- Um sicherzustellen, dass Ihre Datensätze auf Trust Payments mit denen von Paypal synchronisiert bleiben, empfehlen wir Ihnen dringend, Rückerstattungen ausschließlich über die Plattform Trust Payments und nicht über den PayPal-Administrator portal vorzunehmen.
- Sie müssen sicherstellen, dass Sie den Antrag AUTH erstatten und NICHT Verweise auf verwandte Anfragen ORDER oder ORDERDETAILS weiterleiten.
- Die meisten PayPal-Erstattungen werden sofort abgewickelt (settlestatus=100). Unter bestimmten, von PayPal definierten Bedingungen können Rückerstattungen jedoch auf settlestatus=10 ("Settling") gesetzt werden, was ein Zwischenschritt vor Abrechnung ist. Wenn eine PayPal-Rückerstattung auf Ihrem Konto auf settlestatus=10 steht, empfehlen wir Ihnen, dies bei unserem Support-Team zu erfragen, falls weitere Maßnahmen ergriffen werden müssen, um Abrechnung sicherzustellen.
Über Pay Later
Wenn Sie Rückerstattungsanfragen von Kunden bearbeiten, denken Sie bitte daran, dass sich ein Kunde möglicherweise dafür entschieden hat, die Kosten für den ursprünglichen Kauf über die Pay-Later-Produkte von PayPal zu verteilen.
Aus diesem Grund sollten Sie bei einer vollständigen Rückerstattung einer Transaktion unbedingt den gesamten Betrag zurückerstatten, um sicherzustellen, dass dem Kunden nicht später noch ausstehende Beträge auf dem Guthaben in Rechnung gestellt werden.
Bei einer Rückerstattung wird der Betrag von Ihrem Bankkonto abgebucht, und PayPal ist dafür verantwortlich, dass der Betrag dem Kunden entsprechend gutgeschrieben wird.
Unter Berücksichtigung der obigen Hinweise klicken Sie auf die nachstehenden Links, um die Anweisungen zur Durchführung von PayPal-Erstattungen in einer neuen Registerkarte zu öffnen: