In Produktion gehen — Produktiv-Checkliste
Gehen Sie diese Checkliste vollständig durch, bevor Sie Ihren Shop produktiv auf Vorgio umstellen.
#Tokens & Secrets
- [ ] Produktions-Token mit dem Preset Payment-provider integration auf der API-Tokens-Seite Ihres Teams ausgestellt.
- [ ] Token wird ausschließlich im Secrets-Manager / in den Umgebungsvariablen abgelegt, niemals im Source Control. (Durchsuchen Sie Ihr Repo zur Sicherheit nach
act_.) - [ ] Webhook-Endpoint auf der Webhooks-Seite Ihres Vorgio-Teams mit der
https://-URL Ihres Produktions-Shops registriert, abonniert aufinvoice.sentundinvoice.paid. - [ ] Webhook-Signing-Secret im Secrets-Manager abgelegt.
- [ ] Separates Token für Staging/Dev, das auf ein separates Vorgio-Team zeigt. Tokens niemals zwischen Umgebungen teilen.
- [ ]
php artisan vorgio:doctor --test-webhookist gegen die Produktion vollständig grün (PHP-SDK ≥ 0.3.0) — bestätigt, dass das Token im Live-Modus ist, die richtigen Abilities trägt und der Webhook registriert ist und signierte Events tatsächlich empfängt. Siehe Verbindung prüfen.
#Rate Limit
- [ ] Das Rate Limit des Tokens ist auf einen Wert komfortabel oberhalb Ihres erwarteten Spitzenaufkommens gesetzt. Der Standard von 60/min reicht für die meisten Shops; erhöhen Sie auf 120 oder 300, wenn Sie mit Lastspitzen rechnen (Aktionen, Marketing-Mails). Untergrenze ist 30/min.
- [ ] Ihr Client-Code respektiert
Retry-Afterbei429-Antworten — siehe Rate Limits.
#Idempotency
- [ ] Jeder
POST /v1/checkoutsträgt einenIdempotency-Key, der aus einer stabilen, bestellbezogenen Kennung abgeleitet ist (z. B.wc-order-{id}-checkout). - [ ] Sie verarbeiten den Response-Header
Idempotency-Replay: true— als Erfolg behandeln. - [ ] Sie verwenden denselben Key nicht mit einem veränderten Body wieder.
#Webhook-Empfänger
- [ ] Der Endpoint verifiziert den
Vorgio-Signature-Header bevor der Body geparst wird, mithash_equals/ einem timing-sicheren Vergleich. - [ ] Der Endpoint antwortet innerhalb von 30 Sekunden mit
2xx. Aufwendige Arbeit wird in eine Queue gestellt, nicht inline erledigt. - [ ] Der Endpoint ist auf
event.ididempotent — doppelte Zustellungen lösen keine doppelte Auslieferung aus. - [ ] Ihr Monitoring alarmiert, wenn der Webhook-Endpoint ausfällt (das ist der einzige Weg, auf dem Vorgio Sie informiert, dass die Rechnung bezahlt wurde).
#Bestell-Semantik
- [ ] Sie haben entschieden, ob Ihr Shop bei
invoice.sentausliefert (Vertrauen in den Kunden) oder erst beiinvoice.paid(vorsichtig). Halten Sie die Entscheidung in Ihrem Runbook fest. - [ ] Bei „auf
invoice.paid": Der Händler hat einen Workflow, um Rechnungen zeitnah als bezahlt zu markieren, sobald die Banküberweisung eintrifft — entweder manuell in der Vorgio-UI oder indem Ihr ShopPOST /v1/invoices/{id}/mark-paidaufruft, sobald sein eigener Verarbeiter den Eingang bestätigt.
#Fehler-UX
- [ ] Zur Checkout-Zeit: Schlägt der Vorgio-Aufruf fehl, sieht der Kunde eine freundliche Meldung („Wir konnten Ihre Rechnung nicht verarbeiten — bitte versuchen Sie es erneut oder wählen Sie eine andere Bezahlmethode") — keinen Stack-Trace, keinen RFC-7807-Envelope.
- [ ] Zur Auslieferungszeit: Webhook-Fehler werden dem Händler sichtbar gemacht (Admin-E-Mail / Dashboard) und nicht stillschweigend verschluckt.
#Datenschutz / Datenverarbeitung
- [ ] Ihre Datenschutzerklärung erwähnt, dass Rechnungsdaten des Kunden (Name, Adresse, E-Mail) zum Zweck der Rechnungsstellung an Vorgio weitergegeben werden.
- [ ] Falls Ihr Shop in der EU ansässig ist: Es liegt ein Auftragsverarbeitungsvertrag (AVV) / Data Processing Agreement mit Vorgio vor. (Vorgio stellt den Standard-AVV bereit — wenden Sie sich an den Support.)
- [ ] Sie legen keine personenbezogenen Daten in
metadataab, die nicht ohnehin auf der Rechnung stehen.
#Monitoring
- [ ] Alarme auf:
- 5xx-Antwortrate Ihrer
POST /v1/checkouts-Aufrufe - 429-Antwortrate (Rate-Limit-Druck)
- 5xx-Antwortrate Ihres Webhook-Endpoints
- Alter unzugestellter Webhooks (Vorgio-Events, die älter als ~1 h sind und nicht bestätigt wurden)
- 5xx-Antwortrate Ihrer
- [ ] Dashboards für die obigen Metriken mit Schwellwerten, die Ihr On-Call-Team versteht.
#Smoke-Test
Führen Sie das in der Produktion mit einer echten Karte / echten Banküberweisung für eine winzige Bestellung durch:
- Geben Sie auf Ihrem Live-Shop eine echte Bestellung mit „Kauf auf Rechnung (Vorgio)" auf. Wählen Sie einen kleinen Betrag, dessen Verlust Sie verschmerzen können, falls etwas schiefgeht.
- Prüfen Sie in Vorgio, dass Client + Rechnung angelegt wurden und die E-Mail in Ihrer Test-Inbox angekommen ist.
- Prüfen Sie, dass der
invoice.sent-Webhook an Ihrem Endpoint angekommen ist und die Bestellung in den konfigurierten Status gewechselt ist. - Bezahlen Sie die Rechnung (oder markieren Sie sie für den Smoke-Test in Vorgio als bezahlt).
- Prüfen Sie, dass der
invoice.paid-Webhook angekommen ist und die Bestellung aufprocessing/completedgewechselt ist. - Prüfen Sie, dass die Bestellansichtsseite in Ihrem Shop die Vorgio-Rechnungsnummer / den „In Vorgio ansehen"-Link zeigt.
Wenn alle sechs Schritte erfolgreich sind, sind Sie produktiv. Rollen Sie auf alle Kunden aus.
#Rollback-Plan
- [ ] Sie können die Bezahlmethode „Kauf auf Rechnung (Vorgio)" im Adminbereich Ihres Shops in unter 60 Sekunden ohne Deployment deaktivieren. (Bei WooCommerce ist das eine Checkbox in den WC-Zahlungseinstellungen.)
- [ ] Sie haben ein Runbook für den Fall „Vorgio ist offline" — typischerweise: Bezahloption deaktivieren, Banner einblenden, auf den Fallback-Payment-Provider umschalten.
#Wann Sie den Vorgio-Support einbinden sollten
Melden Sie sich vor dem Start, wenn:
- Sie mit mehr als ~ 1000 Rechnungen/Tag rechnen (eventuell Rate-Limit- / Infrastruktur-Tuning nötig).
- Sie auf einer Plattform integrieren, für die Vorgio (noch) kein offizielles Plugin hat — Vorgio möchte unter Umständen aus Ihrer Integration lernen.
- Sie rechtliche Fragen zu Aufbewahrung, AVV oder E-Rechnungs-Formaten (XRechnung, ZUGFeRD) haben.
- Ihr Shop Bestellungen in einer anderen Währung als EUR verarbeitet. (Vorgio unterstützt aktuell ausschließlich EUR.)
Sie sind fertig. Willkommen bei der Integration. 🚀