Automatische Ruckerstattungen
Das automatische Ruckerstattungssystem erkennt Fahrten, die wahrscheinlich fehlgeschlagen sind oder Fehlfunktionen hatten, und erstattet Kunden automatisch auf ihr Wallet. Dies hilft, die Kundenzufriedenheit zu erhalten, wenn Fahrzeuge fehlfunktionieren, nicht ordnungsgemas entsperrt werden konnen oder andere Probleme auftreten, die zu sehr kurzen, erfolglosen Fahrten fuhren.
Funktionsweise
Der automatische Ruckerstattungs-Ablauf
Wenn eine Fahrt endet, bewertet das System, ob sie fur eine automatische Ruckerstattung qualifiziert ist:
Fahrt endet
Kunde beendet seine Fahrt uber die mobile App
Metriken berechnet
System berechnet Fahrtmetriken (Dauer, Entfernung, Kosten)
Berechtigung bewertet
System pruft, ob Fahrt die Ruckerstattungsschwellenwerte erfullt
Job eingereiht
Falls berechtigt, wird ein Ruckerstattungs-Job in ride_auto_refund_jobs eingereiht
Verzogerungsperiode
Cron-Job wartet die konfigurierte Verzogerung (recalc_gap_minutes)
Neubewertung
System bewertet mit neuesten Telemetriedaten neu
Ruckerstattung ausgestellt
Falls weiterhin berechtigt, wird Wallet gutgeschrieben und Kunde benachrichtigt
Warum die Verzogerung?
Das System wartet eine konfigurierbare Anzahl von Minuten, bevor es die Ruckerstattung verarbeitet. Diese Verzogerung ermoglicht:
- Spat eintreffende Telemetriedaten zur Aktualisierung der Fahrtmetriken
- IoT-Datensynchronisation zum Abschluss mit endgultiger Entfernung/Dauer
- Backend-Verarbeitung zur Finalisierung der Fahrtberechnungen
Dies verhindert vorzeitige Ruckerstattungen basierend auf unvollstandigen Daten.
Ruckerstattungsziel
Automatische Ruckerstattungen gehen immer auf das Wallet des Kunden, nicht zuruck auf seine Karte. Dies gewahrleistet sofortige Ruckerstattungen ohne Transaktionsgebuhren und fordert die weitere Nutzung des Dienstes.
Berechtigungskriterien
Eine Fahrt qualifiziert sich fur automatische Ruckerstattung, wenn ALLE der folgenden Punkte zutreffen:
| Kriterium | Standardwert | Beschreibung |
|---|---|---|
| Funktion aktiviert | true | Automatische Ruckerstattungen sind in den Einstellungen aktiviert |
| Dauer innerhalb des Limits | ≤ 3 Minuten | Fahrtdauer ist kleiner oder gleich Maximum |
| Entfernung innerhalb des Limits | ≤ 200 Meter | Zuruck gelegte Gesamtstrecke liegt innerhalb des Schwellenwerts |
| Hat Kunden | Erforderlich | Fahrt ist mit einem gultigen Kunden verknupft |
| Kein doppelter Job | Erforderlich | Kein ausstehender/verarbeitender Job existiert fur diese Fahrt |
| Erstattungsfahiges Guthaben | Erforderlich | Fahrt hat einen Betrag, der erstattet werden kann |
Was gepruft wird
Die Berechtigungsbewertung verwendet folgende Fahrtdaten:
- Dauer in Sekunden
- Entfernung in Metern
- Gesamtkosten
- Abgebuchter Betrag
- Zahlungsstatus
Konfiguration
Zugang zu Einstellungen
Konfigurieren Sie automatische Ruckerstattungen im Admin-Dashboard:
- Navigieren Sie zu Einstellungen
- Klicken Sie auf den Tab Fahrten
- Finden Sie den Abschnitt Automatische Ruckerstattungen
Konfigurationsoptionen
| Einstellung | Typ | Standard | Beschreibung |
|---|---|---|---|
enabled | boolean | true | Hauptschalter fur automatische Ruckerstattungen |
max_ride_duration_minutes | number | 3 | Maximale Fahrtdauer zur Qualifikation |
max_total_distance_m | number | 200 | Maximale Entfernung in Metern zur Qualifikation |
recalc_gap_minutes | number | 1 | Minuten Wartezeit vor Verarbeitung |
Empfohlene Werte nach Anwendungsfall
Konservativ (Weniger Ruckerstattungen)
Verwenden Sie diese Einstellungen, wenn Sie automatische Ruckerstattungen minimieren und manuelle Uberprufung bevorzugen mochten:
| Einstellung | Wert |
|---|---|
| enabled | true |
| max_ride_duration_minutes | 2 |
| max_total_distance_m | 100 |
| recalc_gap_minutes | 2 |
Standard (Ausgewogen)
Die Standardeinstellungen balancieren Kundenzufriedenheit mit betrieblicher Aufsicht:
| Einstellung | Wert |
|---|---|
| enabled | true |
| max_ride_duration_minutes | 3 |
| max_total_distance_m | 200 |
| recalc_gap_minutes | 1 |
Grosszugig (Mehr Ruckerstattungen)
Verwenden Sie diese Einstellungen fur maximale Kundenzufriedenheit:
| Einstellung | Wert |
|---|---|
| enabled | true |
| max_ride_duration_minutes | 5 |
| max_total_distance_m | 300 |
| recalc_gap_minutes | 1 |
Die richtige Balance finden
Beginnen Sie mit den Standardeinstellungen und passen Sie basierend auf Ihren Ruckerstattungsraten und Kundenfeedback an. Uberwachen Sie das Dashboard fur automatische Ruckerstattungen, um Muster zu erkennen.
Job-Status
Automatische Ruckerstattungs-Jobs durchlaufen diese Status:
| Status | Beschreibung |
|---|---|
pending | Wartet auf Verarbeitung |
processing | Wird aktuell verarbeitet (gesperrt) |
succeeded | Ruckerstattung erfolgreich angewendet |
failed | Verarbeitung fehlgeschlagen (kann manuell wiederholt werden) |
cancelled | Job abgebrochen (Fahrt nicht mehr berechtigt) |
Cron-Job-Details
Der automatische Ruckerstattungs-Cron lauft alle 5 Minuten uber Vercel Cron.
Verarbeitungsverhalten
Jede Cron-Ausfuhrung:
- Verarbeitet bis zu 25 Jobs pro Durchlauf
- Verarbeitet nur Jobs, bei denen
scheduled_for ≤ NOW() - Verwendet optimistisches Sperren, um doppelte Verarbeitung zu verhindern
- Bereinigt abgelaufene Jobs, die alter als 7 Tage sind
Antwortformat
Der Cron-Endpunkt gibt Verarbeitungsstatistiken zuruck:
{
"success": true,
"timestamp": "2025-01-19T12:00:00Z",
"duration_ms": 1234,
"processed": 15,
"succeeded": 12,
"cancelled": 2,
"failed": 1,
"total_refunded_usd": 24.50
}
Admin-Dashboard
Greifen Sie auf das Dashboard fur automatische Ruckerstattungen zu unter Dashboard > Ruckerstattungen > Automatisch.
Dashboard-Funktionen
Statistikkarten
- Ausstehende Jobs - Anzahl der auf Verarbeitung wartenden Jobs
- Erfolgreich (24h) - Erfolgreiche Ruckerstattungen in den letzten 24 Stunden
- Gesamt erstattet (24h) - Erstatteter Dollarbetrag
- Erfolgsrate - Prozentsatz der erfolgreichen Jobs
Ausstehende Jobs-Tabelle
- Fahrt-Link
- Kunden-Link
- Fahrtmetriken (Dauer, Entfernung)
- Ruckerstattungsbetrag
- Geplante Verarbeitungszeit
- Abbrechen-Aktion
Fehlgeschlagene Jobs-Warnung
- Prominent angezeigt, wenn Jobs Aufmerksamkeit benotigen
- Wiederholen- und Abbrechen-Aktionen
Aktuelle Ruckerstattungen-Tabelle
- Verarbeitete Ruckerstattungen der letzten 24 Stunden
- Betrag, Kunde, Fahrtdetails
- Job-ID zur Fehlerbehebung
Verfugbare Aktionen
| Aktion | Beschreibung |
|---|---|
| Aktualisieren | Alle Dashboard-Daten neu laden |
| Job abbrechen | Ausstehenden Job abbrechen (wird nicht erstattet) |
| Job wiederholen | Fehlgeschlagenen Job wiederholen |
Ruckerstattungsprozess-Details
Was wahrend der Ruckerstattung passiert
- Job-Sperre erworben - Status auf
processinggesetzt - Einstellungen validiert - Prufen, ob Auto-Ruckerstattung noch aktiviert
- Fahrt neu abgerufen - Neueste Fahrtmetriken abrufen
- Berechtigung neu bewertet - Bestatigen, dass noch innerhalb der Schwellenwerte
- Erstattungsfahiger Betrag berechnet - Tatsachlich bezahlt minus bereits erstattet
- Wallet gutgeschrieben - Wallet-Guthaben des Kunden erhoht
- Wallet-Transaktion erstellt - Prufpfad aufgezeichnet
- Fahrt aktualisiert - Als erstattet markiert, wenn vollstandig erstattet
- Benachrichtigung gesendet - Push-Benachrichtigung an Kunden
- Job abgeschlossen - Status auf
succeededgesetzt
Kundenbenachrichtigung
Wenn eine automatische Ruckerstattung ausgestellt wird, erhalten Kunden:
Push-Benachrichtigung:
- Titel: "Fahrtruckerstattung ausgestellt"
- Text: "Eine kurzliche Fahrt wurde automatisch auf Ihr Wallet erstattet."
Wallet-Transaktion:
- Typ: Gutschrift
- Beschreibung: "Automatische Fahrtruckerstattung"
- Referenz: Fahrt-UUID
Stornierungsgrunde
Jobs konnen aus verschiedenen Grunden storniert werden:
| Grund | Beschreibung |
|---|---|
automatic_refund_disabled | Funktion wurde nach Job-Erstellung deaktiviert |
duration_exceeds_limit | Fahrtdauer uberschreitet jetzt Schwellenwert |
distance_exceeds_limit | Fahrtentfernung uberschreitet jetzt Schwellenwert |
eligibility_failed | Allgemeine Berechtigungsprufung fehlgeschlagen |
no_refundable_balance | Fahrt bereits vollstandig erstattet |
missing_customer_uuid | Kunde nicht gefunden |
Manuelle Ruckerstattungen
Zusatzlich zu automatischen Ruckerstattungen konnen Betreiber manuelle Ruckerstattungen uber das Dashboard ausstellen.
Ruckerstattungstypen
| Typ | Beschreibung |
|---|---|
| Wallet-Ruckerstattung | Schreibt dem Wallet-Guthaben des Kunden sofort gut |
| Karten-Ruckerstattung | Verarbeitet Ruckerstattung uber Stripe zuruck zur ursprunglichen Zahlungsmethode |
Ruckerstattungsmodi
| Modus | Beschreibung |
|---|---|
| Voll | Erstattet den gesamten verbleibenden erstattungsfahigen Betrag |
| Teilweise | Erstattet einen bestimmten Betrag (nur Karten-Ruckerstattungen) |
Teilruckerstattungen
Wallet-Ruckerstattungen mussen immer Vollruckerstattungen sein. Teilruckerstattungen werden nur fur Karten-Ruckerstattungen unterstutzt.
Eine manuelle Ruckerstattung verarbeiten
Zur Fahrt navigieren
Gehen Sie zu Dashboard > Fahrten und klicken Sie auf die Fahrt
Auf Erstatten klicken
Klicken Sie auf den Button Erstatten auf der Fahrtdetailseite
Ziel wahlen
Wahlen Sie Wallet oder Karte als Ruckerstattungsziel
Modus auswahlen
Fur Karten-Ruckerstattungen, voll oder teilweise wahlen
Grund eingeben
Optional einen Grund fur die Ruckerstattung eingeben
Bestatigen
Ruckerstattung uberprufen und bestatigen
Berechtigungsanforderungen
Ruckerstattungen erfordern die Berechtigung ride:refund. Folgende Rollen konnen Ruckerstattungen verarbeiten:
- super_admin
- global_admin
- admin
- general_manager
- franchisee_manager
- fleet_manager
- customer_support
Hinweis: Analysten und Service-Techniker konnen keine Ruckerstattungen verarbeiten.
Uberwachung
Ausstehende Jobs anzeigen
SELECT
id,
ride_uuid,
customer_uuid,
status,
scheduled_for,
attempts,
created_at
FROM ride_auto_refund_jobs
WHERE status = 'pending'
ORDER BY scheduled_for ASC;
Aktuelle automatische Ruckerstattungen anzeigen
SELECT
r.id,
r.ride_uuid,
r.customer_uuid,
r.amount,
r.processed_at,
r.metadata->>'job_id' as job_id
FROM ride_refunds r
WHERE r.metadata->>'automatic_refund' = 'true'
AND r.processed_at > NOW() - INTERVAL '24 hours'
ORDER BY r.processed_at DESC;
Fehlgeschlagene Jobs prufen
SELECT
id,
ride_uuid,
customer_uuid,
attempts,
last_error,
created_at
FROM ride_auto_refund_jobs
WHERE status = 'failed'
ORDER BY updated_at DESC
LIMIT 20;
Fehlerbehebung
Jobs werden nicht erstellt
Prufung 1: Ist automatische Ruckerstattung aktiviert?
- Navigieren Sie zu Einstellungen > Fahrten > Automatische Ruckerstattungen
- Uberprufen Sie, ob der Schalter aktiviert ist
Prufung 2: Sind Fahrtmetriken innerhalb der Schwellenwerte?
- Prufen Sie Fahrtdauer (muss
≤ max_ride_duration_minutessein) - Prufen Sie Fahrtentfernung (muss
≤ max_total_distance_msein)
Prufung 3: Hat die Fahrt einen Kunden?
- Uberprufen Sie, ob die Fahrt mit einem gultigen Kunden verknupft ist
Jobs stecken in Ausstehend fest
Prufung 1: Lauft der Cron?
- Uberprufen Sie, ob Vercel Cron konfiguriert ist
- Prufen Sie Vercel-Dashboard auf Cron-Ausfuhrungsprotokolle
Prufung 2: Sind Jobs fur die Zukunft geplant?
- Jobs werden erst verarbeitet, wenn
scheduled_for ≤ NOW()
Prufung 3: Prufen Sie Vercel-Funktionsprotokolle auf Fehler
Jobs schlagen fehl
Haufige Fehler und Losungen:
| Fehler | Ursache | Losung |
|---|---|---|
customer_not_found | Kunde wurde geloscht | Job abbrechen |
ride_not_found | Fahrt wurde geloscht | Job abbrechen |
no_refundable_balance | Bereits erstattet | Job storniert automatisch |
wallet_update_failed | Datenbankproblem | Job wiederholen |
Leistungsoptimierung
Hochvolumen-Flotten
Fur Flotten mit vielen Fahrten, erwagen Sie:
- Cron-Frequenz erhohen - Alle 2-3 Minuten statt 5 ausfuhren
- Stapelgrosse erhohen - 50-100 Jobs pro Durchlauf verarbeiten
- Warteschlangen-Ruckstau uberwachen - Alarme fur Anzahl ausstehender Jobs einrichten
Datenbankoptimierung
Stellen Sie sicher, dass diese Indizes fur optimale Leistung existieren:
-- Ausstehende Job-Suche
CREATE INDEX CONCURRENTLY IF NOT EXISTS
idx_ride_auto_refund_jobs_pending_scheduled
ON ride_auto_refund_jobs (scheduled_for)
WHERE status = 'pending';
-- Kunden-Wallet-Suche
CREATE INDEX CONCURRENTLY IF NOT EXISTS
idx_customers_wallet
ON customers (id, wallet_balance);
Empfohlene Alarme
Richten Sie Alarme ein fur:
- Hohe Fehlerrate - Alarm, wenn fehlgeschlagene Jobs > 10% der verarbeiteten
- Warteschlangen-Ruckstau - Alarm, wenn ausstehende Jobs > 100
- Verarbeitungsverzogerung - Alarm, wenn Jobs > 30 Minuten uberfällig
- Ausfuhrungsfehler - Alarm, wenn Cron-Endpunkt 500 zuruckgibt
Nachste Schritte
- Stripe-Einrichtung - Stripe-Integration konfigurieren
- Zahlungsmethoden - Kundenkarten verwalten
- Schadensgebuhren - Kunden fur Schaden belasten
Automatische Ruckerstattungen aktiv
Mit konfigurierten automatischen Ruckerstattungen erhalten Ihre Kunden sofortige Ruckerstattungen fur fehlgeschlagene Fahrten, was die Zufriedenheit verbessert und Support-Tickets reduziert. Uberwachen Sie das Dashboard regelmasig, um sicherzustellen, dass das System korrekt funktioniert.