Webdesign-Bereich: Fundament, oeffentliche Seiten, Zugangsschutz, PayPal
Umsetzung des "Website Masterplan" (16 Seiten) unter /webdesign. Zugangsschutz mit EIGENER Schranke (server/webdesign-gate.js) statt gate.js: gate.js laesst seit dem oeffentlichen Start am 21.08.2026 jeden durch, weil die Pruefung auf SITE_PUBLIC_LAUNCH_AT als allererste Zeile steht. Haette man /webdesign dahintergehaengt, waere der ausdruecklich nicht-oeffentliche Bereich inklusive Preisen und spaeteren Kundendaten ab der ersten Sekunde fuer jeden lesbar gewesen. Eigenes Sitzungs-Cookie, bereich="webdesign" im Token, damit ein gueltiges Universe-Cookie hier NICHT gilt. 37/37 Tests. Sieben oeffentliche Seiten in fuenf Sprachen (de, de-CH mit echtem Dialekt, en, fr, pt). Preise, Zeitrahmen, Paketnamen und die 30-%-Regel stehen an genau EINER Stelle in wd-core.js -- der Masterplan verlangt "ueberall widerspruchsfrei", und vier Kopien laufen bei der ersten Preisaenderung auseinander. Als App installierbar auf Handy und PC. Der Service Worker speichert bewusst KEINE HTML-Seite zwischen: nach dem Abmelden wuerden sonst geschuetzte Seiten weiter ausgeliefert, ohne dass der Server je gefragt wird. 18/18 Tests. Handy-Abnahme ueber alle Seiten in fuenf Breiten (320-1440) und fuenf Sprachen: 40/40. Der Test fand 35 echte Fehler (Touch-Ziele unter 44px), behoben im Designsystem statt einzeln pro Seite. PayPal (Wunsch 22.08.2026 "sofort auf meinem paypal"): Orders API mit intent=CAPTURE, also sofortiger Einzug statt blosser Reservierung. Gebuehr und Nettobetrag getrennt gespeichert. Betraege durchgehend als Ganzzahl in Cent. Gefaelschte Webhooks werden abgewiesen. Fail closed solange Zugangsdaten fehlen. 28/28 Tests gegen einen nachgebauten PayPal-Server. Datenbank: 15 Tabellen mit Praefix wd_, fachlich vollstaendig vom Universe getrennt. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -45,3 +45,43 @@ PAYPAL_CLIENT_ID=
|
||||
PAYPAL_CLIENT_SECRET=
|
||||
PAYPAL_PLAN_ID=
|
||||
PAYPAL_WEBHOOK_ID=
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# PayPal fuer den Webdesign-Bereich (/webdesign), 22.08.2026
|
||||
# Wunsch: "die gelder sollen auch sofort auf meinem paypal landen" -- deshalb
|
||||
# wird mit intent=CAPTURE sofort eingezogen, nicht nur reserviert.
|
||||
#
|
||||
# Diese Werte kann NUR Filipe selbst erzeugen (PayPal-Business-Konto +
|
||||
# Developer-App haengen an seiner Identitaet und Bankverbindung).
|
||||
# Solange sie fehlen, ist die Zahlung sauber GESPERRT statt halb zu
|
||||
# funktionieren -- eine Zahlung, die "irgendwie durchgeht" ohne dass Geld
|
||||
# fliesst, waere der schlimmste denkbare Fehler.
|
||||
# NIEMALS echte Werte hier eintragen, nur in der echten .env!
|
||||
# ---------------------------------------------------------------------------
|
||||
# sandbox = Testmodus ohne echtes Geld (Voreinstellung), live = Echtbetrieb
|
||||
PAYPAL_ENV=sandbox
|
||||
|
||||
# Aus dem PayPal-Entwicklerbereich, App vom Typ "Merchant".
|
||||
# Achtung: Sandbox und Live haben UNTERSCHIEDLICHE Zugangsdaten.
|
||||
PAYPAL_CLIENT_ID=
|
||||
PAYPAL_CLIENT_SECRET=
|
||||
|
||||
# Webhook fuer den Webdesign-Bereich. Bewusst eine EIGENE Webhook-Kennung,
|
||||
# getrennt vom Supporter-Abo (PAYPAL_WEBHOOK_ID): sonst laesst sich der eine
|
||||
# Bereich nicht abschalten, ohne den anderen mit zu treffen.
|
||||
# Ziel-Adresse beim Anlegen in PayPal:
|
||||
# https://postfach.dogfather-universe.com/webdesign/paypal-webhook
|
||||
PAYPAL_WD_WEBHOOK_ID=
|
||||
|
||||
# Abo-Plaene fuer die laufende Betreuung (ab 49 EUR/Monat). Ein Plan je Paket,
|
||||
# weil PayPal den Betrag am Plan festmacht, nicht am einzelnen Abo.
|
||||
# Nur noetig, wenn Betreuungs-Abos ueber die Seite abgeschlossen werden sollen;
|
||||
# Anzahlung und Restbetrag funktionieren auch ohne diese Werte.
|
||||
PAYPAL_WD_PLAN_BASIS=
|
||||
PAYPAL_WD_PLAN_PLUS=
|
||||
PAYPAL_WD_PLAN_PREMIUM=
|
||||
|
||||
# Zusatz fuer die IP-Hashes im Webdesign-Bereich. Beliebige lange
|
||||
# Zufallszeichenkette. Wird sie geaendert, passen alte Hashes nicht mehr --
|
||||
# das ist unkritisch, sie dienen nur der Missbrauchserkennung.
|
||||
WD_IP_SALT=
|
||||
|
||||
Reference in New Issue
Block a user