Stripe-Integration (S7.4): Payment-Dashboard für Stripe
- Provider-Status/Uptime: Stripe-Kachel aktiviert; payment:check-uptime prüft zusätzlich api.stripe.com/v1/ (401 ohne Key = erreichbar) inkl. Auto-Incident - Zahlungen: Anbieter-Filter, Provider-Badges, Umsatz je Provider, Stripe-Dashboard-Deep-Links (ShoppingPayment/PaymentTransaction:: stripeDashboardUrl, pi_-Guard, testmodus-bewusst) - Rohe Transaktionen: Anbieter-Filter/-Spalte, Erfolgsraten je Anbieter; Bugfix: Stringable-Vergleich ließ den txaction-Filter immer mit leerem Wert greifen — Liste war dauerhaft leer - Neue Kachel „Abos je Anbieter" (Index + GF-Ansicht) mit Fehlerzählern und Stripe-Anteil-Fortschrittsbalken (Auslaufmodell PAYONE → Stripe ablesbar) - Incident-Kachel weist Stripe/PAYONE getrennt aus; Log-Viewer mit Kanal-Umschalter stripe/payone - Plan-Doku: S7.4-Umsetzungsstatus, Abo-Go-Live 2026-07-10 vermerkt Tests: PaymentDashboardProviderTest (9 neu), Dashboard-Suite 49 grün. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
dd1c8f9a1e
commit
ad19112750
13 changed files with 600 additions and 45 deletions
|
|
@ -77,6 +77,21 @@ class PaymentTransaction extends Model
|
|||
return $this->belongsTo('App\Models\ShoppingPayment', 'shopping_payment_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Deep-Link ins Stripe-Dashboard für Stripe-Transaktionen
|
||||
* (txid trägt dort die PaymentIntent-ID, siehe StripeTransactionRecorder).
|
||||
*/
|
||||
public function stripeDashboardUrl(): ?string
|
||||
{
|
||||
if ($this->provider !== 'stripe' || ! str_starts_with((string) $this->txid, 'pi_')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$base = $this->mode === 'test' ? 'https://dashboard.stripe.com/test' : 'https://dashboard.stripe.com';
|
||||
|
||||
return $base.'/payments/'.$this->txid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a human-readable description for known PAYONE error codes.
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue