Zum Hauptinhalt springen
Ein Gastbesteller hat kein Kundenkonto. Wenn er seine Bestellung nachsehen, eine Retoure anmelden oder einen Retourenaufkleber erzeugen will, gibt es für ihn keinen Login, hinter dem seine Daten lägen. Diese Funktion schafft dafür einen eigenen Weg: Der Käufer weist sich mit zwei Nummern aus seiner Bestellung aus, beispielsweise Rechnungs- und Kundennummer, und der Shop holt die Bestelldaten aus der Warenwirtschaft. Ein Google reCAPTCHA hält dabei automatisierte Zugriffe fern. Retouren Portal
Diese Funktion wurde für die Retouren-Plattform entwickelt, und zwar speziell für das Warenwirtschaftssystem VS/4 der D&G im Zusammenspiel mit der WWS-Infodatenschnittstelle. Die Prüfsummen der beiden Nummern sind fest auf dieses System zugeschnitten. Wenn Sie eine andere Warenwirtschaft einsetzen, sprechen Sie Ihren Ansprechpartner bei der WEBSALE AG an, bevor Sie mit der Einrichtung beginnen.
Wegweiser: WWS-Infodatenschnittstelle verwenden

Wie die Absicherung funktioniert

Der Zugang steht auf drei Prüfungen, die nacheinander bestehen werden müssen.
Zwei Nummern sind kein Passwort. Wer die Rechnung eines anderen Käufers in der Hand hält, kommt damit an dessen Bestelldaten. Das reCAPTCHA verhindert das massenhafte Durchprobieren, nicht den gezielten Zugriff durch eine Person. Geben Sie auf dieser Seite deshalb nur aus, was der Käufer für Retoure und Nachverfolgung wirklich braucht, und keine Daten darüber hinaus.

Schritt 1: reCAPTCHA v3 einrichten

Registrieren Sie Ihre Domain bei Google reCAPTCHA v3 und tragen Sie die beiden Schlüssel in die shop.config ein.
reCAPTCHA v3 zeigt dem Besucher keine Aufgabe, sondern liefert einen Wert zwischen 0 und 1. Nahe 0 bedeutet wahrscheinlich ein Bot, nahe 1 wahrscheinlich ein Mensch. Über MinimumScoreToPass stellen Sie ein, wo Sie die Grenze ziehen. Höhere Werte sperren mehr Bots aus, aber auch mehr echte Käufer.
Der Shop lässt einen Besucher durch, wenn sein Wert größer als die Grenze ist. Bei MinimumScoreToPass = 0.5 scheitert ein Wert von genau 0.5. Wenn Sie die Grenze feinjustieren, rechnen Sie mit dieser Kante.Der SecretKey gehört ausschließlich in die Shopkonfiguration. Es gibt bewusst kein Tag, mit dem er sich im Template ausgeben ließe. Setzen Sie ihn nirgends in eine Seite.
Referenz: Konfiguration ReCaptchaV3

Schritt 2: Das Formular anlegen

Legen Sie ein neues Template in Ihrem Templateverzeichnis an, beispielsweise tpl_retoure.htm. Es enthält das Eingabeformular und ruft sich selbst wieder auf. Die beiden Nummern werden als One-Time-Parameter übergeben, hier otporder und otpnumber. Das versteckte Feld ws_recaptchav3_token nimmt das Token auf, das das reCAPTCHA-Skript später einträgt.
Referenz: FORM-Template()

Schritt 3: Das reCAPTCHA-Skript einbinden

Das Skript holt sich von Google ein Token und schreibt es in das versteckte Feld. Es gehört in den body des Templates.
Der Wert bei action ist ein frei gewählter Name für diesen Vorgang. Er taucht in Ihrer reCAPTCHA-Auswertung bei Google auf. Wählen Sie etwas Sprechendes wie retoure, dann können Sie später erkennen, von welcher Seite die Anfragen kamen.
Das Beispiel setzt das Token mit jQuery. Ohne eingebundene jQuery-Bibliothek bleibt das Feld leer, das reCAPTCHA schlägt fehl, und der Käufer bekommt seine Bestellung nicht zu sehen. Binden Sie entweder die WEBSALE JavaScript-Bibliothek ein oder ersetzen Sie die Zeile durch reines JavaScript.
Referenz: RECAPTCHAV3-APIUrl · RECAPTCHAV3-SiteKey

Schritt 4: Prüfen und die Bestelldaten holen

Dieser Block ist das Herzstück. Er arbeitet von außen nach innen: erst die Eingaben, dann die Prüfsummen, dann das reCAPTCHA, und erst ganz innen der Aufruf der Warenwirtschaft.
An die Rechnungsnummer wird 0000 angehängt. Das ist ein fester Bestandteil der Rechnungsnummer bei D&G und kein Platzhalter. Lassen Sie es stehen.verifyChecksum kennt genau zwei Prüfarten: DuG-ReNr für die Rechnungsnummer und DuG-AdrNr für die Kundennummer. Jeder andere Wert lässt die Prüfung stillschweigend scheitern, ohne Fehlermeldung. Achten Sie auch auf die Groß- und Kleinschreibung der beiden Namen und darauf, sie nicht zu vertauschen.
Referenz: WS-OTPX · DC-FPX_set() · DC-FPX_verifyChecksum() · RECAPTCHAV3-PassedAlways · DC-WSTagParameter-prepare · DC-WSTagParameter-use · WS-OnlineERPGuestLink() · WS-ExternInclude()

Einmal pro Sitzung oder bei jedem Aufruf prüfen

Für die reCAPTCHA-Prüfung stehen zwei Tags bereit. Sie unterscheiden sich darin, wie oft geprüft wird.
PassedOnce ist bequemer für den Käufer, der seine Bestellung mehrfach aufruft oder zwischen Übersicht und Retourenschein wechselt. PassedAlways ist die strengere Wahl. Bei einer Seite, die fremde Bestelldaten zeigt, spricht einiges für die strengere. Referenz: RECAPTCHAV3-PassedOnce

Schritt 5: Die Prüfung sichtbar machen (optional)

Für die Fehlersuche lässt sich ausgeben, wie die reCAPTCHA-Prüfung ausgegangen ist und was Google geantwortet hat.
Beide Tags beziehen sich auf die letzte Prüfung. Sie liefern erst dann etwas, wenn RECAPTCHAV3-PassedAlways oder RECAPTCHAV3-PassedOnce im Template bereits durchlaufen wurde. Setzen Sie diesen Block deshalb hinter den Prüfblock aus Schritt 4, nicht davor.ST-TestMode sorgt dafür, dass die Ausgabe nur im Testmodus erscheint. Lassen Sie diese Klammerung stehen. Die Antwort von Google enthält Angaben, die auf einer öffentlich erreichbaren Seite nichts zu suchen haben.
Referenz: ST-TestMode · RECAPTCHAV3-LastResponseCode · RECAPTCHAV3-LastPlainResponse

Verwandte Themen