Tom Bartelt
85bc1d8c9a
feat(payments): Block Zahlungsvorgang im Bestell-Editor, Storno-Felder bei automatischem Storno
...
- Bestell-Editor rechts: Zahlungsvorgang (Status, Grund, Transaktions-ID,
Referenz, Betraege, Zeiten, Verlauf aus PG payment_log), anbieterneutral
ueber payment_transactions (Payments\Overview, Log::forOrder)
- markCancelled() fuellt Stornodatum, Stornostatus, Stornogrund und
Storno-Nachricht der Bestellung (nur leere Felder)
- neuer Stornogrund 'Zahlung beim Anbieter nicht abgeschlossen' (install.sql)
- reconcile: 404-Grund lesbar mit Alter des Vorgangs
2026-09-22 09:30:52 +02:00
Thomas Bartelt
f1aef6e575
fix(paypal_v2): Anzeigename 'PayPal' statt 'PayPal (v2)' -- stand in Kundenmeldungen
2026-09-18 07:53:18 +02:00
Thomas Bartelt
f65901060f
feat(payments): Express-Start mit Versand und Zahlartaufschlag, PATCH nur bei Abweichung
...
PayPal Live verlangt nach jeder Betragsaenderung eine zweite Freigabe (422
PAYER_ACTION_REQUIRED). Die Kasse rechnet den Endbetrag jetzt beim Express-Start vor
(erste aktive Versandart des Gebiets, Gast = Gebiet 1, eingeloggt = Land/Gruppe), der
Provider vergleicht vor dem PATCH mit dem Stand bei PayPal und laesst ihn bei Gleichstand
aus. Webhooks ordnen ohne custom_id ueber die PayPal-Order-ID zu.
2026-09-18 07:40:27 +02:00
Thomas Bartelt
f33533b411
feat(payments): Express-Kauf aus dem Warenkorb (PayPal v2): Start ohne Bestellung, Adresse von PayPal, Kasse vorbelegt, Capture ohne zweiten Besuch
2026-09-13 21:44:46 +02:00
Thomas Bartelt
4ce09ac1b6
fix(paypal_v2): Webhook-Signatur lokal pruefen (Zertifikat, CRC32, SHA256withRSA); API-Verify nur als Rueckfall
2026-09-13 21:32:17 +02:00
Thomas Bartelt
4248f8c148
fix(paypal_v2): Webhook-Signatur mit rohem Body pruefen, Ablehnungsgrund protokollieren
2026-09-13 21:19:36 +02:00
Thomas Bartelt
397fb5944a
feat(payments): Anbieter-Gerüst core/payments mit PayPal Orders v2
...
- ProviderInterface/AbstractProvider: Vorgang mit Uhrzeit+Session (payment_transactions),
Mail und Warenkorb erst nach Zahlung, idempotentes markPaid, Betragsabgleich,
shop_event + PG payment_log
- Secrets verschluesselt (libsodium) in MySQL, Schluessel ausserhalb Docroot
- Cashdesk: ?payment_return/?payment_cancel, Pending-Riegel, zahlung_erst_spaeter()
- Backend Zahlart-Editor: Einstellungen speichern (war ohne Empfaenger), Secret-Felder
- payment_webhook.php (Standalone), cli.php (init-key, secret, reconcile, status)
- PayPal-v2-Blaupause vom Juli entfernt
2026-09-13 19:51:52 +02:00