Commit Graph
2 Commits
Author SHA1 Message Date
clemensandClaude Opus 5 9f9e4c7cd0 PayPal-Mailabruf: Parken statt Buchen, echter Probelauf, Regressionstest
Die Mail-Verarbeitung ignorierte bisher die PayPal-Schalter: eingehende
Zahlungen wurden auch dann automatisch gutgeschrieben, wenn der Betreiber
die Funktion gesperrt oder der Mandant PayPal abgeschaltet hatte. Jetzt
wird die Zahlung in dem Fall geparkt - gespeichert, aber ohne Buchung.
Wegwerfen liesse eine echte Zahlung unbemerkt verschwinden, buchen
widersprache der Abschaltung; die Zuordnungsseite bleibt fuer offene
Zahlungen ja erreichbar.

--dry-run war bisher irrefuehrend: es liess die Verarbeitung samt Buchung
laufen und uebersprang nur das Setzen des Gelesen-Flags - ausgerechnet beim
ersten Testlauf haette es also echtes Geld verbucht. Der Probelauf nutzt
jetzt paypal_preview(), das nichts schreibt und meldet, was passieren
wuerde (would_book/would_queue/would_park/duplicate).

scripts/check-paypal-inbox-flow.php deckt die Kette ohne IMAP ab:
Absenderpruefung, Token, Parser, Zuordnung, Netto-Buchung, Dedup, beide
Park-Faelle und die Schreibfreiheit der Vorschau.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 20:43:58 +02:00
clemensandClaude Opus 5 52b1726698 Deployment-Vorbereitung: Ausschlussliste, .htaccess-Haertung, Doku
Vor dem ersten FTP-Deploy nach /testumgebung.kaffeeliste.de/httpdocs/
fehlte jede Absicherung des Upload-Umfangs: sync_config.jsonc hatte eine
leere excludePath-Liste, es waeren also .git (komplett herunterladbar),
.env.local (Dev-DB-Zugangsdaten) und sync_config.jsonc selbst (enthaelt
das FTP-Passwort im Klartext) mit ausgeliefert worden. Von diesen dreien
war keines von den bestehenden .htaccess-Regeln erfasst.

- sync_config.jsonc: excludePath gefuellt; scripts/ und database/ bleiben
  bewusst im Deploy, weil die Plesk-Scheduled-Tasks sie vom Webspace aus
  ausfuehren.
- .htaccess: sync_config.jsonc und Dotfile-Ordner gesperrt, Vendor-
  Verzeichnisse (TCPDF/PHPMailer/DataTables) fuer direkte URL-Aufrufe
  gesperrt, HTTPS-Redirect ergaenzt (ohne ihn bekam ein http-Besucher
  eine Session ohne secure-Flag).
- PHPMailer/ entfernt: enthielt nur noch LICENSE, composer.json und ein
  per URL erreichbares get_oauth_token.php, kein Quellcode. Der Versand
  laeuft seit M6 ueber saas_send_mail().
- docs/deployment.md: Umgebungen, Deploy-Ablauf, Migrationen und
  Cron-Jobs ueber Plesk Scheduled Tasks (kein SSH verfuegbar),
  Mail-/DNS-, Stripe- und PayPal-Voraussetzungen, Go-Live-Checkliste.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 15:45:01 +02:00