.

PayPal in die eigene Webseite integrieren


PayPal ist ein Finanzdienstleister im Internet, der auch Betreibern von Webseiten gängige Online-Zahlungsmöglichkeiten wie Kreditkartenzahlung oder Bankeinzug anbietet. In den letzten Wochen habe ich mich mit dem Produkt "PayPal Website Payments Standard" auseinandergesetzt, da dies keine PCI-DSS Erfüllung verlangt (Sicherheitsstandard der Kreditkartenindustrie).

Zum Einrichten eines solchen Systems benötigt man einen PayPal Geschäftskonto. Hat man dieses erstellt und verifiziert kann man sich einen PayPal Button unter "Mein Profil", "mehr ...", "Verkäufer/Händler", "PayPal Buttons" erstellen.

Um das System aber erstmal zu testen und nicht gleich echtes Geld zu transfieren, sollte man sich bei der PayPal Sandbox registrieren. Innerhalb dieser Sandbox kann man dann weitere Privat- und Geschäftskonten erstellen. Legt man sich z.B. ein Privatkonto an, kann man mit diesem seine Testbestellungen bezahlen. Mit einem entsprechendem Geschäftskonto kann man sich einen PayPal Test Button zum Testen einrichten.

Hat man sich also in der Sandbox mit dem Geschäftskonto einen Button angelegt und in seine Webseite eingebaut, kann man mit dem Privatkonto der Sandbox bezahlen. Um die Konten innerhalb der Sandbox bei der Bezahlung zu nutzen, muss man in der Sandbox eingeloggt sein.

Jetzt möchte man noch erfahren, ob eine Bezahlung erfolgreich war. Dazu verwendet man die IPN (Instant Payment Notification) Schnittstelle. Bei der Buttonkonfiguration kann man eine "notify_url" angeben, diese fungiert als Callback. PayPal ruft bei jeder Transaktion oder Statusänderung diese URL auf und gibt eine Menge an Parmetern mit. Jetzt muss man diese gleichen Parameter wieder an PayPal zurücksenden und bekommt dann eine Erfolgs- oder Misserfolgsmeldung. Mehr dazu ist in der Dokumentation beschrieben und Beispielcode gibt es auch. Zu beachten ist, dass im Beispielcode die regulare PayPal URL enthalten ist und nicht die Sandbox URL (https://www.sandbox.paypal.com/cgi-bin/webscr).

Will man die Zahlungsbestätigungen, die über IPN kommen, seinen Kunden zuordnen, kann man die versteckten Inputfelder "custom" (z.B. als Kundennummer) und "invoice" (z.B. als Bestellnummer) in seinem PayPal Button verwenden. Die Inhalte werden dann beim Aufruf der "notify_url" von PayPal mitgeliefert.

Website Payment Standard erlaubt es Kunden sowohl via PayPal-Konto zu zahlen oder ohne PayPal-Konto per Kreditkarte oder Bankeinzug. Allerdings ist die Option zum Zahlen per Kreditkarte oder Bankkonto (also ohne PayPal-Konto) relativ versteckt. Klickt man auf den etwas versteckten Link, kommt man auf eine Seite die links ein Formular zum Bezahlen ohne PayPal-Konto anbietet und rechts ein Login-Formular für PayPal Kunden. Mit dem Produkt Express Checkout kann man auch direkt auf diese zweite Seite verlinken. Dazu muss man den Parameter "&LANDINGPAGE=Billing" an die Variable "nvpstr" in der Datei "paypalfunctions.xxx" anfügen.

Das Setup mit Express Checkout ist wesentlich komplexer, bietet allerdings wesentlich mehr Einstellmöglichkeiten. Leider ist der Java-Beispiel-Code von PayPal ist höchst fehlerhaft. Eventuell lohnt hier ein Blick in das PayPal SDK.

Einfach ist die PayPal Integration keineswegs, die hinzukommende Produktvielfalt macht die Wahl zusätzlich ungemein schwer. Ein klares und einheitliches (PayPal Deutschland vs. PayPal USA) Produktportfolio würde schon viel helfen.

Tags: Sandbox, Button, PayPal, Express Checkout, Checkout, Integration, Website Payments Standard


Kommentare

comments powered by Disqus