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>
This commit is contained in:
@@ -186,3 +186,21 @@ weiterhin ausschließlich seinen eigenen Mandanten. Ein zweiter,
|
||||
eingeloggter, aber nicht privilegierter Testnutzer bekommt auf
|
||||
`backoffice.php` korrekt `403 Forbidden`. Alle Testdaten anschließend
|
||||
vollständig entfernt.
|
||||
|
||||
## Eingehende PayPal-Mails bei abgeschalteter Funktion
|
||||
|
||||
Stand: 2026-08-21. Die Mail-Verarbeitung
|
||||
(`scripts/fetch-paypal-payments.php` → `paypal_reconcile()`) prüft
|
||||
dieselben zwei Ebenen wie das Menü. Ist PayPal für den Mandanten
|
||||
abgeschaltet — vom Betreiber (`paypal_inbox`) oder vom Mandanten selbst
|
||||
(`paypal_enabled`) —, wird eine eingehende Zahlung **geparkt**: sie wird
|
||||
gespeichert (Status `unmatched`, Ergebnis `parked`), aber nicht
|
||||
automatisch gutgeschrieben.
|
||||
|
||||
- **Warum nicht wegwerfen:** eine echte Zahlung würde unbemerkt
|
||||
verschwinden; das Geld ist ja trotzdem angekommen.
|
||||
- **Warum nicht buchen:** es soll gerade nichts über PayPal laufen — die
|
||||
Entscheidung gehört dem Mandanten.
|
||||
- Die Zuordnungsseite bleibt für offene Zahlungen erreichbar (siehe
|
||||
`paypal_inbox_accessible()`), der Mandant sieht die geparkte Zahlung
|
||||
also und kann sie zuordnen oder abhaken.
|
||||
|
||||
Reference in New Issue
Block a user