Nachprüfung Paket 2: Zahlungen und aktuelle Regeln (N03, N04, N07) #40

Merged
thiel merged 1 commit from audit2 into main 2026-10-08 20:51:43 +00:00
Owner

Paket 2 aus der Nachprüfung (docs/08): Transaktionen und aktuelle Regeln.

N03 – Antwortänderung und Zahlungsbetrag

  • editSubmission rechnet den Betrag nach jeder Änderung neu, mit den Preisen aus der Fassung der Antwort (repricePayment).
  • Offene Zahlung: Betrag und Positionen werden angepasst. Laufende Bezahlseiten werden beendet. Im Verlauf steht „Betrag angepasst (vorher …)“. Gab es vorher keine Zahlung (0 €), wird sie angelegt.
  • Bezahlt, in Bestätigung oder erstattet: Preisrelevante Änderungen werden mit 409 am betroffenen Feld abgelehnt (payment_locked). Andere Angaben bleiben änderbar.
  • Selbstbearbeitung: GET /manage/:token liefert lockedFields, das Formular zeigt den Hinweis vorher an. Der Client zeigt 409-Feldfehler jetzt am Feld statt als „Konflikt“; das betraf auch „ausgebucht“.
  • Engine: priceFieldIds(def) ermittelt Mengenfelder, Bedingungen, Betrags- und Bestellfelder sowie Felder in Ausdrücken der Betrags-Variable.

N04 – Erneuter Checkout

  • Neue Tabelle payment_attempts, Migration 0028.
  • Der Checkout läuft je Zahlung unter einem Advisory Lock. Eine offene Seite mit gleicher Zahlart und gleichem Betrag wird wiederverwendet; der Anbieter wird vorher gefragt, ob sie noch offen ist.
  • Ersetzte Versuche beendet ein neuer Job expire_attempt beim Anbieter (Stripe expire, Mollie DELETE).
  • Rückmeldungen werden über die Anbieter-Referenz zugeordnet, auch für alte Versuche. Ablauf- oder Fehlermeldungen ersetzter Seiten ändern die Zahlung nicht.
  • Zahlungen über eine alte Seite zählen. Abweichender Betrag oder zweite Zahlung erscheinen als Warnung in der Zahlung („Abweichender Betrag bezahlt“, „Doppelt bezahlt – bitte erstatten“).

N07 – Veraltete Kontingente

  • Änderung, Storno und Nachrücken verwenden die Regeln der aktuellen Veröffentlichung (rulesDefinition).
  • Geprüft werden die Angaben weiterhin gegen die Fassung der Antwort.
  • Neu: kein Wechsel auf ein bereits begonnenes Zeitfenster.

Doku

  • docs/08 Umsetzungsstand
  • docs/03
  • Handbuch und PDF

Tests

  • API:
    • Neuberechnung, Beenden alter Seiten, Sperre nach Zahlung
    • Parallel-Checkout, Wiederverwendung, Zahlartwechsel, späte und doppelte Zahlung
    • Sperre in der Selbstbearbeitung
    • Kontingente über Versionen
  • Engine: priceFieldIds

🤖 Generated with Claude Code

https://claude.ai/code/session_015z57Agxa5kZg6szB3zFN3x

Paket 2 aus der Nachprüfung (docs/08): Transaktionen und aktuelle Regeln. **N03 – Antwortänderung und Zahlungsbetrag** - `editSubmission` rechnet den Betrag nach jeder Änderung neu, mit den Preisen aus der Fassung der Antwort (`repricePayment`). - Offene Zahlung: Betrag und Positionen werden angepasst. Laufende Bezahlseiten werden beendet. Im Verlauf steht „Betrag angepasst (vorher …)“. Gab es vorher keine Zahlung (0 €), wird sie angelegt. - Bezahlt, in Bestätigung oder erstattet: Preisrelevante Änderungen werden mit 409 am betroffenen Feld abgelehnt (`payment_locked`). Andere Angaben bleiben änderbar. - Selbstbearbeitung: `GET /manage/:token` liefert `lockedFields`, das Formular zeigt den Hinweis vorher an. Der Client zeigt 409-Feldfehler jetzt am Feld statt als „Konflikt“; das betraf auch „ausgebucht“. - Engine: `priceFieldIds(def)` ermittelt Mengenfelder, Bedingungen, Betrags- und Bestellfelder sowie Felder in Ausdrücken der Betrags-Variable. **N04 – Erneuter Checkout** - Neue Tabelle `payment_attempts`, Migration 0028. - Der Checkout läuft je Zahlung unter einem Advisory Lock. Eine offene Seite mit gleicher Zahlart und gleichem Betrag wird wiederverwendet; der Anbieter wird vorher gefragt, ob sie noch offen ist. - Ersetzte Versuche beendet ein neuer Job `expire_attempt` beim Anbieter (Stripe `expire`, Mollie `DELETE`). - Rückmeldungen werden über die Anbieter-Referenz zugeordnet, auch für alte Versuche. Ablauf- oder Fehlermeldungen ersetzter Seiten ändern die Zahlung nicht. - Zahlungen über eine alte Seite zählen. Abweichender Betrag oder zweite Zahlung erscheinen als Warnung in der Zahlung („Abweichender Betrag bezahlt“, „Doppelt bezahlt – bitte erstatten“). **N07 – Veraltete Kontingente** - Änderung, Storno und Nachrücken verwenden die Regeln der aktuellen Veröffentlichung (`rulesDefinition`). - Geprüft werden die Angaben weiterhin gegen die Fassung der Antwort. - Neu: kein Wechsel auf ein bereits begonnenes Zeitfenster. **Doku** - docs/08 Umsetzungsstand - docs/03 - Handbuch und PDF **Tests** - API: - Neuberechnung, Beenden alter Seiten, Sperre nach Zahlung - Parallel-Checkout, Wiederverwendung, Zahlartwechsel, späte und doppelte Zahlung - Sperre in der Selbstbearbeitung - Kontingente über Versionen - Engine: `priceFieldIds` 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_015z57Agxa5kZg6szB3zFN3x
Nachprüfung Paket 2: Zahlungen und aktuelle Regeln (N03, N04, N07)
All checks were successful
check / verify (pull_request) Successful in 11m47s
40a01e6fb0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015z57Agxa5kZg6szB3zFN3x
thiel merged commit ec7da84f77 into main 2026-10-08 20:51:43 +00:00
thiel deleted branch audit2 2026-10-08 20:51:44 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
thiel/fobu!40
No description provided.