Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paypal EC as progressive enhancement #143

Open
cmb69 opened this issue Jul 27, 2017 · 10 comments
Open

Paypal EC as progressive enhancement #143

cmb69 opened this issue Jul 27, 2017 · 10 comments
Milestone

Comments

@cmb69
Copy link
Member

cmb69 commented Jul 27, 2017

Ich habe nun im paypal-ec Branch einen ersten Entwurf für ein alternatives Paypal EC Payment-Modul eingestellt.

Um es benutzen zu können, muss man sich zunächst einmal eine AppID holen; wie das geht ist hier beschrieben. Diese wird dann in der Konfiguration unter Sandbox id eingetragen. Und da zum Testen (bisher) nur die Sandbox-Umgebung unterstützt wird, müsst ihr auch noch Test-Konten einrichten, wie hier beschrieben.

Tja, und dann kann eigentlich schon munter drauf los getestet werden. Zu beachten ist, dass dieses Zahlungsmodul JavaScript benötigt (und zwar einen einigermaßen modernen Browser).

Nun bin ich mal gespannt, was ihr davon haltet!

@frase-git
Copy link
Collaborator

Jetzt ärgere ich mich aber.
Ich kann nämlich nicht mittesten.
Hier ist @XHalbert gefragt.

@cmb69
Copy link
Member Author

cmb69 commented Jul 27, 2017

Jetzt ärgere ich mich aber.
Ich kann nämlich nicht mittesten.

Wieso? Ich habe meinen Paypal-Account bisher auch nur für Testzwecke.

@XHalbert
Copy link
Collaborator

XHalbert commented Jul 28, 2017

müsst ihr auch noch Test-Konten einrichten, wie hier.

der Link ist error 404

Weiß aber nicht ob ich alles in der sandbox richtig habe...
Tja leider teste ich jetzt schon seit Stunden - leider ist viel Murks bei rausgekommen. Der Master enthält das wohl noch nicht. Jetzt paypal-EC-branch genommen.
Wow, sieht ja schon mal gut aus. Checkout bei paypal wohl o.k., aber zurückleiten zum Shop bringt: "...Shop&xhsCheckout=finalConfirmation"
neu-5
und ich erhalte keine Emails, kann aber in temp_orders auch nichts finden...
(hab erstmal genug für heute...)

@cmb69
Copy link
Member Author

cmb69 commented Jul 28, 2017

der Link ist error 404

Habe ich nun korrigiert.

Checkout bei paypal wohl o.k., aber zurückleiten zum Shop bringt: "...Shop&xhsCheckout=finalConfirmation"

Hm, das verstehe ich nicht. Bei der Paypal-EC-Variante wird die Seite nicht verlassen, sondern die gesamte Paypal-Bezahlung erfolgt in einen Popup-Fenster. Sobald die Bezahlung erfolgt ist, müssten automatisch die E-Mails verschick, und die Dankeschön-Seite aufgerufen werden.

kann aber in temp_orders auch nichts finden...

Das würde bei der EC-Variante gar nicht mehr benötigt; keine temporären Dateien, kein IPN. (Fast) Alles läuft per JavaScript.

@XHalbert
Copy link
Collaborator

Hat jetzt einwandfrei geklappt (hatte falsche ID), jetzt steht in der Adresszeile zum Schluss: ".../?Shop&xhsCheckout=thankYou" - Dankeschönseite und Emails o.k.

Hab versucht, mit normalem IPN-Paypal einen echten Kauf zu machen - das geht jetzt nicht mehr (Dankeschönseite ja, aber keine Emails). Ist das normal?

@cmb69
Copy link
Member Author

cmb69 commented Jul 28, 2017

Hat jetzt einwandfrei geklappt (hatte falsche ID), jetzt steht in der Adresszeile zum Schluss: ".../?Shop&xhsCheckout=thankYou" - Dankeschönseite und Emails o.k.

Prima. Genügen die minimalen Infos, die bei der Paypal-EC-Variante an Paypal übergeben werden (also eigentlich nur der Rechnungsbetrag) für Käufer und Verkäufer? Oder sind die einzelnen Artikeldaten wichtig? Oder sollte es eine zuordenbare "Rechnungsnummer" geben? Für den Käufer genügt für den eigentlichen Zahlvorgang wohl die Rechnungssumme, aber in der Mail von Paypal ist das vielleicht zu wenig. Und der Verkäufer könnte vielleicht auch durcheinander kommen, wenn er von Paypal über eine Zahlung informiert wird, in der nur der Rechnungsbetrag und ein Kunde genannt wird, dessen E-Mail-Adresse nicht mal unbedingt derjenigen entspricht, die er zuvor im Kundendatenformular eingetragen hat.

Es ist nämlich so, dass sowohl bei Paypal-EC wie auch bei der alten Paypalvariante ein User den Verkaufsvorgang abschließen kann, ohne wirklich bezahlt zu haben. Der Verkäufer muss also immer prüfen, ob die Zahlung auch tatsächlich erfolgt ist. Das sollte wohl ausdrücklich dokumentiert werden.

Hab versucht, mit normalem IPN-Paypal einen echten Kauf zu machen - das geht jetzt nicht mehr (Dankeschönseite ja, aber keine Emails). Ist das normal?

Die alte Paypal-Bezahlvariante sollte eigentlich wie zuvor funktionieren (aber aufpassen: die ID für Paypal-EC ist die App-ID; die ID für das klassische Paypal ist die E-Mail-Adresse).

Allerdings sollte die alte Paypal-Bezahlvariante wohl besser ganz entfallen. Abgesehen von den Problemen die damit auftreten, ist diese Variante von Paypal bereits missbilligt worden (und steht vielleicht irgendwann nicht mehr zur Verfügung), und ich konnte keine vollständige Dokumentation dazu finden, so dass ich auch nicht wirklich nachbessern kann.

@XHalbert
Copy link
Collaborator

sind die einzelnen Artikeldaten wichtig? Oder sollte es eine zuordenbare "Rechnungsnummer" geben?

Ja Artikeldaten wichtig! Unbedingt!
Da es öfter vorkam, dass der Shop keine Email verschickt hat, waren die Artikeldaten in der paypal-Email die einzige Möglichkeit, den Auftrag trotzdem auszuführen.

Mit Rechnungsnummer wüßte ich im Moment nichts anzufangen.

Der Verkäufer muss also immer prüfen, ob die Zahlung auch tatsächlich erfolgt ist.

paypal mailt ja bei erfolgreichem Abschluß:
"Sie haben eine Zahlung über €0,01 EUR von XY erhalten
Sie können Ihre Ware jetzt verschicken. Alle Details zu dieser Zahlung..."

Anderenfalls kommt normalerweise von paypal eine Mail wie:
"... die Transaktion ist noch nicht abgeschlossen. Bitte warten Sie noch ..."

Und der Verkäufer könnte vielleicht auch durcheinander kommen, wenn er von Paypal über eine Zahlung informiert wird, in der nur der Rechnungsbetrag und ein Kunde genannt wird, dessen E-Mail-Adresse nicht mal unbedingt derjenigen entspricht, die er zuvor im Kundendatenformular eingetragen hat.

Stimmt. Und umgekehrt auch. Der Kunde erhält "Sie haben eine Zahlung an [email protected] gesendet", dabei lautet der Shop vielleicht Example.com

Die alte Paypal-Bezahlvariante sollte eigentlich wie zuvor funktionieren

tut sie aber nicht - nur weiß ich nicht seit wann. Ob erst seit paypal-EC dazukam oder vorher.

diese Variante von Paypal bereits missbilligt

soll mir recht sein
Nur: wie geht die "neue" wenn der Kunde kein Java hat?
Habe mit Chrom getestet - Javascript blockiert: kein Kauf möglich - mit Java klappt einwandfrei

@cmb69
Copy link
Member Author

cmb69 commented Jul 28, 2017

Ja Artikeldaten wichtig! Unbedingt!

Okay.

paypal mailt ja bei erfolgreichem Abschluß:
[…]
Anderenfalls kommt normalerweise von paypal eine Mail wie:
[…]

Was ich meine ist, dass ein User mit Tricks komplett die Paypal-Zahlung umgehen kann, und trotzdem den Verkauf zum Abschluss bringt, inklusive der vom Shop versendeten Mails. Ich halte das nicht für ein besonderes Problem; der Verkäufer muss halt wie sonst auch, auch bei Paypal-Verkäufen den Zahlungseingang überprüfen.

Nur: wie geht die "neue" wenn der Kunde kein Java hat?

Dann ist nicht. Paypal-EC benötigt JavaScript und einen einigermaßen aktuellen Browser.

Allerdings habe ich nun doch noch die Doku zur "alten" Paypal-Variante gefunden, und diese ist wohl doch nicht missbilligt. Dort wird auch eine alternative zu IPN namens PDT erwähnt, und diese scheint das Verzögerungsproblem von IPN nicht zu haben:

With PDT, your site is notified immediately when a customer completes payment. With IPN, however, there is a material lag between the time a customer completes payment and the time your site receives notification of this event.

So, use PDT if your site includes a feature that requires immediate payment notification.

Ich habe mich bereits für den vierjährigen Paypal-Programmierer-Studiengang angemeldet – melde mich wieder, wenn ich den Abschluss habe. ;)

Okay. Spaß beiseite. Da diese PDT-Variante die Probleme mit der jetzigen Paypal-Variante lösen könnte, und vermutlich auch sicherstellen lässt, dass ein Kunde nur kaufen kann, wenn er tatsächlich bezahlt, konzentriere ich mich dann doch auf das klassische Paypal-Bezahlmodul. Wenn alles klappt, dann können wir die EC-Variante eigentlich ignorieren.

@XHalbert
Copy link
Collaborator

konzentriere ich mich dann doch auf das klassische Paypal-Bezahlmodul

Applaus und Respekt!

Wenn alles klappt, dann können wir die EC-Variante eigentlich ignorieren.

Mich wundert nur:
Wenn ich bei ebax was kaufe kommt bei mir immer ein checkout, was wie deine EC-Variante aussieht. Ich kann mir aber nicht vorstellen, dass Kunden ohne Java vom Kauf ausgeschlossen werden sollten bei einem so großen Verein. Kann es sein, dass ohne Java alternativ dann das klassische eingesetzt wird?

@cmb69
Copy link
Member Author

cmb69 commented Jul 28, 2017

Wenn ich bei ebax was kaufe kommt bei mir immer ein checkout, was wie deine EC-Variante aussieht. Ich kann mir aber nicht vorstellen, dass Kunden ohne Java vom Kauf ausgeschlossen werden sollten bei einem so großen Verein. Kann es sein, dass ohne Java alternativ dann das klassische eingesetzt wird?

Möglich ist das durchaus. Wäre vielleicht auch ein nettes progressive Enhancement für den Shop – würde ich aber aus Zeitgründen dann auf 2.0 verschieben.

Ansonsten: deaktiviere mal JavaScript und rufe https://www.facebook.com/ auf. So ist das heutzutage leider …

@cmb69 cmb69 changed the title Paypal EC payment module Paypal EC as progressive enhancement Jul 30, 2017
@cmb69 cmb69 added this to the 2.0 milestone Jul 30, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants