Wenn Sie die Integration testen möchten bevor Sie live gehen und noch über kein PayPal Sandbox-Testkonto verfügen, bitten wir Sie im ersten Schritt ein PayPal Sandbox-Testkonto zu erstellen.
1. Melden Sie sich bei https://developer.paypal.com/ an und gehen Sie zu „Testing Tools“ => „Sandbox Accounts“
2. Klicken Sie auf „Konto erstellen“ und wählen Sie „Geschäftlich (Händlerkonto)“ und „Deutschland“ als „Land / Region“ aus.
3. Wählen Sie „Konto anzeigen/bearbeiten“
4. Nehmen Sie „E-Mail-ID“ und „vom System generiertes Passwort“ und verwenden Sie diese im nächsten Schritt als Login/Pass für Sandbox.
Damit Transaktionen in Ihrem Namen verarbeiten darf, bitten wir Sie, die entsprechenden Berechtigungen zu erteilen.
Berechtigungen können unter Ihrem PayPal-Konto erteilt werden. Bitte verwenden Sie die folgenden Links, um sich bei Ihrem PayPal-Konto anzumelden, und folgen Sie den Schritten.
<br/> <script type="text/javascript"> function sh() { alert('Failed to acquire paypal registration link, please contact customer support or try again later.') } function getPPRegUrl(merchId,dataKey,dataLen) { const request = new XMLHttpRequest(); request.open('GET', 'https://www.computop-paygate.com/ExternalServices/paypalorders.aspx?MerchantID='+merchId+'&Len='+dataLen+'&Data='+dataKey, false); request.send(null); if (request.status === 200) { console.log(request.responseText); try { return request.responseText.split('&').filter(p=>p.startsWith('paypalurl')).map(pv=>pv.substring(pv.indexOf('=')+1))[0] } catch (ex) { console.log("Unable to extract PP Url"); sh() } } else { sh() } return "" } (function(d, s, id) { var js, ref = d.getElementsByTagName(s)[0]; if (!d.getElementById(id)) { js = d.createElement(s); js.id = id; js.async = true; js.src = "https://www.paypal.com/webapps/merchantboarding/js/lib/lightbox/partner.js"; ref.parentNode.insertBefore(js, ref); } }(document, "script", "paypal-js")); </script> <div dir="ltr" style="text-align: center;" trbidi="on"> <a id="paypal-reg-button-sb" data-paypal-button="true" href="<Action-URL>&displayMode=minibrowser" target="PPFrame"><h3>Sign up for PayPal Sandbox</h3></a> <script type="text/javascript"> function setUrlSB(e) { const newUrl = getPPRegUrl('CT_PayPal_Onboarding_Sandbox','F629FDED40503D5783C8C879A183F09135BE4273A2425AF69E75BF65ED026CE509E949A51037906F37DA3EE9161741742DEEFFF5D1146BFAC67DD35F49799F49518D3459657B2C3181AC5FF352640902AF342A2F3804DE9B167FF083A2C52EF20C8FEA76A8A73BA877E54264DCB4C70F','105') if (newUrl) { const elm = e.currentTarget if (elm) { elm.setAttribute("href", "<Action-URL>&displayMode=minibrowser".replace("<Action-URL>", newUrl)) return true } } if (!e) e = window.event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); return false } const ppLinkSB = document.getElementById("paypal-reg-button-sb") if (typeof window.addEventListener != "undefined") { ppLinkSB.addEventListener("click",setUrlSB); } else { ppLinkSB.attachEvent("onclick",setUrlSB); } </script> </div> <br/> <div dir="ltr" style="text-align: center;" trbidi="on"> <a id="paypal-reg-button-prod" data-paypal-button="true" href="<Action-URL>&displayMode=minibrowser" target="PPFrame"><h3>Sign up for PayPal Production</h3></a> <script type="text/javascript"> function setUrlProd(e) { const newUrl = getPPRegUrl('CT_PayPal_Onboarding_Prod','3846216250F3E10765463DDE776E26881A43EC12E422B535E33B9124EEF9E739483E1FED8962A43AFA5E6B7158EAFF5C40ACF8C6C22B52ADD579DFE28BCAB4AF245E4294F662148AEBB07777604CB5C4BC3F715497806D1E63FD5BC159835BCE2F7D8A5E63BAB67F','102') if (newUrl) { const elm = e.currentTarget if (elm) { elm.setAttribute("href", "<Action-URL>&displayMode=minibrowser".replace("<Action-URL>", newUrl)) return true } } if (!e) e = window.event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); return false } const ppLinkProd = document.getElementById("paypal-reg-button-prod") if (typeof window.addEventListener != "undefined") { ppLinkProd.addEventListener("click",setUrlProd); } else { ppLinkProd.attachEvent("onclick",setUrlProd); } </script> </div> |
Um die Händlereinrichtung auf -Seite abzuschließen, bitten wir Sie, die PayerID an Merchant Services zu senden.
Die PayerID finden Sie unter Ihrem PayPal-Konto unter https://paypal.com/myaccount/settings/ wie angegeben. Durch die PayerID wird der Händler eindeutig bei PayPal identifiziert. Für die Sandbox- und Live Umgebung lautet die PayerID identisch.
Auf der Client-Seite erfolgt die PayPal-Implementierung über das PayPal JavaScript SDK.
Je nach Ihrer Einrichtung können Sie das folgende Skript verwenden oder mit Hilfe der offiziellen PayPal JavaScript SDK-Dokumentation https://developer.paypal.com/sdk/js/ ein eigenes erstellen.
Während Sie in der Sandbox testen, können Sie die |
Der obige Codeabschnitt enthält die folgende Zeile. In dieser Zeile können Sie festlegen, welche Finanzierungsquellen im Webshop zugelassen werden.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=capture"></script>
Die Zeile entsprach der folgenden Schaltfläche. Standardmäßig (unter Verwendung der obigen Zeile) ist nur die PayPal-Schaltfläche verfügbar.
Wenn zusätzlich der zur standardmäßigen PayPal-Schaltfläche die Schaltfläche PayPal Später Bezahlen benötigt wird, kann die Schaltfläche durch den Parameter enable-funding wie folgt aktiviert werden.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&enable-funding=paylater"></script>
Im Ergebnis erscheinen folgende zwei Schaltflächen.
Die komplette List der Werte für disable-funding und enable-funding finden Sie unter nachstehendem Link.
https://developer.paypal.com/docs/regional/th/checkout/reference/customize-sdk/#components
Der obige Codeabschnitt enthält die folgende Zeile.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=capture"></script>
Das bietet 3 mögliche Optionen für eine Zahlung.
Der Parameter intent in der obigen Zeile muss mit diesen Optionen synchron sein.
Wenn die Option SALE verwendet wird, muss der Parameter intent wie nachstehend auf "capture" gesetzt werden.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=capture"></script>
Wenn die Option AUTHORIZE oder ORDER verwendet wird, muss der Parameter intent wie nachstehend auf "authorize" gesetzt werden.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=authorize"></script>
Es ist wichtig, den richtigen Wert für den Parameter intent festzulegen, weil sonst ein Fehler auftritt.
Der obige Codeabschnitt für die PayPal-Schaltfläche hat keine stilbezogenen Parameter. Dieser Codeabschnitt geht wie folgt vom standardmäßigen PayPal-Stil für die Schaltfläche aus.
PayPal erlaubt es, verschiedene Stile für die PayPal-Schaltfläche zu definieren, indem Sie die Parameter shape, color, layout und label verwenden. Eine vollständige Liste der stilbezogenen Parameter finden Sie unter dem folgenden Link.
https://developer.paypal.com/docs/checkout/advanced/style-guide/
Um eine PayPal-Zahlung im -Formular abzuwickeln, nutzen Sie folgende URL und Parameter:
ExternalServices/paypalorders.aspx |
Mit dieser URL unterstützt das zwei verschiedene PayPal-Methoden: Einerseits können Sie PayPal ganz normal als zusätzliche Zahlungsmethode zum Abschluss einer Bestellung anbieten. Zum anderen können Sie PayPal Express Checkout nutzen, damit der Kunde vom Warenkorb direkt zu PayPal gelangt und dort seine Liefer- und Rechnungsadresse auswählt. Dem Kunden erspart das die erneute Eingabe von Adressdaten und als Händler genießen Sie den PayPal Verkäuferschutz.
Das unterstützt auch für PayPal Express Checkout das Auseinanderfallen von Autorisierung und Buchung. Sie können über das über Parameter steuern, ob der Betrag auf dem PayPal-Account des Kunden geblockt oder gleich gebucht werden soll.
Hinweis: Damit Sie vom PayPal Verkäuferschutz profitieren, muss eine der folgenden Bedingungen erfüllt sein. Entweder der Kunde nutzt PayPal Express Checkout und wählt eine bei PayPal selbst hinterlegte Lieferadresse aus, die das an Ihren Shop übergibt. Oder Ihr Shop übergibt die bereits bekannte Lieferadresse an PayPal. Der Verkäuferschutz gilt nur, wenn die Ware an diese angegebene Adresse geliefert wurde. Zwischen der Autorisierung des Betrags im PayPal-Konto des Kunden und der Buchung dürfen nicht mehr als 3 Tage liegen, wenn Sie vom Verkäuferschutz profitieren möchten. Das unterstützt deshalb mehrere Alternativen zur Abwicklung von PayPal-Zahlungen: für eine Beratung zur Implementierung von PayPal stehen wir Ihnen gerne zur Verfügung.
Parameter für PayPal-Zahlungen
Ergebnis-Parameter für URLSuccess, URLFailure und URLNotify bei PayPal
Hinweis: Die Adress-Parameter werden immer an den Shop übergeben, sind aber leer, wenn keine Adressdaten ausgetauscht wurden.
Die PayPal-Methode "shortcut" ermöglicht einen geänderten Transaktionsablauf, bei dem der Kunde für die Zahlungsbestätigung in den Shop zurückgeleitet wird. Um im nächsten Schritt diese PayPal-Zahlung abzuschließen, nutzen Sie folgende URL und Parameter:
paypalComplete.aspx |
Parameter für PayPal-Zahlungen mit Methode "shortcut"
Ergebnis-Parameter bei PayPal mit Methode "shortcut"
Für eine PayPal Zahlung kann im Prozessablauf die ORDER von der anschließenden Autorisierung und nachfolgenden Schritten getrennt werden. Eine separate Autorisierung ist nur nach erfolgten Order (TxType=Order) möglich.
Für eine separate Autorisierung bei PayPal verwenden Sie bitte URL:
Authorize.aspx |
Parameter für PayPal-Autorisierung
Ergebnis-Parameter bei PayPal-Autorisierung
Um eine Buchung (Capture) für PayPal über eine Server-zu-Server-Verbindung auszuführen, verwenden Sie bitte folgende URL:
capture.aspx |
Parameter für PayPal-Buchungen
Ergebnis-Parameter für PayPal-Buchungen
Um eine Gutschrift (Credit) mit Referenztransaktion für PayPal auszuführen, verwenden Sie bitte folgende URL:
credit.aspx |
Parameter für PayPal-Gutschriften mit Bezugstransaktion
Ergebnis-Parameter für PayPal-Gutschriften mit Bezugstransaktion
Um eine Gutschrift ohne Bezugstransaktion für PayPal abzuwickeln, verwenden Sie bitte folgende URL:
paypalcreditEx.aspx |
Parameter für PayPal-Gutschriften ohne Bezugstransaktion
Ergebnis-Parameter für PayPal-Gutschriften ohne Bezugstransaktion
Um eine Transaktion bei PayPal zu stornieren, verwenden Sie bitte folgende URL:
reverse.aspx |
Parameter für PayPal-Stornierungen
Ergebnis-Parameter für PayPal-Stornierungen
Der Prozess umfasst zwei Schritte.
Einrichten einer Abrechnungsvereinbarung (Anfangstransaktion der Abrechnungsvereinbarung)
Nutzung der Abrechnungsvereinbarung
Um eine PayPal-Abonnementzahlung zu veranlassen, verwenden Sie bitte folgende URL:
paypalreftrans.aspx |
Parameter für PayPal-Referenztransaktionen
Ergebnis-Parameter für PayPal-Referenztransaktionen
Dieses Kapitel beschreibt die Parameter, die Sie im Datensatz (Record) für die Ausführung einer PayPal-Zahlung übergeben müssen und welche Informationen Sie der Antwort-Datei über den Status des Zahlungsvorgangs entnehmen können.
Bei den Batch-Aufrufen ist die verwendete Batch-Version zu unterscheiden, wovon die optionalen Parameter abhängen. Alle mit „2.“ beginnen Versionsbezeichnungen betreffen Aufrufe für einen Konzern. Das bedeutet, innerhalb einer Batch-Datei mit einer bestimmten MerchantID können auch Transaktionen anderer Händler mit einer abweichenden Sub-MID übertragen werden.
Folgende Tabelle gibt eine Übersicht der pro Aktion jeweils möglichen Batch-Versionen und ihrer Besonderheiten:
Beschreibung der möglichen Batch-Versionen
Der Aufbau für eine PayPal-Zahlung in einer einzureichenden Batch-Datei sieht folgendermaßen aus:
Beispiel für Master-MID-Funktion:
Hinweis: Bei Version 1.4 ist es auch möglich, bei einer Capture-Aktion den CompleteType zusätzlich mit zu übergeben:
PAYPAL,Capture,<Amount>,<Currency>,<TransID>,(<RefNr>,)<PayID>(,<CompleteType>,<TID>)
Beschreibung der Felder im Datensatz von Batch-Dateien
Der Record-Bereich in der Antwort-Datei zu Batch-Transaktionen sieht folgendermaßen aus:
Beschreibung der Ergebnis-Parameter im Datensatz von Batch-Dateien