Die Integration der PayPal-Zahlweise in ein VIO.Matrix Webprojekt erfolgt über mehrere, aufeinander aufbauende Schritte:
- Erstellung eines Layout zum Setzen aller Zahlungsparameter (PayPal-URL, -Login, etc.)
- Ergänzung eines PayPal-Zahlungsformulares, welches die notwendigen Bestellinformationen an PayPal übermittelt und den Kunden auf die PayPal-Zahlungswebseiten weiterleitet
- Erstellung von Layouts [1] zur Anzeige einer erfolgreichen Zahlung, welches den Verkäufer über die erfolgreiche Zahlung informiert, und [2] einer abgebrochenen bzw. nicht erfolgreich vorgenommenen Zahlung durch den Kunden
Im folgenden Beispiel wird davon ausgegangen, das auf einer Website ein spezielles Produkt, welches innerhalb des VIO.Matrix Desktop CMS als Element repräsentiert wird, direkt aus der Detaildarstellung dieses Elementes über PayPal gekauft werden kann. Für dieses Produkt-Element sind folgende Formular-Eingabekomponenten definiert:
- Produktname / Texteingabefeld: de_name
- Produktpreis (Brutto) / Preisfeld: _pe (Standardpreisfeld)
Die notwendige Rechnungs-/Lieferanschrift wird direkt im PayPal-Bestellformular auf der Website abgefragt. In der Praxis sollten Rechnungs- und Lieferdaten natürlich vor dem Abschicken der Daten an PayPal hinsichtlich ihrer Vollständig- und Sinnhaftigkeit geprüft werden.
Layout zum Setzen wichtiger Zahlungsparameter
In jedem PayPal-Bestellformular werden immer wieder fest hinterlegte PayPal-Basisdaten benötigt. Sinnvollerweise sollten diese Daten zentral im VIO.Matrix System erfasst werden, bspw. in einer gesonderten Formularlasche des Wurzelordners:
- URL für die PayPal-Zahlungsabwicklung / Texteingabefeld: pp_url ("https://www.paypal.com/cgi-bin/webscr")
- Händlerlogin (E-Mail-Adresse) / Texteingabefeld: pp_busines
- PayPal Währungscode / Texteingabefeld: pp_currenc ("EUR")
Für erste Tests der PayPal-Zahlung sollte eine vom PayPal Developer Central bereitgestellte Sandbox genutzt werden. Melden Sie sich dazu als PayPal-Developer über https://developer.paypal.com an. Nach Freischaltung der PayPal-Testumgebung (PayPal Sandbox), können Sie eigene Test-Accounts erschaffen, d.h. virtuelle Kunden-Accounts, welche die von Ihnen angebotenen Produkte virtuell kaufen können. In diesem Fall müssen die PayPal-URL und das -Login auf die entsprechenden Daten der PayPal-Testumgebung geändert werden.
Integration des PayPal-Zahlungsformulares
Das Formular zur Bezahlung eines spezifischen Artikels muss folgender Vorlage entsprechen:
Hinweis: PayPal erwartet Währungsangaben im englischen Format. Hier wird statt des in Deutschland üblichen Kommas ein Punkt als Trennzeichen verwendet. Daher wird in dem o.g. Code zunächst das Preisfeld über #REPLACE angepasst.
Die Definition der Zahlungsparameter (paypal_url, paypal_business und paypal_currency_code) muss vor dem Formular - entweder als Unterlayout oder direkt im Code - erfolgen!
Mit Klick auf den Button "Bezahlen" übermittelt das Formular folgende Daten an PayPal:
- business: Händler-/Verkäuferlogin zur Identifikation des PayPal-Geschäftskontos auf welches der Käufer den festgelegten Betrag überwiesen soll
- currency_code: Währungscode
- amount: vom Kunden zu zahlender Bruttobetrag (Ãœberweisungsbetrag)
- shipping: Versandkosten (müssen im Überweisungsbetrag bereits enthalten sein)
- invoice: Bestellnummer
- item_name: Bestelltext (Produktname, Name des Warenkorbes, etc.)
- return: URL, an welche der Kunde nach erfolgreicher Zahlung weitergeleitet werden soll
- cancel_return: URL, an welche der Kunde bei Zahlungsproblemen weitergeleitet werden soll
Weitere Übergabeparameter betreffen die Rechnungs- und Lieferadresse sowie die Versandart. Unter dem PayPal Developer Central befinden sich wichtige Dokumente, welche die genaue Funktionsweise und weitere mögliche Parameter beschreiben! Da die hier vorgestellte Integration lediglich Demonstrationscharakter für die Implementierung von PayPal-Zahlungen besitzt, sollten die von PayPal bereitgestellten Entwicklungsleitfäden zwingend genutzt werden!
Erfolgreiche Zahlung
Über die Übergabeparameter return wird eine URL übergeben, welche im Fall einer vom Kunden erfolgreich abgeschlossenen Zahlung angesprungen werden soll. Im Beispiel wird dazu das Unterlayout "paypal_ok" des Produkt-Elementelayouts genutzt. Das betreffende Layout sollte dem Kunden den erfolgreichen Abschluss der Bestellung und der erfolgten Zahlung wiedergeben und im Hintergrund für eine entsprechende Nachricht an den Verkäufer sorgen. Das kann entweder als Eintrag bzw. Aktualisierung der Bestellung in einer MySQL-Datenbank, einer E-Mail oder anderer Verfahren erfolgen. Der Eintrag in eine MySQL-Datenbank kann bspw. unter Nutzung des Layoutbausteins "MySQL" wie folgt erfolgen:
Zum automatischen Versenden einer E-Mail an den Verkäufer kann folgender Code-Baustein genutzt werden:
Behandlung nicht abgeschlossener Zahlungen
Über die Übergabeparameter cancel_return wird eine URL übergeben, welche im Fall einer vom Kunden nicht erfolgreich abgeschlossenen Zahlung angesprungen werden soll. Im Beispiel wird dazu das Unterlayout "paypal_fail" des Produkt-Elementelayouts genutzt. In dem Unterlayout sollte dem Käufer lediglich mitgeteilt werden, das die Zahlung über PayPal nicht erfolgreich war und aus diesem Grund die Bestellung nicht abgeschlossen werden konnte.
weiter