Paypal integration aber wie?

Hallo,

von dem oben beschriebenen Beispiel würde ich dir schon alleine aus Sicherheitsgründen abraten. Solltest Du dich doch für die POST-Variante von oben entscheiden, setze die versteckten Felder bitte zusätzlich zumindest auf readonly. Auch hidden-Felder können durch ein einfaches Browser-Addon sichtbar und beschreibbar (wenn nicht readonly) gemacht werden.

Ich selbst habe PayPal bereits mit der setExpressCheckout-Methode in unsererm Webshop implementiert. Die Funktionsweise kurz zusammengefasst:

1.) Kunde klegt ganz normal Artikel in den Warenkorb

2.) Auswahl Zahlungsart = PayPal

3.) Nun beginnt die Kommunikation mit der PayPal-API. Kommunikation läuft über dem Benutzer unsichtbare HTTP-Requests (NVP (NameValuePair)). Sprich, Du rufst einfach durch eine bestimmte URL den Webservice auf und übergibst sämtliche Infos als Übergabeparameter (GET). Der erste Request wäre der "setExpressCheckout"-Request. Mit diesem "meldest" Du eine Zahlung für PayPal an. Mit diesem kannst Du auch die Seite übergeben, auf die der Kunde nach Abschluss der Zahlung hingeleitet werden soll (z.B. zurück zum Shop).

4.) Als Response auf diesen Request bekommst Du von PayPal einen TOKEN zurück, der die Transaktion eindeutig verifiziert. Nun kannst Du den Kunden an eine feste URL weiterleiten. Z.B. http://www.paypal.com?token=ERHALTENER_TOKEN (URL nicht korrekt, nur ein Beispiel). Dort bekommt der Benutzer dann alle Produkte, Preise (alles, was im setExpressCheckout übergeben wurde) noch einmal angezeigt, kann seine Zahlungsart (Kreditkarte, Bankeinzug, Guthaben..) und seine Lieferadresse (wenn nicht ausgeblendet) auswählen. Hier bietet PayPal sehr viele Möglichkeiten, die Checkout-Seite den Bedürfnissen der eigenen Firma gerecht zu werden.

5.) Kunde hat die Zahlung getätigt und klickt auf der PayPal-Seite endgültig auf "Zahlen".

6.) Zahlung wird durchgeführt und der Kunde wird mit 2 zusätzlichen Parametern in der URL zurück auf Deine Seite geleitet.

7.) Auf der PayPal-Landingpage muss nun der letzte, die Transaktion vollständig abschließende Request durchgeführt werden. (doExpressCheckoutPayment). Erst nach Aufruf dieses Requests ist die Zahlung verifiziert und wird dem Kunden belastet.

Wie gesagt, sehr grob. Selbstverständlich ist das ganze mit der Sandbox testbar. Diese dient auch als Entwicklungsumgebung.

Alles weitere findest Du hier:

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/library_documentation#ec

Bei Fragen - melden.

VG,
maeg
 
Super vielen Dank!

Genau so wie die setExpressCheckout-Methode habe ich mir das vorgestellt.

Also mach ich einfach einen Button auf der Seite mit dem Link zu Paypal und den ganzen Parametern.
 
Hi,

ich glaube, Du hast mich da etwas fehlverstanden. Ein "Button zu PayPal mit den ganzen Parametern" ist absolut nicht ausreichend. Die Voraussetzung, dass Du den Benutzer zu PayPal weiterleiten kannst, ist die vorherige Ausführung des "setExpressCheckout"-Requests. Dies funktioniert VOR der Weiterleitung im Hintergrund Deiner Seite( z.B. via CURL). Um die korrekte Funktionalität der Schnittstelle sicherzustellen ist hier auf ein exaktes Fehlerhandling zu achten. Für die Fehlercodes gibt es eine eigene Dokumentation, welche man sich auf jeden Fall durchlesen sollte!

Ich empfehle Dir, sämtliche Funktioanlitäten in einer Klasse "PayPal" zusammen zu fassen. Dein Shop kann sich dann den Methoden der neuen Klasse bedienen. Ebenfalls kann ich Dir sagen, dass die Integration kein Zuckerschlecken ist und nicht an einem Tag "mal eben" erledigt ist. Gerade, da die Integration einer neuen Zahlungsart ein geschäftskritischer Prozess ist, der 100%ig funktionieren muss, sollte man hier auf keinen Fall eine "Hauptsache es funktioniert"-Lösung erschaffen. Eine fehlerhafte Einbindung bzw. falsches Fehlerhandling kann Betrügern neue Türen öffnen..

Wie gut schätzt Du deine PHP-Kenntnisse ein? Wie gesagt: Les dir mal die NVP-API (NVP = NameValuePair) durch. Ebenfalls gibt es einen Integrationsleitfaden, der für die Integration in den eigenen Shop durchaus nützlich sein kann.

VG,
Maeg
 
Zurück