Tach!
Du verstehst das Problem nicht: Zwischen Reservierung und Bezahlung liegt eine programmierte Karenzzeit die einen Deadlock verhindern soll.
Zwischen Reservierung und Bezahlung liegt die verbindliche Bestellung. Und zu dieser werden die Plätze nicht nur reserviert sondern verbindlich gebucht.
Kunde sucht aus und reserviert. Kunde geht zur Kasse und schließt den Vorgang ab, die Sitze werden gebucht. Wenn Kunde hingegen den Vorgang nicht abschließt, wird die Reservierung nach einer Zeit im Minuten- oder Stunden-Bereich aufgehoben. Gebuchte Plätze haben keine automatische Freigabe, das lohnt bei dem kleinen Theater vermutlich auch nicht und kann bei Bedarf per Hand erfolgen.
Damit jedoch ist der gesamte Prozess nicht mehr atomar. Somit kann es eben doch passieren, dass Geld fließt für Plätze die mittlerweile wieder freigegeben wurden.
Nicht erfolgte Zahlungen sind (hoffentlich) ein Sonderfall. Der Status "reserviert" löst sich von selbst, wenn keine Bestellung erfolgt. Der Status "gebucht" darf sich nicht lösen, ohne dass eine Klausel im Vertrag die Bindung bei nicht erfolgter Zahlung bis zu einer festgelegten Frist aufhebt.
dedlfix.