User-Panel-Restarbeiten: PM-Guard, Profil-Rework, USt-ID-Prüfung, Buchungspflicht-Adresse
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
036a53499f
commit
afcca34f91
25 changed files with 905 additions and 140 deletions
|
|
@ -69,6 +69,13 @@ Stub-Spalte `users.press_release_quota` ist entfernt.
|
|||
| `me.checkout.single-pm` (`/admin/me/checkout/einzel-pm`) | Stripe-Checkout Einzel-PM (legt `single_purchases`-Eintrag `pending` an; Webhook setzt `paid`) |
|
||||
| `me.checkout.billing-portal` (`/admin/me/checkout/abo-verwalten`) | Stripe Billing Portal (Zahlungsmethode, Rechnungen, Kündigung) |
|
||||
|
||||
**Buchungs-Voraussetzung** (12.06.2026): Jeder Checkout erfordert eine
|
||||
vollständige Rechnungsadresse (`User::hasCompleteBillingAddress()`,
|
||||
Pflicht: Nachname, Straße, PLZ, Ort, Land) — sonst Redirect aufs Profil
|
||||
mit Hinweis. Lokale Adresse (`User::stripeAddress()`) und USt-ID
|
||||
(`StripeCheckoutService::syncTaxIdFromBillingAddress`, Typ `eu_vat`)
|
||||
werden an den Stripe-Customer übergeben.
|
||||
|
||||
Erfolg/Abbruch landen auf der Buchungs-Seite (`?checkout=erfolg|abbruch`).
|
||||
Die Steuer ergänzt **Stripe Tax** automatisch (`Cashier::calculateTaxes()`
|
||||
im AppServiceProvider, Netto-Preise mit `tax_behavior: exclusive`) — nach
|
||||
|
|
@ -159,6 +166,7 @@ Stripe/Cashier:
|
|||
| `STRIPE_KEY` / `STRIPE_SECRET` | Publishable/Secret Key (Test-Keys gesetzt) |
|
||||
| `STRIPE_WEBHOOK_SECRET` | Signatur-Prüfung des Webhook-Endpoints (gesetzt; Endpoint `https://pressekonto.com/stripe/webhook` im Dashboard registriert, 12.06.2026) |
|
||||
| `STRIPE_PRICE_SINGLE_PM` | Stripe-Price-ID der Einzel-PM (legt `billing:sync-stripe-plans` an; ohne sie ist der Einzel-PM-Checkout deaktiviert) |
|
||||
| `BILLING_OWN_VAT_ID` | Eigene deutsche USt-ID des Betreibers — schaltet die eVatR-Online-Bestätigung ausländischer EU-USt-IDs frei (BZSt-REST-API, `VatIdValidationService`); ohne sie bleibt es bei der Formatprüfung |
|
||||
| `CASHIER_CURRENCY` / `CASHIER_CURRENCY_LOCALE` | `eur` / `de_DE` (gesetzt) |
|
||||
|
||||
**Benötigte Webhook-Events** am Stripe-Endpoint: `invoice.payment_succeeded`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue