Checkout - Serverseitige Validierung und Paypal

Hallo Community!

beim Abschließen einer Bestellung gibt es, vereinfacht gesagt zwei Schritte - Checkout-Confirm und Checkout-Finish

Beim Checkout-Confirm kann der Kunde noch seine letzten Angaben machen, z.B. von diversen Plugins, die Ihre Daten hier noch abfagen (Abholort, Lieferdatum, etc). Wenn der Kunde hier bestätigt (Button “Zahlungspflichtig Bestellen”) dann geht der Request mit allen Feld-Parametern an Checkout-Finish. Und im Checkout-Finish kann man ja Serverseitig prüfen ob der Kunden nicht irgendwelche wiedersprüchliche Angaben gemacht hat, und falls doch, kann man ein “redirect” zurück nach Checkout-Confirm mit einer entsprechenden Fehlermeldung machen.

So macht man doch die serverseitige Validierung, oder?

Dieses Konzept funktioniert gar nicht mit der aktuellen implementierung des PayPal-Plugins. Hier geht der Request nicht mehr zu Checkout-Finish, sondern Paypal öffnet sich direkt und dann wird sofort bezahlt. Die Serverseitige Validierung wird hier komplet übergangen. Oder habe ich hier einen Denkfehler?

Ich weiß, dass Shopware (auch) clientseitig validiert. Aber man darf sich doch nie auf Javascript verlassen und der Fallback muss doch immer die serverseitige Valiedierung sein.

Gibt es eine Möglichkeit das Paypal-Plugin so zu konfigurieren, dass der Kunde erst beim Checkout-Finish zu bezahlen aufgeforder wird?

Gibt es eine bessere Möglichkeit die Bestellung serverseitig zu validieren?

Ich wäre für alle Ideen/Ratschläge sehr dankbar!

Gruß, Nikolaj

Liebe Shopware-Entwickler,

das Paypal-Plugin ist ja von Shopware, dann hattet Ihr sicher eine Vorstellung wie die serverseitige Validierung richtig zu implementieren ist.

Ich möchte auch keinen feritgen Code, eine kleine Erklärung, ein Hinweis in die richtige Richtung würde bestimmt reichen.

Danke im Voraus, Nikolaj

Seltsam, dass so schwierig ist an Informationen heranzukommen für so etwas Grundsätzliches, wie serverseige Validierung…

Ist das Schweigen hier so zu interpretieren, dass man es mit der aktuellen Implementierung des PayPal-Plugins gar nicht kann?

Aus welchen konkreten Gründen bist Du da am forschen?

Wir haben eine Reihe von Plugins, die beim Checkout-Confirm vom Kunden Angaben einholen, die unbediengt validiert werden müssen, da sie unvollständig, nicht korrekt, widiersprüchlich… etc, sein können.

Was haben Eure Plugins mit PayPal zu tun?

gar nichts. Hast Du meine ersten Eintrag gelesen? PayPal übergeht Checkout-Finish und zwingt den Benutzer zu bezahlen, noch bevor die Bestellung abgeschlossen (finish-Action) wird. So kann es passieren, dass der Kunde falsche Angaben gemacht hat und bereits bezahlt hat noch bevor man eine Chance hatte seine Angaben zu validieren. Deshalb frage ich:

Wie kann ich den eine solche Bestellung auf ihre Richtigkeit überprüfen (AKA serverseitige Validierung)?

Was ist richtig?

Hallo,

das PayPal - Plugin ist doch frei zugänglich, wenn du Informationen brauchst, kannst du sie dir doch suchen: https://github.com/shopwareLabs/SwagPaymentPayPalUnified . Es wird dir hier niemand ein ganzes Plugin erklären, vor allem wenn es eine Auftragsarbeit ist / war. PayPal wollte es so umgesetzt haben und deshalb ist es so umgesetzt worden.

Sonst mach ein Supportticket beim Plugin selbst auf, das Forum ist für solch ein spezielle Frage an einen Pluginhersteller sicher die falsche Stelle.

Andernfalls mach doch einfach die Validierung bei oder vor der confirm - Seite, dann dürfte es doch genauso passen.

Grüße

Sebastian

 

1 „Gefällt mir“

Mike, ich weiß nicht was deine Frage soll.

Sebastian, danke für deine Antwort!

Ich will doch kein ganzes Plugin erklärt bekommen. Ich will doch nur einen winzigen Aspekt wissen.

Paypal weiß doch nicht wie Shopware funktioniert. Es sind doch die Shopware-Entwickler/Projektleiter, die sich über serverseitige Validierung Gedanken machen müssen. Das sind doch Basics einer jeden Webapplikation. 

Ich kann keine Validierung vor der Confirm-Seite machen, weil es keine Seite vor Confirm gibt. Wenn der Benutzer bereits regietriert ist kommt er direkt auf die Confirm-Seite wenn er auf “zur Kasse” klickt.

Danke und Gruß, Nikolaj 

Hallo,

du kannst jederzeit, auch bei Bestandskunden, eine Validierung beim Aufruf des Confirm - Controllers oder vor der Confirmseite machen, so machen es beispielsweise Altersprüfungsplugins auch, da kannst du auch entsprechende Exceptions werfen, sodass man nur weiter kommt, wenn die eigenen Bedingungen erfüllt sind (und das auch sowohl für Neu- als auch Bestandskunden). Und dort ist im Prinzip die Validierung auch richtig aufgehoben (oder per JavaScript).

Und hier wirst du auch ganz sich weder den Projektleiter oder Entwickler des PayPal - Plugins finden oder erreichen - eher über ein Supportticket beim Plugin.

Und wenn PayPal keine serverseitige Umsetzung gewünscht hat, dann wird sie auch nicht umgesetzt  - der Kunde ist am Ende König und bezahlt es ja am Ende auch.

Grüße

Sebastian

1 „Gefällt mir“

@ruppert schrieb:

Mike, ich weiß nicht was deine Frage soll.

Ganz ehrlich, ich weiß nicht was der ganze Thread soll. Du möchtest cleverer sein als die Shopware und PayPal-Entwickler. Ein Aspekt: Die Daten die von PayPal kommen, werden von PayPal validiert. Du darfst sie nicht mal verändern.

Hallo Sebastian,

danke für deine Antwort!

Ich werde mir die Altersprüfungsplugins genauer anschauen.

Und hier wirst du auch ganz sich weder den Projektleiter oder Entwickler des PayPal - Plugins finden oder erreichen - eher über ein Supportticket beim Plugin.

Ich hatte gehofft, dass hier auch Shopware-Mitarbeiter posten…

Und wenn PayPal keine serverseitige Umsetzung gewünscht hat, dann wird sie auch nicht umgesetzt  - der Kunde ist am Ende König und bezahlt es ja am Ende auch.

Ich habe doch nicht das Problem, mit der Art und Weise wie Paypal seine Daten validiert. Mein Problem ist, dass die normale serverseitige Validierung, durch das Plugin nicht mehr gemacht werden kann, und deshalb frage ich nach einer alternativen Möglichkeit.

Gruß, Nikolaj

Meine Güte, Mike. Muss man hier so ein Drama machen? Wenn du mir bei meinem Problem nicht helfen kannst/möchtest, wozu dann das Posten? Ich habe auch nur meine Anforderungen die ich umsetzen muss.

Die Daten, die von Paypal kommen interessierenmich einen Dreck. Ich kriege MEINE Daten (die Daten von meinen, selbstgeschriebenen Plugins) nicht validiert und ich frage hier nur WIE es denn sonst geht, wenn nicht über den Standartweg den ich oben beschrieben habe. 

Wenn der Kunde z.B. Expressversand auswählt und gleichzeitig möchte er die Ware in einr, von ihm ausgewählten Filiale abholen, dann ist es eine widersprüchliche Angabe von Kunden, die ich abfangen möchte. Früher konnte ich beim Checkout-Finish die Daten prüfen und bei “falschen” Angaben einen Redirect zurück zu Confirm machen.

Das Paypal-Plugin hat diese Möglichkeit weggenommen. Ich wollte hier nur fragen wie es sonst noch möglich ist, mehr nicht! 

@ruppert schrieb:

Meine Güte, Mike. Muss man hier so ein Drama machen? Wenn du mir bei meinem Problem nicht helfen kannst/möchtest, wozu dann das Posten? Ich habe auch nur meine Anforderungen die ich umsetzen muss.

Die Daten, die von Paypal kommen interessierenmich einen Dreck. Ich kriege MEINE Daten (die Daten von meinen, selbstgeschriebenen Plugins) nicht validiert und ich frage hier nur WIE es denn sonst geht, wenn nicht über den Standartweg den ich oben beschrieben habe. 

Wenn der Kunde z.B. Expressversand auswählt und gleichzeitig möchte er die Ware in einr, von ihm ausgewählten Filiale abholen, dann ist es eine widersprüchliche Angabe von Kunden, die ich abfangen möchte. Früher konnte ich beim Checkout-Finish die Daten prüfen und bei „falschen“ Angaben einen Redirect zurück zu Confirm machen.

Das Paypal-Plugin hat diese Möglichkeit weggenommen. Ich wollte hier nur fragen wie es sonst noch möglich ist, mehr nicht! 

Ich versuche bloß Dein Problem zu verstehen. An Deiner Stelle wäre ich etwas dankbarer, der Thread war 14 Tage alt.